すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB RDS:ApsaraDB RDS for PostgreSQLインスタンスのメジャーエンジンバージョンアップのチェックレポートの概要

最終更新日:Dec 10, 2024

このトピックでは、ApsaraDB RDS for PostgreSQLインスタンスのメジャーエンジンバージョンアップのチェックレポートについて説明します。 このトピックでは、レポートに含まれる一般的なエラーと、これらのエラーの解決策についても説明します。

チェックレポートは中国语と英语で提供されます。

チェックアイテム

アップグレードチェックレポートのチェック結果が 失敗 の場合、次の手順を実行して失敗の詳細を表示できます。ApsaraDB RDSコンソールにログインし、[メジャーバージョンのアップグレード] ページに移動し、[レポートコンテンツ] 列の 情報の表示 をクリックします。 詳細については、「メジャーエンジンのバージョンのアップグレード」をご参照ください。

次のセクションでは、チェックレポートに含まれる情報と一般的なエラーについて説明します。

警告

コンテンツ

RDSインスタンスのメジャーエンジンバージョンのアップグレード中、RDSインスタンスの読み取り専用時間とメモリおよびディスクリソースは、データベースオブジェクトの数の影響を受けます。 データベースオブジェクトの数が多すぎて、メモリおよびディスクリソースが不足している場合、アップグレードに失敗する可能性があります。 この場合、システムは [アップグレードチェック] タブで推奨メモリ容量、推奨最小メモリ容量、および推奨ディスクサイズを提供します。

  • 推奨メモリ容量: メジャーエンジンバージョンのアップグレード中に、システムはRDSインスタンスの複数のデータベースを同時にアップグレードできます。 RDSインスタンスのメモリ容量が推奨メモリ容量以上の場合、RDSインスタンスは直ちにアップグレードされ、RDSインスタンスの読み取り専用時間が短縮されます。

  • 推奨最小メモリ容量: RDSインスタンスのメモリ容量が推奨最小メモリ容量以上の場合、RDSインスタンスはアップグレードされます。 ただし、システムはRDSインスタンスの各データベースを順番にアップグレードするため、RDSインスタンスの読み取り専用時間が延長される場合があります。

  • 推奨ディスクサイズ: メジャーエンジンバージョンのアップグレード中、システムはすべてのオブジェクト定義を一時的に複製します。 これは、inode消費を2倍にする。 アップグレード中に、ディスクサイズが推奨ディスクサイズ未満の場合、アップグレードが失敗する可能性があります。

警告と解決策

ディスク警告

  • 形式: 合計ディスクサイズ: {*} GB; 使用済みディスクサイズ: {*} GB; 使用済みinode: {*}; bytes-per-nodes: {*}; アップグレードに必要な最小ディスクサイズ: {*} GB

  • 考えられる原因: データベースオブジェクトの数が多すぎるため、ディスクサイズが大きくなります。

  • 解決策:

    • blue-greenデプロイモードでは、アップグレードに必要な最小ディスクサイズ以上の新しいRDSインスタンスのストレージ容量を指定する必要があります。

    • ローカルアップグレードモードでは、アップグレード前にアップグレードするRDSインスタンスのストレージ容量を拡張する必要があります。 新しいストレージ容量は、アップグレードに必要な最小ディスクサイズ以上である必要があります。 詳細については、「インスタンス仕様の変更」をご参照ください。

メモリ警告

  • 形式: 現在のメモリ容量: {*} GB; 推奨メモリ容量: {*} GB; 最小メモリ容量: {*} GB

  • 考えられる原因: データベースオブジェクトの数が多すぎます。 RDSインスタンスのメモリリソースが十分であることを確認します。 これにより、アップグレード中のRDSインスタンスの読み取り専用時間を短縮できます。

  • 解決策:

    • blue-greenデプロイモードでは、アップグレードに必要な最小ディスクサイズ以上の新しいRDSインスタンスのストレージ容量を指定する必要があります。

    • ローカルアップグレードモードでは、インスタンスタイプによって提供されるメモリ容量が推奨メモリ容量未満の場合、RDSインスタンスの仕様をアップグレードする必要があります。 詳細については、「インスタンス仕様の変更」をご参照ください。

サブスクリプションの警告

  • 形式: レプリケーションスロットのサブスクライバーはRDSインスタンスにあります。 データの不整合を防ぐために、関連するAlibaba Cloudドキュメントを参照することを推奨します。

  • 考えられる原因: レプリケーションスロットのサブスクライバがRDSインスタンスに存在します。 SELECT * FROM pg_subscription; 文を実行して、サブスクライバを表示します。

  • 解決策: 詳細については、「アップグレード後にサブスクライブされたデータに一貫性がないという問題を処理する方法」をご参照ください。

