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

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

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

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

  • リクエストが無効です。たとえば、指定されたターゲット メジャー バージョンがサポートされていない場合や、現在のメジャー バージョン以下の場合です。
  • クラスタ リソースは、メジャー バージョンのアップグレードをトリガーできない状態です。たとえば、クラスタまたは関連するインスタンスのいずれかが 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: 
Total number of databases containing pg_largeobject: 
Total number of databases containing extensions compatibility violation: 

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.

次のステップ