TiDBクラスタトラブルシューティング ガイド
このガイドは、TiDB の使用中に発生する基本的な問題を診断して解決するのに役立ちます。問題が解決しない場合は、次の情報を収集して、 バグを報告する実行してください。
- 正確なエラーメッセージとエラー発生時の操作
- すべてのコンポーネントの状態
- エラーを
panic
するコンポーネントのログ内のerror
fatal
情報 - 構成と展開トポロジ
dmesg
のTiDBコンポーネント関連の問題
その他の情報についてはよくある質問 (FAQ)参照してください。
データベースに接続できません
tidb-server
tikv-server
含むすべてのサービスがpd-server
されていることを確認します。ps
コマンドを使用して、すべてのプロセスが実行されているかどうかを確認します。- 特定のプロセスが実行されていない場合は、次の対応するセクションを参照して問題を診断し、解決してください。
- すべてのプロセスが実行中の場合は、
tidb-server
ログをチェックして、次のメッセージが表示されているかどうかを確認します。- 情報スキーマが古くなっています:
tikv-server
が接続できない場合にこのメッセージが表示されます。pd-server
とtikv-server
の状態とログを確認してください。 - panic: プログラムに問題がある場合、このメッセージが表示されます。詳細なpanicログを提供してくださいバグを報告する 。
- 情報スキーマが古くなっています:
データがクリアされ、サービスが再デプロイされる場合は、次の点を確認してください。
tikv-server
とpd-server
のデータはすべてクリアされます。特定のデータはtikv-server
に保存され、メタデータはpd-server
に保存されます。2 つのサーバーのうち 1 つだけがクリアされると、データの不整合が発生します。pd-server
とtikv-server
のデータがクリアされ、pd-server
とtikv-server
が再起動されたら、tidb-server
も再起動する必要があります。クラスター ID は、pd-server
が初期化されるときにランダムに割り当てられます。そのため、クラスターが再デプロイされると、クラスター ID が変更され、新しいクラスター ID を取得するにはtidb-server
再起動する必要があります。
tidb-server
起動できません
tidb-server
起動できない場合の状況については、以下を参照してください。
起動パラメータにエラーがあります。
TiDB の構成とオプション参照してください。
港は占領されています。
lsof -i:port
コマンドを使用して、特定のポートに関連するすべてのネットワークを表示し、tidb-server
を開始するポートが使用されていないことを確認します。
pd-server
に接続できません。- TiDB と PD 間のネットワークがスムーズに動作しているかどうか、ネットワークに ping できるかどうか、ファイアウォールの設定に問題があるかどうかなどを確認します。
- ネットワークに問題がない場合は、
pd-server
プロセスの状態とログを確認します。
tikv-server
起動できません
tikv-server
起動できない場合の状況については、以下を参照してください。
起動パラメータのエラー: TiKV の設定とオプション参照してください。
ポートが使用中です:
lsof -i:port
コマンドを使用して、特定のポートに関連するすべてのネットワークを表示し、tikv-server
を開始するポートが使用されていないことを確認します。
pd-server
に接続できません。TiDB と PD 間のネットワークがスムーズに動作しているかどうか、ネットワークに ping できるかどうか、ファイアウォールの設定に問題があるかどうかなどを確認します。
ネットワークに問題がない場合は、
pd-server
プロセスの状態とログを確認します。
ファイルは使用中です。
1 つのデータベース ファイル ディレクトリで 2 つの TiKV ファイルを開かないでください。
pd-server
起動できません
pd-server
起動できない場合の状況については、以下を参照してください。
起動パラメータにエラーがあります。
PD 構成とオプション参照してください。
港は占領されています。
lsof -i:port
コマンドを使用して、特定のポートに関連するすべてのネットワークを表示し、pd-server
を開始するポートが使用されていないことを確認します。
TiDB/TiKV/PD プロセスが予期せず中止される
プロセスはフォアグラウンドで開始されていますか? クライアントが中止したためにプロセスが終了する可能性があります。
nohup+&
コマンドラインで実行されていますか? この場合、hup シグナルを受信するため、プロセスが中止される可能性があります。 起動コマンドをスクリプトに記述して実行することをお勧めします。
TiDBpanic
panicログを提供してくださいバグを報告するできます。
接続が拒否されました
オペレーティング システムのネットワーク パラメータが正しいことを確認します。これには以下が含まれますが、これらに限定されません。
- 接続文字列内のポートは、開始ポート
tidb-server
と一致します。 - ファイアウォールは正しく構成されています。
開いているファイルが多すぎる
プロセスを開始する前に、 ulimit -n
の結果が十分に大きいことを確認してください。値をunlimited
または1000000
より大きく設定することをお勧めします。
データベースアクセスがタイムアウトし、システム負荷が高すぎる
まず、 スロークエリログをチェックして、不適切な SQL ステートメントが原因かどうかを確認します。
問題を解決できなかった場合は、次の情報を提供してください。
展開トポロジ
tidb-server
/pd-server
/tikv-server
インスタンスはいくつデプロイされていますか?- これらのインスタンスはマシン内でどのように分散されるのでしょうか?
これらのインスタンスがデプロイされているマシンのハードウェア構成:
- CPUコアの数
- メモリのサイズ
- ディスクの種類(SSD またはハード ドライブ ディスク)
- それらは物理マシンですか、それとも仮想マシンですか?
- TiDB クラスター以外に他のサービスはありますか?
pd-server
とtikv-server
は別々に展開されますか?- 現在の操作は何ですか?
top -H
コマンドを使用して CPU スレッド名を確認します。- 最近、ネットワークまたは IO 監視データに例外はありますか?