Adobe Commerceでのデータベースストレージのトラブルシューティング

この記事では、Adobe Commerceでのデータベースストレージの問題を診断および解決するための手順ごとのトラブルシューティングガイドを提供します。 /tmpおよび/data/mysqlの空き容量の不足、inodeの消耗、およびデフォルト以外のMySQL tmpdirなどの設定変更に関連する根本原因を特定するのに役立ちます。 各手順では、診断に関する質問が表示され、回答にもとづいて関連するコマンド、ログ、ドキュメントが表示されます。

説明 description

環境

Adobe Commerce on cloud infrastructure

問題/症状

  • データベースのストレージの問題によるサイトの停止またはダウンタイム
  • デバイス (28)​に空き領域がありません
  • フル /tmp マウントのため、ノードにSSHで接続できません
  • /tmpまたは/data/mysql ディレクトリでの高いディスク使用率
  • 買い物かごに商品を追加できない顧客
  • データベース接続エラー
  • SQLSTATE[ 08S01]などのGalera クラスターエラー:通信リンクのエラー:1047 WSREP
  • 使用可能なストレージを使い果たし、ノードのクラッシュを引き起こすクエリ
  • IUse% > 90%が示すノードの枯渇(ファイルが多すぎます)

解決策 resolution

手順1 - スペースの問題があるディレクトリを特定する

空き容量が不足していることで/tmpの問題が発生していますか?

これは、次のような様々な症状によって示されます。

  • /tmp マウントがいっぱいです
  • サイトの停止または停止
  • ノードにSSHで接続できません
  • デバイスに空き領域がありません(28)

/tmpがいっぱいになっている結果のエラーのリストについては、/tmp mount fullを確認してください。

または、スペース不足が原因で/data/mysqlの問題が発生していますか? 症状は次のとおりです。

  • サイト停止
  • 買い物かごに商品を追加できない顧客
  • データベース接続エラー
  • SQLSTATE[ 08S01]などのGalera エラー:通信リンクのエラー:1047 WSREP

MySQL ディスク容量の低下に起因するエラーの一覧については、「​ クラウドインフラストラクチャ上のAdobe CommerceのMySQL ディスク容量が少ない」を参照してください。

ディスク容量の問題があり、New Relic アカウントを持っているかどうかわからない場合は、New Relic Infrastructure monitoring Hosts ページ ​に移動します。 そこから

  • ストレージ 」タブをクリックします
  • グラフ表示」ドロップダウンを5から20に変更します
  • ディスク使用率%のグラフまたはテーブルで、高ディスク使用率のテーブルを検索します

詳細な手順については、「New Relic Infrastructure Monitoring > Storage」タブ ​を参照してください。

上記のいずれかの症状がある場合は、Inodeの状態を確認して、これがファイル番号の問題によって引き起こされていないことを確認してください。 CLI/ターミナルで実行します。

code language-none
df -ih

IUse% > 90%ですか?

次に、手順3に進みます。

手順2 - ディスク容量を確認する

ディスク領域の使用状況を確認しますか?

ファイル数を減らしたら、CLI/ターミナルで次のコマンドを実行して、/tmp/data/mysqlのディスク容量の使用状況を確認します。

code language-none
df -h | grep mysql
df -h | grep tmp

/tmpまたは/data/mysqlに対して70%を超えて使用されていますか?

  • YES - ステップ 3に進みます。

  • NO - クエリで使用可能なストレージが使い切られている可能性があります。 これにより、ノードがクラッシュし、クエリが終了してtmp ファイルが削除される可能性があります。 MySQL コマンドラインクライアントにログインし、次を実行します。

    code language-none
    SHOW PROCESSLIST;
    

問題のあるクエリの出力を確認します。 未解決の場合は、​ サポートチケットを送信して、さらに多くのスペースをリクエストしてください。

手順3 – 使用率の高いディレクトリを特定する

70%を超える使用されているディレクトリはどれですか?
  • /tmp - ステップ 4に進みます。
  • /data/mysql - ステップ 5に進みます。

メモ: デフォルトでは、データベース tmpdirは/tmpに書き込まれます。 データベースの構成を確認するには、MySQL コマンドライン クライアントにログインして次を実行します:

code language-none
SHOW VARIABLES LIKE "TMPDIR";

tmpdirがまだ/tmpに書き込み中の場合は、「値」列に/tmpが表示されます。

手順4 - /tmp mount fullのトラブルシューティング

トラブルシューティング /tmp mount full

Adobe Commerce🔗の「 トラブルシューティング /tmp マウントフル」に従います。 ソリューションを適用した後、CLI/ターミナルで次のコマンドを実行します。

code language-none
df -h | grep mysql
df -h | grep tmp

使用状況<は70%ですか?

注: ​ トラブルシューティング /tmp mount fullのソリューションは、デフォルトで/tmpに書き込まれるデータベース tmpdirの変数を変更していないマーチャント向けに設計されています。 tmpdir値を変更した場合、​ トラブルシューティング /tmp マウント フル ​の手順は役に立ちません。

手順5 - デフォルトを確認する

既定を確認

データベースの設定が元のデフォルトに設定されていない可能性があります。 MySQL コマンドラインクライアントで実行して、データベース tmpdir設定を検索します:SELECT @@DATADIR;

/data/mysql/が出力された場合、tmpdirは/data/mysql/に書き込んでいます。 クラウドインフラストラクチャ上のAdobe CommerceのMySQL ディスク領域が少ないの手順に従って、領域を増やします。 次に、CLI/ターミナルで実行します。

code language-none
df -h | grep mysql
df -h | grep tmp

使用状況<は70%ですか?

関連トピックス

Commerce実装プレイブックのデータベーステーブルを修正するためのベストプラクティス ​

recommendation-more-help
experience-cloud-kcs-help-kbarticles