インプレース メジャー バージョン アップグレードのトラブルシューティング

このドキュメントでは、AlloyDB for PostgreSQL データベースをインプレースでメジャー バージョンにアップグレードする際に発生する可能性のある問題のトラブルシューティング方法について説明します。詳細については、データベースのメジャー バージョンをインプレースでアップグレードするをご覧ください。メジャー バージョンのインプレース アップグレード エラーについては、データベースのメジャー バージョンのインプレース アップグレード エラーをご覧ください。

アップグレードの失敗を分析するには、レスポンスから失敗したアップグレード ステージを特定し、このドキュメントの情報を使用して考えられる解決策を特定します。

AlloyDB はリクエストを同期的に検証し、次のいずれかが true の場合はエラー メッセージを返します。

  • リクエストが無効です。たとえば、指定されたターゲット メジャー バージョンがサポートされていない場合や、現在のメジャー バージョン以下の場合です。
  • クラスタ リソースは、メジャー バージョンのアップグレードをトリガーできない状態です。たとえば、クラスタまたは関連するインスタンスのいずれかが READY 状態にない場合などです。

リクエストが有効な場合でも、次の理由によりアップグレードが失敗することがあります。

  • さまざまな段階で実行されるアップグレード前チェックが失敗することがあります。これは、違反が検出されたことを意味します。アップグレードを再開する前に、これらの違反に対処する必要があります。
  • 内部エラーは、アップグレードを再試行する必要があることを意味します。再試行が失敗した場合は、Google Cloud サポートにお問い合わせください。

AlloyDB のアップグレード前チェックのエラー

アップグレード前チェックのエラーは、次のいずれかのステージで発生する可能性があります。

  • AlloyDB のアップグレード前チェック(ALLOYDB_PRECHECK
  • pg_upgrade チェック(PG_UPGRADE_CHECK
  • プライマリ クラスタのアップグレード(PRIMARY_INSTANCE_UPGRADE

アップグレード前チェックのエラーは、アップグレード前の検証フェーズで AlloyDB が検出した問題です。これにより、インプレース メジャー バージョン アップグレードが失敗する可能性があります。たとえば、AlloyDB は、現在のメジャー バージョンとターゲット メジャー バージョンの拡張機能の互換性を確認します。

エラー メッセージは、アップグレード オペレーション レスポンスの logs_url に入力されます。これらのログは、Google Cloud コンソールのログ エクスプローラで確認できます。詳細については、監査ログを表示するをご覧ください。

ログに表示される失敗と対応するエラー メッセージを表示するには、データベースのメジャー バージョンのインプレース アップグレード エラーをご覧ください。

AlloyDB のアップグレード前チェックによってログに生成されるサマリーの例を次に示します。

Total number of databases checked for custom checks: 3
Total number of databases containing pg_largeobject: 0
Total number of databases containing event triggers permissions issue: 0
Total number of databases containing extensions compatibility violation: 1
Total number of databases containing search path violations: 0

pg_upgrade チェックの失敗

PG_UPGRADE_CHECK は、標準の pg_upgrade ユーティリティを使用して違反を確認します。このアップグレード チェック����、�����ジ���ン固有のデータ構造の違い、エンコードと照合の変更、データ型の変更、システム カタログの調整など、さまざまな要因から生じるデータの不整合が含まれます。

pg_upgrade の実行中に生成される tables_with_oids.txttables_using_reg.txt などの複数のファイルが postgres_upgrade ログファイルにエクスポートされます。これらのファイルは、ラベル labels.FILE_NAME を使用してフィルタできます。

解決するエラーが存在するファイル名には、次のものがあります。

ファイル名 説明

tables_with_oids.txt

このファイルには、オブジェクト ID(OID)でリストされたテーブルが含まれています。テーブルを削除するか、OID を使用しないようにテーブルを変更します。

tables_using_composite.txt

このファイルには、システム定義の複合タイプを使用して一覧表示されるテーブルが含まれています。テーブルを削除するか、これらの複合タイプを使用しないようにテーブルを変更します。

tables_using_unknown.txt

このファイルには、UNKNOWN データタイプを使用して一覧表示されたテーブルが含まれています。テーブルを削除するか、このデータタイプが使用されないように変更します。

tables_using_sql_identifier.txt

このファイルには、SQL_IDENTIFIER データタイプを使用して一覧表示されたテーブルが含まれています。テーブルを削除するか、このデータタイプが使用されないように変更します。

tables_using_reg.txt

このファイルには、REG* データタイプ(REGCOLLATIONREGNAMESPACE など)を使用して一覧表示されたテーブルが含まれています。テーブルを削除するか、テーブルでこのデータタイプが使用されないように変更します。

postfix_ops.txt

このファイルには、postfix(右単項)演算子を使用して一覧表示されたテーブルが含まれています。テーブルを削除するか、これらの演算子が使用されないように変更します。

pg_upgrade の失敗

PG_UPGRADE ログの構造は PG_UPGRADE_CHECK ログの構造に似ています。

ラベル labels.FILE_NAME=pg_upgrade_dump*.log: のログの例を次に示します。

pg_upgrade_dump: error: query failed: ERROR: out of shared memory
HINT: You might need to increase max_locks_per_transaction.

次のステップ