2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Aurora PostgreSQL メジャーバージョンアップ事前作業

Last updated at Posted at 2023-07-13

本書はAurora PostgreSQL 11.16 → 14.5 へアップグレードする前の作業について記載する。
バージョン対応表は以下を参照
利用可能なバージョン表(2023/7/12時点)

環境

DB クラスター
 エンジン:Aurora postgresql
 キャパシティータイプ:シングルマスター
 リージョン:ap-northeast-1

DB インスタンス
 インスタンスクラス:db.r5.large
 AZ(ライター):ap-northeast-1c
 AZ(リーダー):ap-northeast-1d

EC2
 インスタンスタイプ:c5.large
 AZ:ap-northeast-1d
 OS:Red Hat Enterprise Linux 7.7
 導入済みパッケージ:postgresql11-11.10-1PGDG.rhel7.x86_64
           postgresql11-libs-11.10-1PGDG.rhel7.x86_64

作業一覧

  1. カスタムパラメータグループ作成
  2. サポートされていない使用の確認

注意
カスタムパラメータグループ作成は必須ではないが、作成することを推奨。
パラメータグループをデフォルトに設定した場合、パラメータの変更不可。
デフォルトからカスタムパラメータへ変更する際に再起動が必須となる。

作業手順

1. カスタムパラメータグループ作成

カスタムパラメータグループには2種類ある
 1. DB パラメータ グループ
 2. DB クラスター パラメータグループ
違いはインスタンス別で設定可能か、クラスター単位で設定可能かどうか。

簡単に言えば [1. DB パラメータ グループ] の設定値が優先で適用され、[1. DB パラメータ グループ] でデフォルト値の場合、[2. DB クラスター パラメータグループ] の設定値が適用される。

①DB パラメータ グループ作成

パラメータグループファミリー
 バージョンアップ後のバージョンを選択
タイプ
 DB Parameter Group を選択
グループ名/説明
 任意の文字列を入力
カスタムパラメータグループ作成_01.png

②DB クラスター パラメータグループ作成

パラメータグループファミリー
 バージョンアップ後のバージョンを選択
タイプ
 DB Cluster Parameter Group を選択
グループ名/説明
 任意の文字列を入力
カスタムパラメータグループ作成_02.png

③各パラメータの変更

例)カスタムパラメータグループの[timezone]の変更
 UTC → Asia/Tokyo へ変更
カスタムパラメータグループ作成_03.png

2. サポートされていない使用の確認

①準備済みのトランザクションが存在しないことを確認

SELECT count(*) FROM pg_catalog.pg_prepared_xacts;
実行例
 postgres=> SELECT count(*) FROM pg_catalog.pg_prepared_xacts;
  count 
 -------
      0
 (1 )

② reg* データ型が使用されていないことを確認

SELECT count(*) FROM pg_catalog.pg_class c, pg_catalog.pg_namespace n, pg_catalog.pg_attribute a 
  WHERE c.oid = a.attrelid 
      AND NOT a.attisdropped 
      AND a.atttypid IN ('pg_catalog.regproc'::pg_catalog.regtype, 
                         'pg_catalog.regprocedure'::pg_catalog.regtype, 
                         'pg_catalog.regoper'::pg_catalog.regtype, 
                         'pg_catalog.regoperator'::pg_catalog.regtype, 
                         'pg_catalog.regconfig'::pg_catalog.regtype, 
                         'pg_catalog.regdictionary'::pg_catalog.regtype) 
      AND c.relnamespace = n.oid 
      AND n.nspname NOT IN ('pg_catalog', 'information_schema');
実行例
 postgres=> SELECT count(*) FROM pg_catalog.pg_class c, pg_catalog.pg_namespace n, pg_catalog.pg_attribute a 
 postgres->   WHERE c.oid = a.attrelid 
 postgres->       AND NOT a.attisdropped 
 postgres->       AND a.atttypid IN ('pg_catalog.regproc'::pg_catalog.regtype, 
 postgres(>                          'pg_catalog.regprocedure'::pg_catalog.regtype, 
 postgres(>                          'pg_catalog.regoper'::pg_catalog.regtype, 
 postgres(>                          'pg_catalog.regoperator'::pg_catalog.regtype, 
 postgres(>                          'pg_catalog.regconfig'::pg_catalog.regtype, 
 postgres(>                          'pg_catalog.regdictionary'::pg_catalog.regtype) 
 postgres->       AND c.relnamespace = n.oid 
 postgres->       AND n.nspname NOT IN ('pg_catalog', 'information_schema');
  count 
 -------
      0
 (1 )

③template1 と template0 の確認

 template1 と template0 が存在し、テンプレートとしてリストされていること

SELECT datname, datistemplate FROM pg_database;
実行例
 postgres=> SELECT datname, datistemplate FROM pg_database;
datname    | datistemplate
-----------+---------------
template0  | t
rdsadmin   | f
template1  | t
postgres   | f

template1 と template0 の [datistemplate] の値が「t」であること

④論理的なレプリケーションスロットがないことを確認

SELECT * FROM pg_replication_slots;
実行例
 postgres=> SELECT * FROM pg_replication_slots;
  slot_name | plugin | slot_type | datoid | database | temporary | active | active_pid | xmin | catalog_xmin | restart_lsn | confirmed_flush_lsn 
 -----------+--------+-----------+--------+----------+-----------+--------+------------+------+--------------+-------------+---------------------
 (0 )

⑤拡張機能の確認

インストール済みの拡張機能に以下がある場合は、Auroraメジャーバージョンアップ前に拡張機能のアップデートを実施

  • pgRouting
  • postgis_raster
  • postgis_tiger_geocoder
  • postgis_topology
  • address_standardizer
  • address_standardizer_data_us
拡張機能一覧表示
SELECT * FROM pg_extension;
拡張機能アップデート
ALTER EXTENSION PostgreSQL-extension UPDATE TO 'new-version';

インストールされている拡張機能ごとにアップデートが必要

参考

AWS公式 Aurora PostgreSQL DBエンジンのアップグレード

メジャーバージョンアップ

マイナーバージョンアップ

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?