pg_dump

Name

pg_dump --  ��һ��PostgreSQL���ݿ�����һ���ű��ļ����������鵵�ļ���

Synopsis

pg_dump [option...] [dbname]

����

pg_dump ��һ�����ڱ��� PostgreSQL ���ݿ�Ĺ��ߡ����������������ݿ����ڲ���ʹ�õ�ʱ���������һ�µı��ݡ� pg_dump �������������û������ݿ�ķ��ʣ�������д����

ת����ʽ������һ���ű����߹鵵�ļ��� �ű�ת���ĸ�ʽ�Ǵ��ı������������ SQL ��� ��Щ SQL ������������ؽ������ݿⲢ��֮�ָ�������ɽű���ʱ���״̬�� Ҫ�������Ľű��лָ���ʹ�� psql�� ������������������������������������Ӳ����ϵ�Ļ������ؽ������ݿ⣬ ͨ���Խű�����һЩ�޸ģ��������������� SQL ���ݿ��Ʒ���ؽ������ݿ⡣

���⣬���к�ѡ�Ĺ鵵�ļ���ʽ����� pg_restore һ��ʹ���ؽ����ݿ⡣ �������� pg_restore �Իָ�ʲô��������ѡ�� �����������ڻָ�֮ǰ����Ҫ�ָ�����Ŀ������������ �鵵��ʽ��������ͻָ�"�����"������ڽű�ת�����Dz����ܵġ� �鵵�ļ�Ҳ����Ƴɿ��Կ�ƽ̨��ֲ�ġ�

���һ�ֺ�ѡ�ļ���ʽ�� pg_restore ��ϣ���ôpg_dump�����ṩһ�����Ĺ鵵�ʹ�����ơ� pg_dump �������ڱ����������ݿ⣬ Ȼ��Ϳ���ʹ�� pg_restore �������鵵��/��ѡ��Ҫ�ָ������ݿⲿ�֡� ����������ļ���ʽ��"custom(�ͻ���)"��ʽ��-Fc���� ������Թ鵵Ԫ�ؽ���ѡȡ���������У� ����ȱʡʱ��ѹ���ġ� tar ��ʽ��-Ft������ѹ���IJ���������װ�ص�ʱ�򲻿��������У� ������Ҳ�������У��������ñ�׼ Unix ���ߣ����� tar ����

������ pg_dump ��ʱ������Ӧ�ü������� �����Ƿ����κξ�����ڣ��ڱ�׼�����ϴ�ӡ�����ر��������г������ơ�

ѡ��

����������в���������������ݺ͸�ʽ��

dbname

������Ҫת�������ݿ����� ���û�����������������ôʹ�û������� PGDATABASE�� ����Ǹ���������Ҳû��������ô�÷������ӵ��û�����

-a
--data-only

ֻ������ݣ������ģʽ�����ݶ��壩��

���ѡ��ֻ�ǶԴ��ı���ʽ�����塣���ڹ鵵��ʽ��������ڵ��� pg_restore ��ʱ������ѡ�

-b
--blobs

��ת���а�������󡣱���ѡ��һ�ַ��ı������ʽ��

-c
--clean

����ڴ������ݿⴴ������֮ǰ������ɾ���������ݿ��������

���ѡ��ֻ�ǶԴ��ı���ʽ�����塣���ڹ鵵��ʽ��������ڵ��� pg_restore ��ʱ������ѡ�

-C
--create

��һ�����������ݿⱾ������������ݿ����ӵ����ͷ��������� �������������ʽ�Ľű�����ô�������нű�֮ǰ���ĸ����ݿ����ӾͲ���Ҫ�ˡ���

���ѡ��ֻ�Դ��ı���ʽ�����塣���ڹ鵵��ʽ��������ڵ��� pg_restore ��ʱ��������ѡ�

-d
--inserts

���������Ϊ��INSERT��������� COPY���� �����ᵼ�»ָ��dz������� ���ѡ����Ҫ�����������ֿ������������� PostgreSQL ���ݿ��ת���� ��ע�⣬����������������ֶ�˳����ô�ָ����ܻ���ȫʧ�ܡ� -D ����ȫ������Ҳ������

-D
--column-inserts
--attribute-inserts

