|  | メニューに戻る |
■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」
１．事前準備 スケジューラーを起動されている場合、スケジューラーを停止してください。 rootユーザーにスイッチした上で、dnpschedulerプロセスをkillします。 [停止コマンド例] # pkill -9 dnpscheduler Webサーバーを停止してください。 [Webサーバー(Apache)停止コマンド例] # /etc/rc.d/init.d/httpd stop または、 # service httpd stop ２．PostgreSQL8.3上のDenbunのデータをバックアップ PostgreSQLの「pg_dump」コマンドでバックアップします。 [データベースバックアップコマンド例] # su - postgres $ /usr/local/pgsql/bin/pg_dump -b -Fc -U postgres dnpwmldb > /home/postgres/backup/dnpwmldb.backup ３．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」は移行が正しく行えた事を確認した後に削除してください。 ４．PostgreSQL9.2をインストール postgresql-9.2.x.tar.gzをダウンロードして こちらの手順に沿ってPostgreSQL 9.2.xをインストールしてください。 DenbunPOPは既にインストール済みですので、ここではPostgreSQLのインストール(データベースの自動起動設定)までを行ってください。 ５．データをリストア 以下のコマンドにてデータべースファイルをリストアします。 [データベース作成コマンド例] # 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 ６．Webサーバーおよびスケジューラーを再開 Webサーバーを開始してください。 [Webサーバー(Apache)開始コマンド例] # /etc/rc.d/init.d/httpd start または、 # service httpd start ※スケジューラーはcronで設定された時間に自動起動されます。 こちらをご参照ください。 ７．完了 以上で移行作業は完了です。
| Copyright (C) NEOJAPAN Inc. All Rights Reserved.