PostgreSQL Dump

スクリプト形式、アーカイブ形式 ダンプ、リストア

スクリプト形式

ダンプ

SQL

--データベース foo をダンプ pg_dump -U postgres foo > default.dump --スキーマのみ pg_dump -U postgres -s foo > schema-only.dump --データのみ pg_dump -U postgres -a foo > data-only.dump --INSERT形式(通常はCOPY形式) pg_dump -U postgres --inserts foo > inserts.dump --削除(DROP)コマンド書き出し pg_dump -U postgres -c foo > clean.dump --テーブルbarを指定 pg_dump -U postgres -t bar foo > table.dump --テーブル複数指定 pg_dump -U postgres -t bar -t baz foo > table.dump --barで始まるテーブルを指定 pg_dump -U postgres -t 'bar*' foo > table.dump --barで終わるテーブルを指定 pg_dump -U postgres -t '*bar' foo > table.dump --barが含まれるテーブルを指定 pg_dump -U postgres -t '*bar*' foo > table.dump --テーブルbar以外 pg_dump -U postgres -T bar foo > exclude-table.dump --barで始まるスキーマを指定 pg_dump -U postgres -n 'bar*' foo > schema.dump --barで始まるスキーマ以外 pg_dump -U postgres -N 'bar*' foo > exclude-schema.dump

ダンプ先が未指定であれば画面に出力される。

$ pg_dump -U postgres -t foo --inserts pgdb -- -- PostgreSQL database dump -- SET statement_timeout = 0; SET lock_timeout = 0; SET client_encoding = 'UTF8'; SET standard_conforming_strings = on; SET check_function_bodies = false; SET client_min_messages = warning; SET search_path = public, pg_catalog; SET default_tablespace = ''; SET default_with_oids = false; -- -- Name: foo; Type: TABLE; Schema: public; Owner: postgres; Tablespace: -- CREATE TABLE foo ( foo_id integer NOT NULL, foo_name text NOT NULL, foo_category integer, foo_flg boolean ); ALTER TABLE public.foo OWNER TO postgres; -- -- Data for Name: foo; Type: TABLE DATA; Schema: public; Owner: postgres -- INSERT INTO foo VALUES (100001, 'リンゴ', 1, true); INSERT INTO foo VALUES (100002, 'バナナ', 1, false); INSERT INTO foo VALUES (100003, 'ネコ', 2, true); INSERT INTO foo VALUES (100004, 'イヌ', 2, false); -- -- PostgreSQL database dump complete --

リストア

SQL

--データベース foo にダンプをリストア psql -U postgres foo < restore.dump --データベース foo から データベース baz に直接ダンプリストア pg_dump -U postgres foo | psql -U postgres baz

アーカイブ形式

ダンプ

SQL

--アーカイブ形式 pg_dump -U postgres -Fc foo > archive.dump

リストア

SQL

--データベース foo にアーカイブ形式をリストア pg_restore -U postgres -d foo archive.dump --元と同名のデータベースを作成し、アーカイブ形式をリストア pg_restore -U postgres -C -d postgres archive.dump

リストアの内容に合わせて事前に対象のデータベースを作成及び削除しておく。

最新の記事

プロフィール

流されるままにウェブ業界で仕事しています。主にLAPP環境でPHPを書いています。最近はjQueryで遊んでいます。
※動作確認について