������ת��Ϊ������ȷ�ֶ����� INSERT ��� ��INSERT INTO table(column, ...) VALUES ...���� �����ᵼ�»ָ��dz�����������Ҫ�����������ֿ������������� PostgreSQL ���ݿ��ת����

-f file
--file=file

���������ָ�����ļ������������Щ����ʹ�ñ�׼�����

-F format
--format=format

ѡ������ĸ�ʽ��format����������֮һ��

p

������ı�SQL�ű��ļ���ȱʡ��

t

����ʺ����뵽 pg_restore ���tar�鵵�ļ��� ʹ������鵵�����ڻָ����ݿ�ʱ���������/������ݿ�����ų����⡣ ͬʱҲ���ܿ����ڻָ���ʱ�����ƶ���Щ���ݽ��лָ���

c

������ڸ� pg_restore �õĿͻ����鵵�� ���������ĸ�ʽ���������װ�ص����ݺͶ���������������С� �����ʽȱʡ��ʱ����ѹ���ġ�

-i
--ignore-version

������ pg_dump �����ݿ������֮��İ汾���

pg_dump ���Դ���������ǰ�汾��PostgreSQL �����ݿ⣬����̫�ϵİ汾�򲻱�֧���ˣ�Ŀǰ��֧�ֵ� 7.0���� �������Ҫ��Խ�汾���ʱ��ʹ�����ѡ� ������ pg_dump ʧЧ����˵��û�����㣩��

-n namespace
--schema=schema

ֻת�� schema �����ݡ� ���û���������ѡ�����Ŀ�����ݿ��еķ�ϵͳģʽ���ᱻת��������

ע��: �����ģʽ�pg_dump ������ͼת���κ�����ѡ��ģʽ�������������ݿ���� ��ˣ�ϵͳ����֤��һ��һ��ģʽ��ת���Ϳ��Գɹ��ػָ���һ���ɾ������ݿ���ȥ��

-o
--oids

��Ϊ���ݵ�һ���֣�Ϊÿ������������ʶ��OID���� ������Ӧ����ij�̶ֳ���������OID�ֶεĻ��������磬�����Լ�����õ����� ��ôʹ�����ѡ����򣬲�Ӧ��ʹ�����ѡ�

-O
--no-owner

���Ѷ��������Ȩ����Ϊ��ӦԴ���ݿ⡣ ͨ���� pg_dump ������psql���еģ� ALTER OWNER ���� SET SESSION AUTHORIZATION ��������ô��������ݿ���������Ȩ�� �ּ� -R �� -X use-set-session-authorization ѡ� ��ע�� -O ������ֹ���ж����ݿ���������ӣ� ֻ�Ƿ�ֹ��ЩΪ����Ȩ�޽��е��������ӡ�

���ѡ��ֻ�ǶԴ��ı���ʽ�����塣���ڹ鵵��ʽ��������� pg_restore ��ʱ�������������ѡ�

-R
--no-reconnect

���ѡ���Ѿ���ʱ�����dz������¼��ݵĿ��ǣ���Ȼ�������ѡ�

-s
--schema-only

ֻ��������壨ģʽ������������ݡ�

-S username
--superuser=username

�����رմ�����ʱ��Ҫ�õ��ij����û����� ��ֻ��ʹ���� --disable-triggers ��ʱ����й�ϵ�� ��ͨ����������ò�Ҫ������������������ó����û��������ɵĽű�����

-t table
--table=table

ֻ����� table�����ݡ� �ܿ������ڲ�ͬģʽ�����ж��ͬ���������������ô����ƥ��ı�����ת�������� ͬʱ���� --schema �� --table ��ֻѡ��һ����

ע��: �����ģʽ�pg_dump ������ͼת���κ�����ѡ����������������ݿ���� ��ˣ�ϵͳ����֤��һ��һ�����ת���Ϳ��Գɹ��ػָ���һ���ɾ������ݿ���ȥ��

-v
--verbose

��������ģʽ�� �������� pg_dump �����ϸ�Ķ�����ע�Լ�ת���ļ�����ͣʱ��ͽ�����Ϣ����׼����ϡ�

-x
--no-privileges
--no-acl

������� ACL������/���� ����ͱ�������߹�ϵ��Ϣ��

-X disable-dollar-quoting
--disable-dollar-quoting

