TiDBクラスタトラブルシューティング ガイド
このガイドは、TiDB の使用中に発生する基本的な問題を診断して解決するのに役立ちます。問題が解決しない場合は、次の情報を収集して、 バグを報告する実行してください。
- 正確なエラーメッセージとエラー発生時の操作
- すべてのコンポーネントの状態
- エラーを
panicするコンポーネントのログ内のerrorfatal情報 - 構成と展開トポロジ
dmesgのTiDBコンポーネント関連の問題
その他の情報についてはよくある質問 (FAQ)参照してください。
データベースに接続できません
tidb-servertikv-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 監視データに例外はありますか?