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