���ѡ��ر�ʹ����Ԫ����Χ�����塣ǿ�������� SQL ��׼���ִ��﷨�����Ű�Χ��

-X disable-triggers
--disable-triggers

���ѡ��ֻ�Ǻʹ����������ݵ�ת����ء������� pg_dump �����ڻָ�����ʱ����ʱ�ر�Ŀ�������Ĵ���������� ������ڱ����вο������Լ��������������������ָ����ݵ�ʱ���㲻���������ǣ���ô���Ӧ��ʹ�����ѡ�

Ŀǰ��Ϊ --disable-triggers ��������������ó����û������� ��ˣ���Ӧ��ͬʱ�� -S ����һ�������û����������������һ�������û������������������ɵĽű���

���ѡ��ֻ�Դ��ı���ʽ�����塣���ڹ鵵��ʽ��������ڵ��� pg_restore ��ʱ���������ѡ�

-X use-set-session-authorization
--use-set-session-authorization

��� SQL ��׼ SET SESSION AUTHORIZATION ��������� OWNER TO ��� ������ת��������Ӹ��ϱ�׼����������ת���еĶ������ʷ�����ܲ�����ȷ�ָ���

-Z 0..9
--compress=0..9

��������Щ֧��ѹ���ĸ�ʽ��ʹ�õ�ѹ������ ��Ŀǰֻ�пͻ�����ʽ֧��ѹ������

����������в����������ݿ�Ϊ���Ӳ�����

-h host
--host=host

�������з������Ļ������������� �����ֵ��б�ܿ�ͷ�������������� Unix ���׽��ֵ�·���� ȱʡ�Ǵ� PGHOST ����������ȡ�õģ����������������������Ļ������򣬳���һ�� Unix ���׽������ӡ�

-p port
--port=port

���������������������ȴ����ӵ� TCP �˿ڻ򱾵� Unix �����׽����ļ������ ȱʡʱʹ�û������� PGPORT ��ֵ��������ڣ��������DZ���ʱ��ȱʡֵ��

-U username

�Ը����û�������ӡ�

-W

ǿ�ƿ�����ʾ�������������Ҫ������֤����ô�������Ӧ���Զ�������

����

PGDATABASE
PGHOST
PGPORT
PGUSER

ȱʡ���Ӳ���

���

pg_dump ���ڲ�ʹ�� SELECT ��䡣��������� pg_dump ʱ�������⣬ȷ�����ܹ�ʹ���� psql �����ij�������ݿ�ѡȡ��Ϣ��

ע��

���������ݿ��template1���ݿ��������κ����Լ��Ķ����� ��ô��ע��� pg_dump ������ָ���һ�������յ����ݿ��У� ��������ܻ��յ���Ϊ�ظ�������׷�ӵĶ������ɵĴ�����Ϣ��Ҫ����һ��û���κα��ظ���������ݿ⣬ ���Դ�template0������template1���������磺

CREATE DATABASE foo WITH TEMPLATE template0;

pg_dump �м������ƣ�

tar �鵵�ij�Ա�Ĵ�С������ 8 GB������������� tar �ļ���ʽ�Ĺ������ơ��� ��������ʽ�޷������κε���Ĵ�С��������ߴ��ԭ�ı��֡� tar �鵵���κ����������ʽ���ܴ�С�Dz������Ƶģ�ֻ�ǿ��ܻ��ֲ���ϵͳ�����ơ�

pg_dump ���ɵ�ת���ļ����������Ż������ڲ�ѯ�滮���ߵ�ͳ����Ϣ�� ��ˣ��ָ���֮�����ǽ�����ÿ���ѻָ��Ķ��������� ANALYZE���Ա�֤�����ܡ�

����

ת��һ�����ݿ⣺

$ pg_dump mydb > db.out

����������ݿ⣺

$ psql -d database -f db.out

���һ���� mydb �İ���BLOB �����ݿ⵽һ�� tar �ļ���

$ pg_dump -Ft -b mydb > db.tar

��������ݿ⣨��ͬBLOB��һ��ָ���һ�����еĽ� newdb �����ݿ⣺

$ pg_restore -d newdb db.tar

��ʷ

pg_dump ������������� Postgres95 �汾 0.02�� �Ǵ��ı������ʽ�� PostgreSQL �汾 7.1 ʱ���롣

�ּ�

pg_dumpall, pg_restore, psql