元サーバーが EUC で、現サーバーが UTF-8 になってたら、一度 EUC に戻します。
作業はコピー先サーバー
sudo rm -f /etc/jma-receipt/db.conf
コピー元サーバーにて ORCA を一度停止します。
sudo service jma-receipt stop
コピー作業は、コピー先サーバーにて以下のコマンドで。
sudo service jma-receipt stop sudo service postgresql restart sudo -u orca dropdb orca sudo jma-setup --noinstall sudo service jma-receipt stop sudo rm -Rf orca.dump sudo -u orca pg_dump -Fc orca -h コピー元サーバー > orca.dump sudo -u orca pg_restore -x -O -d orca orca.dump sudo jma-setup
レストア時に以下のようなエラーが出ることがありますが、問題ないそうです。
pg_restore: [archiver (db)] could not execute query: ERROR: must be owner of extension plpgsql Command was: COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';
データベースの更新は、 jma-setup が勝手にやってくれます。
上記の
sudo -u orca pg_dump -Fc orca -h コピー元サーバー > orca.dump
が終わり次第、必要があればコピー元サーバーの ORCA を起動します。
コマンドはコピー元サーバーにて、
sudo service jma-receipt start
その後、文字コードを EUC から UTF-8 に変更するなら、
(以後の作業はコピー先サーバー)
sudo service jma-receipt stop sudo service postgresql restart sudo echo "DBENCODING=\"UTF-8\"" > /etc/jma-receipt/db.conf
一番下の行の命令で /etc/jma-receipt/db.conf の中身を
DBENCODING="UTF-8"
の、1行のファイルにしてます。ファイルを消せば EUC になります。
sudo -u orca /usr/lib/jma-receipt/bin/jma-dbconvert.sh sudo jma-setup
を実行して、データベースの変換を行います。
ORCA Ver.4.7.0 Ubuntu 12.04 では、
ERROR: must be owner of extension plpgsql
みたいなエラーが出るようですが、
sudo -u postgres psql orca -c "COMMENT ON EXTENSION plpgsql IS NULL;"
で、一度コメントを削除(返還後復活するそうです)して、実行すればいいそうです。
確認は、
sudo -u orca /usr/lib/jma-receipt/bin/jma-dbconvert.sh
にて、
List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -------------+----------+----------+-------------+-------------+----------------------- orca | orca | UTF8 | C | C | orca_backup | orca | EUC_JP | C | C |
みたいな感じになるようです。