PostgreSQLのバックアップとリストア(pg_dump・pg_restore)

PostgreSQLのバックアップとリストアをする

PostgreSQLのデータベースをバックアップするには「pg_dump」を使用して、リストアする時は「pg_restore」を利用してバックアップ及びリストアします

pg_dumpでデータベースをバックアップする

データベースをバックアップするには、「pg_dump」コマンドを利用します。
下記のコマンドでは、/var/tmp/demoshop.db に demoshopのデータベースをカスタム形式で出力します

$ pg_dump -Fc demoshop -f /var/tmp/demoshop.db

オプションの詳細

-F 出力する際の形式を指定します(cがカスタム、tがtar、pがテキスト)
-f 出力するファイルを指定します。 ファイルを基にする出力形式ではこのパラメータは省くことができます。

データベースの上書きについては、「-c」のオプションを作成するとデータベースをレストアする時に、テーブル等のデータベースオブジェクトを削除できます。但し、このオプションは平文形式の場合にのみ有効ですので、アーカイブ形式では、pg_restoreを呼び出す時にこのオプションを指定します

pg_restoreでデータベースをレストアします

データベースをレストアするにはpg_restoreコマンドを利用します。
下記のコマンドでは、demoshopのデータベースに、カスタム形式でバックアップしたデータベース(/data/tmp/demoshop.db)を、上書きでレストアします。
「-c」のオプションがあるので、データベースを作成する前にテーブル等のデータベースオブジェクトを削除してからレストアにします

$ pg_restore -Fc -c -d demoshop /data/tmp/demoshop.db

オプションの詳細

-F アーカイブの形式を指定します。 pg_restoreは形式を自動認識するので、このオプションは必須ではありません。
(cがカスタム、tがtar、pがテキスト)
-c データベースを再作成前に、テーブルなどのデータベースオブジェクトを削除します
-d レストアするデータベースを指定します

スポンサーリンク