FreeBSD: The Power To Serve
第2サーバー稼働作戦。

Release The Power To Serve!
http://www.freebsd.org/

FreeBSD-8.2 サーバーの配備

必要最低限の設定
/etc/rc.conf
/etc/resolv.conf
/etc/firewall/
/etc/sshd/
/etc/ddclient/
FreeBSD: Not just for little boys.

Get BSD Daemons!

http://freebsd-image-gallery.netcode.pl/?gallery=BSD-Daemon
大人の FreeBSD
http://freebsd-image-gallery.netcode.pl/?gallery=Daemonette
http://freebsd-image-gallery.netcode.pl/_daemonette/111143969_35533831ab.jpg

データのダンプとリストア

% su -l pgsql
% pg_dumpall -c > out
% psql template1 < out
    (template1 は postgres でもOK)
pg_ctl stop する必要はない。 重要なのはダンプのとき -c オプションを付ける事。
% man pg_dumpall
...
  -c
  --clean
    Include SQL commands to clean (drop) databases
    before recreating them.
    DROP commands for roles and tablespaces
    are added as well.
...
ダンプのとき -c オプションを忘れた場合、 そのままでは psql が食べてくれません。 既存のデータベースを clean しなければなりません。 つまり initdb が必要になります。
% su -l pgsql
% pg_ctl stop
% mv /usr/local/pgsql /usr/local/pgsql.old
    (いちおうバックアップ)
    (パスは FreeBSD の場合)
% initdb
% pg_ctl start
% psql template1 < out
    (template1 は postgres でもOK)

pg_dumpall の時に -c を忘れたら

ダンプされたファイルのすべての CREATE 文のまえに DROP 文を手で書けばいい。 しかし CREATE 文はうんざりするほどあるので、 処理するスクリプトを書くよりも initdb を使うほうが早い。

initdb

データをダンプして、 サーバーを停止して、 古いバージョンを待避させ、 新しいバージョンをインストールし、 サーバーを立ち上げ、 データをリストアする。
% pg_dumpall > backup
% pg_ctl stop
% mv /usr/local/pgsql /usr/local/pgsql.old
% cd ~/postgresql-8.0.0
% gmake install
% initdb -D /usr/local/pgsql/data
% postmaster -D /usr/local/pgsql/data
% psql template1 < backup

古いサーバと新しいサーバを異なったポートで並行に稼働させる方法

% pg_dumpall -p 5432 | psql -d template1 -p 6543
この後、古いサーバーを停止し、
新しいサーバーを古いポートで再起動
ポートを変えて立ち上げ直せば、サーバ停止の時間を最短にできる。

topic: macosx
first posted: 2011-05-31 20:16:54
last modified: 2011-06-03 20:53:16