- TiDBについて
- クイックスタート
- 発展させる
- 概要
- クイックスタート
- TiDB CloudでTiDBクラスターを構築する(DevTier)
- TiDBのCRUDSQL
- TiDBを使用してシンプルなCRUDアプリを構築する
- アプリケーション例
- TiDBに接続する
- データベーススキーマの設計
- データの書き込み
- データの読み取り
- 取引
- 最適化
- トラブルシューティング
- 参照
- デプロイ
- 移行する
- 管理
- 監視と警告
- トラブルシューティング
- TiDBトラブルシューティングマップ
- 遅いクエリを特定する
- 遅いクエリを分析する
- SQL診断
- Top SQLを使用して高価なクエリを特定する
- ログを使用して高価なクエリを特定する
- ステートメント要約表
- ホットスポットの問題のトラブルシューティング
- 読み取りと書き込みの待ち時間の増加のトラブルシューティング
- クラスタのオンサイト情報を保存および復元する
- クラスタセットアップのトラブルシューティング
- 高いディスクI/O使用量のトラブルシューティング
- ロックの競合のトラブルシューティング
- TiFlashのトラブルシューティング
- 楽観的なトランザクションでの書き込みの競合のトラブルシューティング
- データとインデックス間の不整合のトラブルシューティング
- 性能チューニング
- チューニングガイド
- Configuration / コンフィグレーションの調整
- システムチューニング
- ソフトウェアのチューニング
- SQLチューニング
- チュートリアル
- TiDBツール
- 概要
- ユースケース
- ダウンロード
- TiUP
- ドキュメントマップ
- 概要
- 用語と概念
- TiUPコンポーネントを管理する
- FAQ
- トラブルシューティングガイド
- コマンドリファレンス
- 概要
- TiUPコマンド
- TiUPクラスターコマンド
- 概要
- tiup cluster audit
- tiup cluster check
- tiup cluster clean
- tiup cluster deploy
- tiup cluster destroy
- tiup cluster disable
- tiup cluster display
- tiup cluster edit-config
- tiup cluster enable
- tiup cluster help
- tiup cluster import
- tiup cluster list
- tiup cluster patch
- tiup cluster prune
- tiup cluster reload
- tiup cluster rename
- tiup cluster replay
- tiup cluster restart
- tiup cluster scale-in
- tiup cluster scale-out
- tiup cluster start
- tiup cluster stop
- tiup cluster template
- tiup cluster upgrade
- TiUPDMコマンド
- 概要
- tiup dm audit
- tiup dm deploy
- tiup dm destroy
- tiup dm disable
- tiup dm display
- tiup dm edit-config
- tiup dm enable
- tiup dm help
- tiup dm import
- tiup dm list
- tiup dm patch
- tiup dm prune
- tiup dm reload
- tiup dm replay
- tiup dm restart
- tiup dm scale-in
- tiup dm scale-out
- tiup dm start
- tiup dm stop
- tiup dm template
- tiup dm upgrade
- TiDBクラスタートポロジリファレンス
- DMクラスタートポロジリファレンス
- ミラーリファレンスガイド
- TiUPコンポーネント
- PingCAPクリニック診断サービス(テクニカルプレビュー)
- TiDB Operator
- Dumpling
- TiDB Lightning
- TiDBデータ移行
- TiDBデータ移行について
- クイックスタート
- DMクラスタをデプロイする
- チュートリアル
- 高度なチュートリアル
- シャーディングされたテーブルからのデータのマージと移行
- GH-ost/PT-oscを使用するMySQLデータベースからの移行
- より多くの列を持つダウンストリームTiDBテーブルにデータを移行する
- 管理
- 参照
- 例
- トラブルシューティング
- リリースノート
- バックアップと復元(BR)
- TiDB Binlog
- TiCDC
- Dumpling
- sync-diff-inspector
- TiSpark
- 参照
- クラスターアーキテクチャ
- 主要な監視指標
- セキュリティ
- 権限
- SQL
- SQL言語の構造と構文
- SQLステートメント
ADD COLUMN
ADD INDEX
ADMIN
ADMIN CANCEL DDL
ADMIN CHECKSUM TABLE
ADMIN CHECK [TABLE|INDEX]
ADMIN SHOW DDL [JOBS|QUERIES]
ADMIN SHOW TELEMETRY
ALTER DATABASE
ALTER INDEX
ALTER INSTANCE
ALTER PLACEMENT POLICY
ALTER TABLE
ALTER USER
ANALYZE TABLE
BACKUP
BATCH
BEGIN
CHANGE COLUMN
COMMIT
CHANGE DRAINER
CHANGE PUMP
CREATE [GLOBAL|SESSION] BINDING
CREATE DATABASE
CREATE INDEX
CREATE PLACEMENT POLICY
CREATE ROLE
CREATE SEQUENCE
CREATE TABLE LIKE
CREATE TABLE
CREATE USER
CREATE VIEW
DEALLOCATE
DELETE
DESC
DESCRIBE
DO
DROP [GLOBAL|SESSION] BINDING
DROP COLUMN
DROP DATABASE
DROP INDEX
DROP PLACEMENT POLICY
DROP ROLE
DROP SEQUENCE
DROP STATS
DROP TABLE
DROP USER
DROP VIEW
EXECUTE
EXPLAIN ANALYZE
EXPLAIN
FLASHBACK TABLE
FLUSH PRIVILEGES
FLUSH STATUS
FLUSH TABLES
GRANT <privileges>
GRANT <role>
INSERT
KILL [TIDB]
LOAD DATA
LOAD STATS
MODIFY COLUMN
PREPARE
RECOVER TABLE
RENAME INDEX
RENAME TABLE
REPLACE
RESTORE
REVOKE <privileges>
REVOKE <role>
ROLLBACK
SELECT
SET DEFAULT ROLE
SET [NAMES|CHARACTER SET]
SET PASSWORD
SET ROLE
SET TRANSACTION
SET [GLOBAL|SESSION] <variable>
SHOW ANALYZE STATUS
SHOW [BACKUPS|RESTORES]
SHOW [GLOBAL|SESSION] BINDINGS
SHOW BUILTINS
SHOW CHARACTER SET
SHOW COLLATION
SHOW [FULL] COLUMNS FROM
SHOW CONFIG
SHOW CREATE PLACEMENT POLICY
SHOW CREATE SEQUENCE
SHOW CREATE TABLE
SHOW CREATE USER
SHOW DATABASES
SHOW DRAINER STATUS
SHOW ENGINES
SHOW ERRORS
SHOW [FULL] FIELDS FROM
SHOW GRANTS
SHOW INDEX [FROM|IN]
SHOW INDEXES [FROM|IN]
SHOW KEYS [FROM|IN]
SHOW MASTER STATUS
SHOW PLACEMENT
SHOW PLACEMENT FOR
SHOW PLACEMENT LABELS
SHOW PLUGINS
SHOW PRIVILEGES
SHOW [FULL] PROCESSSLIST
SHOW PROFILES
SHOW PUMP STATUS
SHOW SCHEMAS
SHOW STATS_HEALTHY
SHOW STATS_HISTOGRAMS
SHOW STATS_META
SHOW STATUS
SHOW TABLE NEXT_ROW_ID
SHOW TABLE REGIONS
SHOW TABLE STATUS
SHOW [FULL] TABLES
SHOW [GLOBAL|SESSION] VARIABLES
SHOW WARNINGS
SHUTDOWN
SPLIT REGION
START TRANSACTION
TABLE
TRACE
TRUNCATE
UPDATE
USE
WITH
- データ型
- 関数と演算子
- クラスター化インデックス
- 制約
- 生成された列
- SQLモード
- テーブル属性
- トランザクション
- ガベージコレクション(GC)
- ビュー
- パーティショニング
- 一時テーブル
- キャッシュされたテーブル
- 文字セットと照合
- SQLの配置ルール
- システムテーブル
mysql
- INFORMATION_SCHEMA
- 概要
ANALYZE_STATUS
CLIENT_ERRORS_SUMMARY_BY_HOST
CLIENT_ERRORS_SUMMARY_BY_USER
CLIENT_ERRORS_SUMMARY_GLOBAL
CHARACTER_SETS
CLUSTER_CONFIG
CLUSTER_HARDWARE
CLUSTER_INFO
CLUSTER_LOAD
CLUSTER_LOG
CLUSTER_SYSTEMINFO
COLLATIONS
COLLATION_CHARACTER_SET_APPLICABILITY
COLUMNS
DATA_LOCK_WAITS
DDL_JOBS
DEADLOCKS
ENGINES
INSPECTION_RESULT
INSPECTION_RULES
INSPECTION_SUMMARY
KEY_COLUMN_USAGE
METRICS_SUMMARY
METRICS_TABLES
PARTITIONS
PLACEMENT_POLICIES
PROCESSLIST
REFERENTIAL_CONSTRAINTS
SCHEMATA
SEQUENCES
SESSION_VARIABLES
SLOW_QUERY
STATISTICS
TABLES
TABLE_CONSTRAINTS
TABLE_STORAGE_STATS
TIDB_HOT_REGIONS
TIDB_HOT_REGIONS_HISTORY
TIDB_INDEXES
TIDB_SERVERS_INFO
TIDB_TRX
TIFLASH_REPLICA
TIKV_REGION_PEERS
TIKV_REGION_STATUS
TIKV_STORE_STATUS
USER_PRIVILEGES
VIEWS
METRICS_SCHEMA
- UI
- TiDBダッシュボード
- 概要
- 管理
- アクセス
- 概要ページ
- クラスター情報ページ
- Top SQLページ
- キービジュアライザーページ
- メトリクス関係グラフ
- SQLステートメント分析
- 遅いクエリページ
- クラスター診断
- 検索ログページ
- インスタンスプロファイリング
- セッションの管理とConfiguration / コンフィグレーション
- FAQ
- CLI
- コマンドラインフラグ
- Configuration / コンフィグレーションファイルのパラメーター
- システム変数
- ストレージエンジン
- テレメトリー
- エラーコード
- テーブルフィルター
- トポロジラベルによるレプリカのスケジュール
- よくある質問
- リリースノート
- すべてのリリース
- リリースタイムライン
- TiDBバージョニング
- v6.1
- v6.0
- v5.4
- v5.3
- v5.2
- v5.1
- v5.0
- v4.0
- v3.1
- v3.0
- v2.1
- v2.0
- v1.0
- 用語集
TiUPを使用してTiDBをアップグレードする
このドキュメントは、次のアップグレードパスを対象としています。
- TiDB4.0バージョンからTiDB6.0にアップグレードします。
- TiDB5.0-5.4バージョンからTiDB6.0にアップグレードします。
- TiDB6.0からTiDB6.1.0またはそのパッチバージョンにアップグレードします。
- TiFlashを5.3より前のバージョンから5.3以降のバージョンにオンラインでアップグレードすることはできません。代わりに、最初に初期バージョンのすべてのTiFlashインスタンスを停止してから、クラスタをオフラインでアップグレードする必要があります。他のコンポーネント(TiDBやTiKVなど)がオンラインアップグレードをサポートしていない場合は、 オンラインアップグレードの警告の指示に従ってください。
- DDLステートメントがクラスタで実行されているときはTiDBクラスタをアップグレードしないでください(通常、
ADD INDEX
などの時間のかかるDDLステートメントや列タイプの変更の場合)。 - アップグレードする前に、
ADMIN SHOW DDL
コマンドを使用して、TiDBクラスタに進行中のDDLジョブがあるかどうかを確認することをお勧めします。クラスタにDDLジョブがある場合、クラスタをアップグレードするには、DDLの実行が終了するまで待つか、ADMIN CANCEL DDL
コマンドを使用してDDLジョブをキャンセルしてからクラスタをアップグレードします。 - さらに、クラスタのアップグレード中は、DDLステートメントを実行しないでください。そうしないと、未定義動作の問題が発生する可能性があります。
ノート:
アップグレードするクラスタがv3.1以前のバージョン(v3.0またはv2.1)の場合、v6.1.0またはそのパッチバージョンへの直接アップグレードはサポートされていません。最初にクラスタをv4.0にアップグレードし、次にv6.1.0にアップグレードする必要があります。
アップグレードの警告
- TiDBは現在、バージョンのダウングレードまたはアップグレード後の以前のバージョンへのロールバックをサポートしていません。
- TiDB Ansibleを使用して管理されるv4.0クラスタの場合、 TiUP(v4.0)を使用してTiDBをアップグレードするに従って新しい管理を行うために、クラスタをTiUP(
tiup cluster
)にインポートする必要があります。次に、このドキュメントに従って、クラスタをv6.1.0またはそのパッチバージョンにアップグレードできます。 - v3.0より前のバージョンをv6.1.0に更新するには:
- TiDB Ansibleを使用してこのバージョンを3.0に更新します。
- TiUP(
tiup cluster
)を使用して、TiDBAnsible構成をインポートします。 - TiUP(v4.0)を使用してTiDBをアップグレードするに従って3.0バージョンを4.0に更新します。
- このドキュメントに従って、クラスタをv6.1.0にアップグレードします。
- TiDB Binlog、TiCDC、TiFlash、およびその他のコンポーネントのバージョンのアップグレードをサポートします。
- 異なるバージョンの互換性の変更の詳細については、各バージョンのリリースノートを参照してください。対応するリリースノートの「互換性の変更」セクションに従って、クラスタ構成を変更します。
- v5.3より前のバージョンからv5.3以降のバージョンにアップグレードするクラスターの場合、デフォルトでデプロイされているPrometheusはv2.8.1からv2.27.1にアップグレードされます。 Prometheus v2.27.1は、より多くの機能を提供し、セキュリティの問題を修正します。 v2.8.1と比較して、v2.27.1のアラート時間の表現が変更されています。詳細については、 プロメテウスコミットを参照してください。
準備
このセクションでは、TiUPおよびTiUPクラスターコンポーネントのアップグレードを含む、TiDBクラスタをアップグレードする前に必要な準備作業を紹介します。
ステップ1:TiUPまたはTiUPオフラインミラーをアップグレードする
TiDBクラスタをアップグレードする前に、まずTiUPまたはTiUPミラーをアップグレードする必要があります。
TiUPとTiUPクラスターをアップグレードする
ノート:
アップグレードするクラスタの制御マシンが
https://tiup-mirrors.pingcap.com
にアクセスできない場合は、このセクションをスキップしてTiUPオフラインミラーをアップグレードするを参照してください。
TiUPバージョンをアップグレードします。 TiUPのバージョンは
1.10.0
以降にすることをお勧めします。tiup update --self tiup --version
TiUPクラスターのバージョンをアップグレードします。 TiUPクラスターのバージョンは
1.10.0
以降にすることをお勧めします。tiup update cluster tiup cluster --version
TiUPオフラインミラーをアップグレードする
ノート:
アップグレードするクラスタがオフライン方式を使用せずにデプロイされた場合は、この手順をスキップしてください。
TiUPを使用してTiDBクラスターをデプロイする-TiUPをオフラインでデプロイを参照して、新しいバージョンのTiUPミラーをダウンロードし、制御マシンにアップロードします。 local_install.sh
を実行した後、TiUPは上書きアップグレードを完了します。
tar xzvf tidb-community-server-${version}-linux-amd64.tar.gz
sh tidb-community-server-${version}-linux-amd64/local_install.sh
source /home/tidb/.bash_profile
上書きアップグレード後、次のコマンドを実行してTiUPクラスターコンポーネントをアップグレードします。
tiup update cluster
これで、オフラインミラーが正常にアップグレードされました。上書き後のTiUP動作中にエラーが発生した場合は、 manifest
が更新されていない可能性があります。 TiUPを再度実行する前にrm -rf ~/.tiup/manifests/*
を試すことができます。
ステップ2:TiUPトポロジー構成ファイルを編集する
ノート:
次のいずれかの状況が当てはまる場合は、この手順をスキップしてください。
- 元のクラスタの構成パラメーターは変更していません。または、
tiup cluster
を使用して構成パラメーターを変更しましたが、それ以上の変更は必要ありません。- アップグレード後、変更されていない構成アイテムにv6.1.0のデフォルトのパラメーター値を使用する必要があります。
vi
編集モードに入り、トポロジファイルを編集します。tiup cluster edit-config <cluster-name>
トポロジーの構成テンプレートの形式を参照し、トポロジーファイルの
server_configs
のセクションに変更するパラメーターを入力します。変更後、 : + w + qと入力して変更を保存し、編集モードを終了します。 Yを入力して、変更を確認します。
ノート:
クラスタをv6.1.0にアップグレードする前に、v4.0で変更したパラメーターがv6.1.0で互換性があることを確認してください。詳細については、 TiKVConfiguration / コンフィグレーションファイルを参照してください。
次の3つのTiKVパラメータは、TiDBv5.0では廃止されています。元のクラスタで次のパラメーターが構成されている場合は、これらのパラメーターを
edit-config
から削除する必要があります。
- 悲観的-txn.enabled
- server.request-batch-enable-cross-command
- server.request-batch-wait-duration
ステップ3:現在のクラスタのヘルスステータスを確認する
アップグレード中の未定義の動作やその他の問題を回避するために、アップグレードの前に現在のクラスタのリージョンのヘルスステータスを確認することをお勧めします。これを行うには、 check
サブコマンドを使用できます。
tiup cluster check <cluster-name> --cluster
コマンド実行後、「リージョンステータス」チェック結果が出力されます。
- 結果が「すべてのリージョンは正常です」の場合、現在のクラスタのすべてのリージョンは正常であり、アップグレードを続行できます。
- 結果が「リージョンが完全に正常ではない:mミスピア、n保留中ピア」の場合、「他の操作の前に異常なリージョンを修正してください」。プロンプト、現在のクラスタの一部のリージョンが異常です。チェック結果が「すべてのリージョンが正常である」になるまで、異常のトラブルシューティングを行う必要があります。その後、アップグレードを続行できます。
TiDBクラスタをアップグレードする
このセクションでは、TiDBクラスタをアップグレードし、アップグレード後にバージョンを確認する方法について説明します。
TiDBクラスタを指定されたバージョンにアップグレードします
オンラインアップグレードとオフラインアップグレードの2つの方法のいずれかでクラスタをアップグレードできます。
デフォルトでは、TiUPクラスターはオンライン方式を使用してTiDBクラスタをアップグレードします。つまり、TiDBクラスタはアップグレードプロセス中に引き続きサービスを提供できます。オンライン方式では、アップグレードして再起動する前に、各ノードでリーダーが1つずつ移行されます。したがって、大規模なクラスタの場合、アップグレード操作全体を完了するのに長い時間がかかります。
アプリケーションにメンテナンスのためにデータベースを停止するためのメンテナンスウィンドウがある場合は、オフラインアップグレード方法を使用して、アップグレード操作をすばやく実行できます。
オンラインアップグレード
tiup cluster upgrade <cluster-name> <version>
たとえば、クラスタをv6.1.0にアップグレードする場合は、次のようにします。
tiup cluster upgrade <cluster-name> v6.1.0
ノート:
オンラインアップグレードでは、すべてのコンポーネントが1つずつアップグレードされます。 TiKVのアップグレード中、TiKVインスタンスのすべてのリーダーは、インスタンスを停止する前に削除されます。デフォルトのタイムアウト時間は5分(300秒)です。このタイムアウト時間の後、インスタンスは直接停止します。
--force
パラメーターを使用すると、リーダーを削除せずにクラスタをすぐにアップグレードできます。ただし、アップグレード中に発生したエラーは無視されます。つまり、アップグレードの失敗は通知されません。したがって、--force
パラメータは注意して使用してください。安定したパフォーマンスを維持するには、インスタンスを停止する前に、TiKVインスタンスのすべてのリーダーが削除されていることを確認してください。
--transfer-timeout
をより大きな値(たとえば、--transfer-timeout 3600
(単位:秒))に設定できます。
- TiDBクラスタを5.3より前のバージョンから5.3以降のバージョンにアップグレードする場合、TiFlashをオンラインでアップグレードすることはできません。代わりに、最初にすべてのTiFlashインスタンスを停止してから、クラスタをオフラインでアップグレードする必要があります。次に、クラスタをリロードして、他のコンポーネントが中断することなくオンラインでアップグレードされるようにします。
オフラインアップグレード
オフラインアップグレードの前に、まずクラスタ全体を停止する必要があります。
tiup cluster stop <cluster-name>
オフラインアップグレードを実行するには、
upgrade
コマンドと--offline
オプションを使用します。tiup cluster upgrade <cluster-name> <version> --offline
アップグレード後、クラスタは自動的に再起動されません。再起動するには、
start
コマンドを使用する必要があります。tiup cluster start <cluster-name>
クラスタのバージョンを確認する
display
コマンドを実行して、最新のクラスタバージョンTiDB Version
を表示します。
tiup cluster display <cluster-name>
Cluster type: tidb
Cluster name: <cluster-name>
Cluster version: v6.1.0
ノート:
デフォルトでは、TiUPとTiDBは使用法の詳細をPingCAPと共有して、製品を改善する方法を理解するのに役立ちます。共有される内容と共有を無効にする方法の詳細については、 テレメトリーを参照してください。
FAQ
このセクションでは、TiUPを使用してTiDBクラスタを更新するときに発生する一般的な問題について説明します。
エラーが発生してアップグレードが中断された場合、このエラーを修正した後にアップグレードを再開するにはどうすればよいですか?
tiup cluster upgrade
コマンドを再実行して、アップグレードを再開してください。アップグレード操作は、以前にアップグレードされたノードを再起動します。アップグレードされたノードを再起動したくない場合は、 replay
サブコマンドを使用して操作を再試行してください。
tiup cluster audit
を実行して、操作レコードを確認します。tiup cluster audit
失敗したアップグレード操作レコードを見つけて、この操作レコードのIDを保持します。 IDは、次のステップの
<audit-id>
の値です。tiup cluster replay <audit-id>
を実行して、対応する操作を再試行します。tiup cluster replay <audit-id>
エビクトリーダーはアップグレード中にあまりにも長い間待っていました。クイックアップグレードのためにこのステップをスキップするにはどうすればよいですか?
--force
を指定できます。その後、PDリーダーの転送とTiKVリーダーの削除のプロセスは、アップグレード中にスキップされます。クラスタを直接再起動してバージョンを更新します。これは、オンラインで実行されるクラスタに大きな影響を与えます。コマンドは次のとおりです。
tiup cluster upgrade <cluster-name> <version> --force
TiDBクラスタをアップグレードした後にpd-ctlなどのツールのバージョンを更新するにはどうすればよいですか?
TiUPを使用してツールのバージョンをアップグレードし、対応するバージョンのctl
つのコンポーネントをインストールできます。
tiup install ctl:v6.1.0
TiDB6.1.0の互換性の変更
- 互換性の変更については、TiDB6.1.0リリースノートを参照してください。
- TiDB Binlogを使用してクラスターにローリング更新を適用する場合は、新しいクラスター化インデックステーブルの作成を避けてください。