バックアップ&リストア

 PostgreSQLでデータベースのバックアップやリストアをするのは至って簡単です。又、PostgreSQLはデータベースを起動したままでもバックアップを取れるホットバックアップに対応していますので、バックアップを開始した時点のデータベースの状態を正確にコピーしてくれます。データの不整合が起きるような心配はありません。

バックアップ

 pg_dumpはPostgreSQLのバックアップ専用ツールです。データベース単位だけでなくテーブル単位のバックアップも取る事が出来ます。pg_dumpはデータのみのバックアップも出来ますが、標準でスキーマ定義やユーザ定義関数も含めてバックアップします。

 実際にバックアップを取るには、データベースにアクセスできるユーザーから以下のコマンドを実行します。

pg_dump [オプション] データベース名 > 出力先ファイル名

■オプションには以下の種類があります。

オプション

内容

-a データだけをダンプします。スキーマ定義は出力されません。
-c テーブルを生成する前にテーブルを念のため削除します。
-d insert文でダンプします。
-D カラム名付きのinsert文でダンプします。
-f filename filenameにダンプします。(この場合、「> 出力先ファイル名」は省略して下さい。)
-h hostname バックエンドのホストを指定します。
-n テーブル名やカラム名など識別子にダブルクオテーション(")を付けません。
-o OID情報も一緒に出力します。
-p port バックエンドのポート番号を指定します。
-s スキーマ定義のみ出力します。
-t table テーブルtableのみダンプします。
-u パスワード認証を有効にします。
-v verboseモード。各種メッセージを出力します。
-x ACL情報(grant/revokeで設定)を出力しません。

リストア

 リストアはとても簡単です。データベースにアクセスできるユーザーから以下のコマンドを実行します。

psql データベース名 < ダンプファイル

これだけで簡単にデータベースの復旧が出来ます。一部テーブルのみのデータをリストアする場合も、ダンプファイル名に該当のファイルを指定すればOKです。又、バックアップを取る際に「-D」オプション付きでダンプして置けば、リストアの際にテーブルの作成から行ってくれますので、データベースの復旧が非常に簡単です。

データのグループ化 前へ

HOME

次へ