Linux版PowerGres Plus V1.xから、PowerGres Plus V2.xにインスタンスの資産を移行する手順について説明します。本書はオンラインマニュアルと合わせてご覧ください。
PowerGres Plus V1.xは、PostgreSQL 7.3をベースとしています。また、PowerGres Plus V2.xは、PostgreSQL 7.4をベースとしています。そのため、PowerGres Plus V2.xにアップグレードする際には、インスタンスの資産の移行作業が必要になります。
PowerGres Plus V2.xにインスタンスの資産を移行するための手順と参照先を下図に示します。

ご注意
移行作業中は、手順以外でのインスタンスの起動・停止およびインスタンスのバックアップ・リストアを行わないでください。また、OSの自動化ソフトウェアに組み込んで定期的に処理を実行している場合、自動起動の設定を解除してください。移行作業が正しく行われない場合があります。
ご注意
“データベース資源のバックアップ”および“データベース資源のリストア”では、PostgreSQLの以下のコマンドを使用してデータベースのバックアップとリストアを行います。
pg_dumpall、pg_dump、psql、pg_restore
以下の条件に該当するデータベースの場合、注意が必要となります。
PowerGres Plus V2.xのマニュアル『PostgreSQL 文書』の「22.1. SQLによるダンプ」にpg_dumpコマンドおよびpg_dumpallコマンドを使用するうえでの重要項目が、同じく「22.1.4. 警告」にpg_dumpコマンドおよびpg_dumpallコマンドの制約が記載されております。コマンドリファレンスとあわせて内容を確認したうえで移行作業を行ってください。
データベース資源のバックアップの手順について以下に説明します。
インスタンスが複数存在する場合は、データベース資源のバックアップはインスタンスごとに行ってください。
アプリケーションの停止
動作中のアプリケーションがある場合、アプリケーションを停止してください。
インスタンスの起動
インスタンスが起動していない場合、インスタンスを起動してください。
インスタンスの起動については、PowerGres Plus V2.xのマニュアル『PostgreSQL Plus 管理者ガイド』の「3.2 インスタンスの起動と停止」を参照してください。
データベース資源のバックアップ
pg_dumpallコマンドおよびpg_dumpコマンドを用いて、データベースの定義情報および格納したデータをバックアップします。OID 列を外部キー制約など何らかの形で使用している場合、-oオプションを指定する必要があります。
pg_dumpallコマンドおよびpg_dumpコマンドを使用したバックアップ/リストアについて詳しい情報が必要な場合、PowerGres Plus V2.xのマニュアル『PostgreSQL 文書』の「III. サーバの管理 - 22.1. SQLによるダンプ」を参照してください。
ラージオブジェクトを使用していない場合
pg_dumpallコマンドを使用してデータベース資源をバックアップします。
|
> pg_dumpall > backupfile |
ラージオブジェクトを使用している場合
データベースのユーザーおよびグループをバックアップし、その後データベースをバックアップします。
まず、pg_dumpallコマンドを使用してデータベースのユーザーおよびグループをバックアップします。
オプションには-gを指定してください。
|
> pg_dumpall -g > backupfile |
次に、pg_dumpコマンドを使用してデータベースをバックアップします。
pg_dumpコマンドにデータベース名を指定して実行し、データベースごとにバックアップを行ってください。
オプションには-Ftを指定してください。ラージオブジェクトを使用しているデータベースの場合、あわせて-bオプションを指定してください。
以下に、ラージオブジェクトを含むデータベースdb1をバックアップファイルbackupfile_db1.tarに、ラージオブジェクトを含まないデータベースdb2をバックアップファイルbackupfile_db2.tarにバックアップする場合の例を示します。
|
> pg_dump -Ft -b db1 > backupfile_db1.tar ・・・ (1) |
(1)ラージオブジェクトを含むデータベースの場合
(2)ラージオブジェクトを含まないデータベースの場合
インスタンスのバックアップの作成
インスタンスのバックアップを行います。
バックアップの方法については、PowerGres Plus V2.xのマニュアル『PostgreSQL Plus 管理者ガイド』の「4.1 バックアップ」を参照してください。
インスタンスの停止
インスタンスを停止します。
インスタンスの停止については、PowerGres Plus V2.xのマニュアル『PostgreSQL Plus 管理者ガイド』の「3.2 インスタンスの起動と停止」を参照してください。
バックアップディレクトリの退避
バックアップディレクトリを他の媒体に退避してください。
バックアップディレクトリを退避しておくことで、移行作業の途中で異常が発生した場合にも、リカバリー機能を用いて、処理開始時の状態に復旧することができます。
ここでは、インスタンスの資産の移行手順について説明します。
インスタンスの定義情報の退避
インスタンスの定義情報の退避は、CD-ROMからpgx_exportコマンドを実行して行います。
まず、スーパーユーザー(root)でCD-ROMのマウントを行ってください。
ここでは、CD-ROMのマウントポイントを /mnt/cdrom としています。お使いのLinuxの環境に応じて、/media/cdrom や /media/cdrecorder などに置き換えてください。
|
# mount /mnt/cdrom |
マウントした後に、インスタンス管理者ユーザー(postgres)でpgx_exportコマンドを実行してください。
|
$ cd /mnt/cdrom/backuptool |
【備考】
第1引数の“postgres”は、PostgreSQL Plus Setupで指定したインスタンス名を指定します。
pgx_exportコマンドについての詳細はPowerGres Plus V2.xのマニュアル『PostgreSQL Plus リファレンス』を参照してください。
アンセットアップ
PowerGres Plus V2.xのマニュアル『PostgreSQL Plus 管理者ガイド』の「2.2 アンセットアップ手順」を参照して、インスタンスを削除します。
アップグレードインストール
以下のとおりコマンドを入力して、新しいバージョンのPowerGres Plusをインストールします。インストールはスーパーユーザー(root)で実行してください。
ここでは、CD-ROMのマウントポイントを /mnt/cdrom としています。お使いのLinuxの環境に応じて、/media/cdrom や /media/cdrecorder などに置き換えてください。
|
# mount /mnt/cdrom |
インストールが正常に終了すると、/usr/local/pgsqlplusに製品がインストールされます。
インスタンスの再定義
インスタンスの再定義は、CD-ROMからpgx_importコマンドを実行して行います。
pgx_importコマンドは、インスタンス管理者ユーザー(postgres)で実行してください。
実行後、インスタンス管理者のデータベースシステムのパスワードを入力してください。
|
$ cd /mnt/cdrom/backuptool |
pgx_importコマンドについての詳細は、PowerGres Plus V2.xのマニュアル『PostgreSQL Plus リファレンス』を参照してください。
データベース資源のリストアの手順について以下に説明します。
インスタンスの起動
すべてのインスタンスを起動します。
インスタンスの起動については、PowerGres Plus V2.xのマニュアル『PostgreSQL Plus 管理者ガイド』の「3.2 インスタンスの起動と停止」を参照してください。
データベース資源のリストア
上記「データベース資源のバックアップ」の項目で、バックアップしたデータをリストアします。
リストアするデータベースが、“列のデフォルト値として関数が使用されている”、“スキーマ内で巡回依存を作成している”等に該当する場合、リストアの順序を手作業で変更しなければなりません。詳細はPowerGres Plus V2.xのマニュアル『PostgreSQL 文書』の「22.1.4. 警告」を参照してください。
ラージオブジェクトを使用していない場合
psqlコマンドを使用してデータベース資源をリストアします。
|
> psql -f backupfile template1 |
ラージオブジェクトを使用している場合
データベースのユーザーおよびグループをリストアし、その後データベースをリストアします。
まず、psqlコマンドを使用してデータベースのユーザーおよびグループをリストアします。
|
> psql -f backupfile template1 |
次に、pg_restoreコマンドを使用してデータベースをリストアします。
pg_restoreコマンドにバックアップファイルを指定し、データベースごとにリストアを行ってください。
オプションには-d template1 -Cを指定してください。
以下に、バックアップファイルbackupfile_db1.tarおよびbackupfile_db2.tarにバックアップされたデータベースをリストアする場合の例を示します。
|
> pg_restore -d template1 -C backupfile_db1.tar |
ご注意
データベース資源のリストア時にデータベーススペースが不足する場合があります。
データベーススペースの不足が発生した場合は、以下の手順でデータベース資源のリストアを実行してください。
データベースの作成および削除については、PowerGres Plus V2.xのマニュアル『PostgreSQL Plus 管理者ガイド』の「3.4.2 データベースの追加・削除」を参照してください。
なお、以下のエラーメッセージが出力されることがありますが、データベース資源のリストアそのものには影響ありません。
ERROR: CREATE DATABASE: database "database name" already exists
ご注意
復元するデータ量が多い場合は、高速コピー機能を利用してリストアしてください。
高速コピー機能を利用してリストアするためには、バックアップファイルに記載されているすべての¥connectの直後に、ENABLE_DIRECT_COPYパラメーターを指定します。
バックアップファイルの編集が困難な場合は、インスタンスを格納するディレクトリ配下のpostgresql.confにenable_direct_copyパラメーターを指定し、インスタンスの再起動後にリストアしてください。移行完了後は、enable_direct_copyパラメーターを削除してインスタンスを再起動してください。
高速コピー機能、およびENABLE_DIRECT_COPYパラメーターの詳細については、PowerGres Plus V2.xのマニュアル『PostgreSQL Plus 管理者ガイド』の「2.1.8 データのロード」を参照してください。
【バックアップファイルの記述例】
¥connect user_db1
set ENABLE_DIRECT_COPY = ON ;(追加)
:
¥connect user_db2
set ENABLE_DIRECT_COPY = ON ;(追加)
【postgresql.conf ファイルの編集例】
ENABLE_DIRECT_COPY = ON (追加)
バックアップの実行
バックアップを行います。
バックアップの方法については、PowerGres Plus V2.xのマニュアル『PostgreSQL Plus 管理者ガイド』の「4.1 バックアップ」を参照してください。
アプリケーションの起動
アプリケーションを起動します。