エラー

コンテンツ

  • システムは、バックグラウンドで冗長なスーパーユーザーアカウントが作成されているか、標準アカウントに無効な暗号化方法が設定されているかを確認します。

  • アップグレードチェックが失敗したかどうかをチェックします。 アップグレードチェックが失敗した場合、「pg_upgradeエラーログ」エラーメッセージがチェックレポートに含まれます。

  • pgcrypto拡張機能がpg_catalogスキーマにインストールされているかどうかを確認します。

エラーと解決策

アカウントエラー

  • 形式: 無効なスーパーアカウント: {*}; 無効なアカウント: {*} 。 関連するAlibaba Cloudドキュメントを表示します。

  • 考えられる原因: 冗長なスーパーユーザーアカウントまたは異常な標準アカウントが存在します。

  • 解決策:

    • 冗長スーパーユーザーアカウントを削除するために、Alibaba Cloudテクニカルサポートへチケットを送信します。

    • 異常な標準アカウントのパスワードをリセットします。

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

  • 形式: pg_upgradeのアップグレードチェックが失敗しました。 「pg_upgradeエラーログ」と「pg_upgrade-relatedファイルとエラー」を表示します。

  • 考えられる原因: アップグレードチェックが失敗しました。

  • 解決策: ログの問題を解決します。 「pg_upgradeエラーログ」を表示します。

pgcrypto拡張エラー

  • 形式: pgcrypto拡張子は、{*} データベースのpg_catalogスキーマにインストールされます。 関連するAlibaba Cloudドキュメントを表示します。

  • 考えられる原因: pgcrypto拡張機能を使用してpg_catalogの後のメジャーエンジンバージョンでのみ使用できる関数を作成するため、メジャーエンジンバージョンのアップグレードが失敗します。

  • 解決策: 各データベースからpgcrypto拡張機能を削除し、pg_catalogスキーマ以外のスキーマに拡張機能を作成します。

pg_upgradeエラーログ

コンテンツ

システムは、新しいメジャーエンジンバージョンと互換性のない拡張機能とキーワードが存在するかどうかをチェックします。

一般的なエラー

問題ライブラリのリストがファイルにあります: loadable_libraries.txt

考えられる原因

新しいメジャーエンジンバージョンと互換性のない拡張機能が存在し、関連する拡張機能はloadable_libraries.txtファイルに記録されます。

解決策

loadable_libraries.txtファイルに記録されている拡張子を確認し、ビジネス要件に基づいて拡張子を削除する必要があるかどうかを判断します。 拡張機能を削除する必要がある場合は、アップグレードの前に拡張機能を削除することを推奨します。 拡張機能を削除する前に、RDSインスタンスが拡張機能なしで期待どおりに実行できることを確認してください。 ApsaraDB RDS For PostgreSQLでサポートされている拡張機能の詳細については、「サポートされている拡張機能」をご参照ください。

問題のあるテーブルのリストがファイルにあります: tables_with_oids.txt

考えられる原因

一部のテーブルは、with OIDS句で作成されます。 この句はPostgreSQL 12以降ではサポートされておらず、関連するテーブルはtables_with_oids.txtファイルに記録されます。

ソリューション

  • 解決策1: RDSインスタンスのメジャーエンジンバージョンをPostgreSQL 11にアップグレードします。 PostgreSQL 11はWITH OIDS句をサポートしています。 この解決策が推奨されます。

  • 解決策2: loadable_libraries.txtファイルに記録されているテーブルを確認し、ビジネスコードがWITH OIDS句で指定されているオブジェクトに依存しているかどうかを判断します。 ビジネスコードが指定されたオブジェクトに依存しない場合は、次のステートメントを実行します。

    ALTER TABLE {table_name} SET WITHOUT OIDS;

pg_upgrade関連のファイルとエラー

loadable_libraries.txt

このファイルには、新しいメジャーエンジンバージョンと互換性のないライブラリが含まれています。 これらのライブラリに基づいて互換性のない拡張機能を特定できます。

次の情報は、一般的な互換性のない拡張機能と互換性の問題に対する解決策について説明します。

pgrouting拡張

考えられる原因

pgrouting拡張機能は、新しいメジャーエンジンバージョンと互換性がありません。

解決策

