TiDBクラスタシューティング ガイド
このガイドは、TiDBの使用中に発生する基本的な問題の診断と解決に役立ちます。問題が解決しない場合は、以下の情報を収集して、 バグを報告する .
- 正確なエラーメッセージとエラー発生時の操作
- すべてのコンポーネントの状態
- エラー
panic報告するコンポーネントのログのerrorfatal情報 - 構成と展開トポロジ
dmesgのTiDBコンポーネント関連の問題
その他の情報についてはよくある質問(FAQ)参照してください。
データベースに接続できません
tidb-serverpd-server含むすべてのサービスが開始されていることを確認しますtikv-serverpsコマンドを使用して、すべてのプロセスが実行中かどうかを確認します。- 特定のプロセスが実行されていない場合は、次の対応するセクションを参照して問題を診断し、解決してください。
- すべてのプロセスが実行中の場合は、
tidb-serverログをチェックして、次のメッセージが表示されているかどうかを確認します。- 情報スキーマが古くなっています:
tikv-server接続できない場合にこのメッセージが表示されます。3 とpd-servertikv-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 監視データに例外はありますか?