PostgreSQL > バックアップの方法
更新日
2014-03-22
広告
pg_dumpを使ってバックアップを取る方法を紹介します。
サンプルデータベース testdb
サンプルとして、以下のデータベース「testdb」を用意しました。testdbは、2つのテーブル「testtable」「testtable2」を持っています。testdb=# \d List of relations Schema | Name | Type | Owner --------+------------+-------+---------- public | testtable | table | postgres public | testtable2 | table | postgres (2 rows)
バックアップ
pg_dumpを使って、testdbのバックアップを取ります。~$ pg_dump -F p -f dumpfile.txt testdb
- -Fは、バックアップのフォーマットを指定するオプションです。pを指定すると、非圧縮なテキストとしてバックアップを取ります。tを指定すると圧縮されます。
- -fは、バックアップ結果を保存するファイル名を指定するオプションです。
- 最期に、バックアップ対象のデータベース名「testdb」を指定します。
あるテーブルのみをバックアップしたい場合は、-t オプションを利用します。以下の例では、テーブル「testtable」のみをバックアップします。
~$ pg_dump -F p -t testtable -f dumpfile.txt testdbテーブル定義だけをバックアップしたい場合は、-s オプションを使います。 この場合、テーブルに格納されたデータはダンプされません。
$ pg_dump -h localhost -U postgres -F p -s -f dumpfile.txt test_db
ちなみに、-hはホストを指定するオプションです。-Uはログインユーザ名を指定するオプションです。
データのみをダンプしたい場合は、-a オプションを使います。
$ pg_dump -h localhost -U postgres -F p -a -f dumpfile.txt test_db
リストア
非圧縮バックアップを取った場合は、psqlコマンドでリストアできます(testdbデータベースは、あらかじめ作成しておく必要があります)。~$ psql -f dumpfile.txt testdb圧縮バックアップを取った場合は、pg_restoreコマンドを利用してリストアします。-d オプションでデータベース名を、リダイレクトでバックアップファイルを指定します。
postgres@mypc:~$ pg_restore -d testdb < dumpfile.txt
広告
お問い合わせは sweng.tips@gmail.com まで。