ビジネス要件に基づいて拡張機能を削除するかどうかを決定します。 拡張機能を削除する場合は、アップグレードの前に拡張機能を削除することを推奨します。 拡張機能を削除する前に、RDSインスタンスが拡張機能なしで期待どおりに実行できることを確認してください。 ApsaraDB RDS For PostgreSQLでサポートされている拡張機能の詳細については、「サポートされている拡張機能」をご参照ください。

jsonbx拡张子

考えられる原因

一部のJSONデータ型は、PostgreSQL 9.4でサポートされていません。 すべてのJSONデータ型をサポートするには、jsonbx拡張機能を有効にする必要があります。 PostgreSQL 10以降のバージョンは、すべてのJSONデータ型をサポートしています。 RDSインスタンスがPostgreSQL 10以降のバージョンを実行している場合、jsonbx拡張機能を有効にする必要はありません。

解決策

新しいメジャーエンジンバージョンのjsonbx拡張機能で使用されている関数を確認し、ビジネス要件に基づいて拡張機能を削除するかどうかを判断します。 拡張機能を削除する場合は、アップグレードの前に拡張機能を削除することを推奨します。 拡張機能を削除する前に、RDSインスタンスが拡張機能なしで期待どおりに実行できることを確認してください。

jsonbx拡張機能で使用される一部の関数は、異なるPostgreSQLバージョンで異なる結果を返す場合があります。 次の表に、結果の違いを示します。

関数

PostgreSQL 9.4で結果を返す

PostgreSQL 10以降のバージョンで結果を返す

select '{"a":1, "b":2, "c":3}'::jsonb - 2;

{"a": 1, "b": 2}

エラー: 整数インデックスを使用してオブジェクトから削除できません

select jsonb_delete('{"a":1, "b":2, "c":3}'::jsonb, '{b}'::text[]);

{"a": 1, "c": 3}

エラー: 関数jsonb_delete(jsonb, text[]) が存在しません

select '{"a":{"c":1, "d":2}, "b":3}'::jsonb - '{a, c}'::text[];

{"a": {"d": 2}, "b": 3}

{"b": 3}

PostGISおよびpostgis_topology拡張

考えられる原因

使用されているPostGIS拡張機能のバージョンが古いため、新しいメジャーエンジンバージョンで指定されたライブラリと互換性がありません。 その結果、RDSインスタンスはアップグレードチェックに失敗しました。

解決策

重要

PostGIS拡張機能は、主要なエンジンバージョンによって異なります。 たとえば、この拡張機能は、さまざまなメジャーエンジンバージョンのよく知られているテキスト (WKT) 形式に関連するさまざまな解析エラーを報告します。 この拡張機能を更新する前に、RDSインスタンスのクローンを作成することを推奨します。 クローン化されたRDSインスタンスを使用して、この拡張機能と新しいメジャーエンジンバージョンとの互換性をテストできます。 この拡張機能が新しいエンジンバージョンと互換性があることを確認したら、元のRDSインスタンスのこの拡張機能を新しいメジャーエンジンバージョンに更新できます。 RDSインスタンスのクローンを作成する方法の詳細については、「ApsaraDB RDS For PostgreSQLインスタンスのバックアップ」および「ApsaraDB RDS for PostgreSQLインスタンスのデータの復元」をご参照ください。

  1. インスタンスのマイナーエンジンバージョンを更新します。 詳細については、「マイナーエンジンバージョンの更新」をご参照ください。

  2. エラーを報告するPostGIS拡張機能を更新します。 詳細については、「Ganosのプラグインを更新するにはどうすればよいですか? 」をご参照ください。

  3. \dxコマンドを実行して、PostGIS拡張機能のバージョンを照会します。 PostGIS拡張機能のバージョンが3.3.2以降であることを確認してください。

  4. アップグレードチェックを再度実行します。

    重要

    PostGIS拡張機能、postgis_topology拡張機能、またはpgrouting拡張機能がRDSインスタンスにインストールされている場合は、次の制限事項に注意してください。

    • RDSインスタンスがPostgreSQL 9.4を実行している場合、RDSインスタンスのメジャーエンジンバージョンをPostgreSQL 10またはPostgreSQL 11にのみアップグレードできます。

    • RDSインスタンスがPostgreSQL 10を実行している場合、RDSインスタンスのメジャーエンジンバージョンをPostgreSQL 11にのみアップグレードできます。

    • RDSインスタンスがPostgreSQL 11、PostgreSQL 12、またはPostgreSQL 13を実行している場合、RDSインスタンスのメジャーエンジンバージョンをアップグレードすることはできません。

tables_with_oids.txt

with OIDS句で作成されたテーブルが表示されます。