| <バックアップ>
Postgresにはバックアップコマンドpg_dumpが用意されています。これはPostgres データベースの内容をスクリプトファイルかアーカイブファイルへ抽出します。
データベースをダンプには次の様に実行します。pg_dumpはシェルから実行して下さい。
もし仮に、SQL文のバックアップスクリプトでバックアップを保存する場合は以下の様に-dオプションを付けます。しかしこれはリカバリ時にとても処理時間を要するので注意してください。尚テーブル単位でバックアップを取る場合に-tオプションよりテーブル名を指定する事もできます。
| $ pg_dump -d mydb >
db.sql
|
これによりリカバリに必要なdb.sqlファイルにSQL分が吐き出されます。mydb と呼ばれる
BLOB を含むデータベースを tar ファイルにダンプするには下記のようにします。
| $ pg_dump -Ft -b mydb >
db.tar
|
Postgresにはバックアップコマンドのpg_dumpの他にpg_dumpallがあります、これはクラスタの全ての
Postgres データベースを一つのスクリプトファイルに書き出すときに用います。pg_dumpall は更に、全てのデータベースに
共通するグローバルオブジェクトもダンプします。全てのデータベースを書出す場合、以下のようにします。
<リストア>
データベースをリストアする場合はpsql又はpg_restoreを使用します。
SQL文のバックアップスクリプトよりリストアする場合は以下の様に-fオプションを指定します。
| $ psql -d database -f db.sql
|
スキーマを復元しない場合は以下の様に実行してください。ユーザーが事なるデータベースにリストアする場合にとても有効です。
| $ psql -a -d database -f
db.sql
|
データベース(BLOBを含むもの)を既存の newdb と呼ばれるデータベースにリストアする場合は次の様に実行します。リストアにはtarから行うことが条件になっている様ですので、ダンプファイルはtarにしておいてください。
| $ pg_restore -d newdb db.tar
|
pg_dumpallでバックアップを取ったデータベースを読み込む場合、以下のようにします。
|