TiDBクラスタのトラブルシューティング ガイド

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

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

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

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

  1. tidb-serverpd-server 、およびtikv-serverを含むすべてのサービスが開始されていることを確認します。

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

    • 特定のプロセスが実行されていない場合は、次の対応するセクションを参照して問題を診断し、解決してください。
    • すべてのプロセスが実行されている場合は、 tidb-serverログをチェックして、次のメッセージが表示されるかどうかを確認します。
      • InformationSchema is out of date: このメッセージは、 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 監視データに例外はありますか?

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