Denbun POP版マニュアル
ユーザーマニュアル|スマートフォンMobileガジェットiアプリデンブンP管理者マニュアルインストール方法初期設定ガイド
メニューに戻る
 

■PostgreSQL9.2への移行(Linux)

ここでは、Denbun POPのデータをPostgreSQL8.3からPostgreSQL9.2へ移行する手順をご説明します。

前提条件
本手順は以下を前提に説明いたします。
DenbunPOPのバージョン:V3.3P R2.1
PostgreSQL8.3の管理ユーザー:postgres
PostgreSQL8.3の起動スクリプト:「/etc/rc.d/init.d/postgresql」
PostgreSQL8.3のソース:「/usr/local/src/postgresql-8.3.5/src」
PostgreSQL8.3のインストール先:「/usr/local/pgsql」
PostgreSQL8.3のデータディレクトリ:「/var/pgsql/data」
バックアップ先:「/home/postgres/backup」

1.事前準備
スケジューラーを起動されている場合、スケジューラーを停止してください。
rootユーザーにスイッチした上で、dnpschedulerプロセスをkillします。

[停止コマンド例]
# pkill -9 dnpscheduler

Webサーバーを停止してください。

[Webサーバー(Apache)停止コマンド例]
# /etc/rc.d/init.d/httpd stop
または、
# service httpd stop

2.PostgreSQL8.3上のDenbunのデータをバックアップ
PostgreSQLの「pg_dump」コマンドでバックアップします。

[データベースバックアップコマンド例]
# su - postgres
$ /usr/local/pgsql/bin/pg_dump -b -Fc -U postgres dnpwmldb > /home/postgres/backup/dnpwmldb.backup

3.PostgreSQL8.3をアンインストール
以下のコマンドでPostgreSQLを停止させ
次に、PostgreSQLをアンインストールします。

[データベース(PostgreSQL)停止コマンド例]
# su
# service postgresql stop

[データベース(PostgreSQL)アンインストールコマンド例]
# chkconfig --del postgresql
# rm /etc/rc.d/init.d/postgresql
# cd /usr/local/src/postgresql-8.3.5/
# gmake uninstall
# rm -rf /usr/local/src/postgresql-8.3.5/
# mv /var/pgsql /var/pgsql_OLD

※「/var/pgsql_OLD」は移行が正しく行えた事を確認した後に削除してください。

4.PostgreSQL9.2をインストール
postgresql-9.2.x.tar.gzをダウンロードして こちらの手順に沿ってPostgreSQL 9.2.xをインストールしてください。
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

※以下のようなメッセージが表示されますが問題ございません
  pg_restore: [archiver (db)] Error while PROCESSING TOC:
  pg_restore: [archiver (db)] Error from TOC entry 668; 2612 16389 PROCEDURAL LANGUAGE plpgsql postgres
  pg_restore: [archiver (db)] could not execute query: ERROR: language "plpgsql" already exists
  Command was: CREATE PROCEDURAL LANGUAGE plpgsql;

  WARNING: errors ignored on restore: 1

6.Webサーバーおよびスケジューラーを再開
Webサーバーを開始してください。

[Webサーバー(Apache)開始コマンド例]
# /etc/rc.d/init.d/httpd start
または、
# service httpd start

※スケジューラーはcronで設定された時間に自動起動されます。
こちらをご参照ください。

7.完了
以上で移行作業は完了です。


 
Copyright (C) NEOJAPAN Inc. All Rights Reserved.