pg_upgradeを使用して、VCIの拡張を使用しているFUJITSU Enterprise Postgres 11以前のインスタンスをFUJITSU Enterprise Postgres 12以降にアップグレードする場合、FUJITSU Enterprise Postgres 12以降とFUJITSU Enterprise Postgres 11以前の間でVCIの拡張の互換性がないため、以下を実行する必要があります。
FUJITSU Enterprise Postgres 11以前の"template0"以外のすべてのデータベースにおいて、以下の手順に従います。
アップグレード前の手順
CREATE INDEX定義の取得
以下のクエリを実行して、データベースに作成されたすべてのVCIインデックスを確認します。pg_upgrade完了後、これらのインデックスがFUJITSU Enterprise Postgres 12以降で再作成されていることを確認してください。
SELECT nspname || '.' || relname AS index_relname,* FROM pg_class, pg_namespace WHERE relnamespace = pg_namespace.oid AND relam IN (SELECT oid FROM pg_am WHERE amname='vci');
上記の各index_relnameに対して、以下のコマンドを実行してCREATE INDEX定義を取得します(取得したCREATE INDEX定義は、FUJITSU Enterprise Postgres 12以降でインデックスを再作成する際に使用します)。
SELECT pg_get_indexdef('indexName'::regclass);
VCIインデックスとVCI拡張の削除
Fujitsu Enterprise Postgres で作成されているVCIインデックスおよびVCI内部オブジェクトをすべて削除するには、以下のコマンドを実行します。VCI内部オブジェクトは、FUJITSU Enterprise Postgres 12以降で、VCIに対してCREATE EXTENSIONコマンドを実行すると自動的に作成されます。
DROP EXTENSION VCI CASCADE;
注意
FUJITSU Enterprise Postgres 11以前のインスタンスでVCIの拡張をリストアするには、CREATE EXTENSIONコマンドを実行します。
アップグレード後の手順
"template0"以外のすべてのデータベースに対するpg_upgradeが完了したら、"template0"を除くすべてのデータベースに対してCREATE EXTENSIONを実行してVCIの拡張を作成し、必要に応じてすべてのVCIインデックスに対してCREATE INDEXを実行します。