TiDBクラスタシューティング ガイド

このガイドは、TiDB の使用中に発生する基本的な問題の診断と解決に役立ちます。問題が解決しない場合は、次の情報を収集して、 バグを報告を実行してください。

  • 正確なエラーメッセージとエラー発生時の操作
  • すべてのコンポーネントの状態
  • エラーを報告するコンポーネントのログ内のerror fatal panic
  • 構成と展開トポロジ
  • dmesgのTiDBコンポーネント関連の問題

その他の情報についてはよくある質問 (FAQ)参照してください。

データベースに接続できません

  1. tidb-server tikv-server含むすべてのサービスが開始されているpd-serverを確認します。

  2. psコマンドを使用して、すべてのプロセスが実行されているかどうかを確認します。

    • 特定のプロセスが実行されていない場合は、次の対応するセクションを参照して問題を診断し、解決してください。
    • すべてのプロセスが実行中の場合は、 tidb-serverログをチェックして、次のメッセージが表示されているかどうかを確認します。
      • 情報スキーマが古くなっています: tikv-serverに接続できない場合、このメッセージが表示されます。 pd-servertikv-serverの状態とログを確認してください。
      • panic: プログラムに問題がある場合、このメッセージが表示されます。詳細なpanicログを提供してくださいバグを報告
  3. データがクリアされ、サービスが再デプロイされる場合は、次の点を確認してください。

    • tikv-serverpd-serverのデータはすべてクリアされます。特定のデータはtikv-serverに保存され、メタデータはpd-serverに保存されます。2 つのサーバーのうち 1 つだけがクリアされると、データの不整合が発生します。
    • pd-servertikv-serverのデータがクリアされ、 pd-servertikv-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-servertikv-serverは別々に展開されますか?
  • 現在の操作は何ですか?
  • top -Hコマンドを使用して CPU スレッド名を確認します。
  • 最近、ネットワークまたは IO 監視データに例外はありますか?

このページは役に立ちましたか?