ここでは、Denbun POP V3.3P R10.0のデータをPostgreSQL13.3からPostgreSQL16.3へ移行する手順をご説明します。
前提条件
本手順は以下を前提に説明いたします。
DenbunPOPのバージョン:V3.3P R10.0
PostgreSQL13.3の管理ユーザー:postgres
PostgreSQL13.3の起動スクリプト:「/etc/rc.d/init.d/postgresql」
PostgreSQL13.3のソース:「/usr/local/src/postgresql-13.3/src」
PostgreSQL13.3のインストール先:「/usr/local/pgsql」
PostgreSQL13.3のデータディレクトリ:「/var/pgsql/data」
バックアップ先:「/home/postgres/backup」
|
|
- 1.事前準備
-
スケジューラーを起動されている場合、スケジューラーを停止してください。
rootユーザーにスイッチした上で、dnpschedulerプロセスをkillします。
[停止コマンド例]
# pkill -9 dnpscheduler
Webサーバーを停止してください。
[Webサーバー(Apache)停止コマンド例]
# systemctl stop httpd.service
- 2.PostgreSQL13.3のDenbunのデータをバックアップ【重要】
-
PostgreSQLの「pg_dump」コマンドでバックアップします。
[データベースバックアップコマンド例]
# su - postgres
$ /usr/local/pgsql/bin/pg_dump -b -Fc -U postgres dnpwmldb > /home/postgres/backup/dnpwmldb.backup
※「pg_dump」コマンド実行中に警告・エラーメッセージが表示されていないことをご確認ください。
また「pg_dump」コマンド実行後「dnpwmldb.backup」ファイルが1バイト以上のサイズで作成されていることをご確認ください。
- 3.PostgreSQL13.3をアンインストール
-
以下のコマンドでPostgreSQLを停止させ
次に、PostgreSQLをアンインストールします。
[データベース(PostgreSQL)停止コマンド例]
# su
# systemctl stop postgresql
[データベース(PostgreSQL)アンインストールコマンド例]
# chkconfig --del postgresql
# rm /etc/rc.d/init.d/postgresql
# cd /usr/local/src/postgresql-13.3/
# gmake uninstall
# rm -rf /usr/local/src/postgresql-13.3/
# mv /var/pgsql /var/pgsql_OLD
※「/var/pgsql_OLD」は移行が正しく行えた事を確認した後に削除してください。
- 4.PostgreSQL16.3をインストール
-
postgresql-16.3.tar.gzをダウンロードして
こちらの手順に沿ってPostgreSQL 16.3をインストールしてください。
DenbunPOPは既にインストール済みですので、ここではPostgreSQLのインストール(データベースの自動起動設定)までを行ってください。
- 5.データをリストア
-
以下のコマンドにてデータべースファイルをリストアします。
[データベース作成コマンド例]
# su - postgres
$ /usr/local/pgsql/bin/psql
> postgres=# CREATE ROLE dnpwml LOGIN PASSWORD 'dnpwml' NOINHERIT VALID UNTIL 'infinity';
> postgres=# CREATE DATABASE dnpwmldb WITH OWNER=dnpwml TEMPLATE=template0 ENCODING='UTF8' LC_COLLATE='C' LC_CTYPE='C';
> postgres=# \q
[データベースリストアコマンド例]
$ /usr/local/pgsql/bin/pg_restore -Fc -U postgres -d dnpwmldb /home/postgres/backup/dnpwmldb.backup
- 6.Webサーバーおよびスケジューラーを再開
-
Webサーバーを開始してください。
[Webサーバー(Apache)開始コマンド例]
# systemctl start httpd.service
※スケジューラーはcronで設定された時間に自動起動されます。
こちらをご参照ください。
- 7.完了
-
以上で移行作業は完了です。