pg_dump和pg_restore对PostgreSql进行备份和还原

1、什么是pg_dump和pg_restore

pg_dump是用于备份PostgreSQL数据库的工具。它可以在数据库正在使用的时候进行完整一致的备份,并不阻塞其它用户对数据库的访问。

每种数据库都提供有这方面的工具,例如Oracle的exp/imp,Informix的dbexp/dbimp,MySQL的mysqldump,而PostgreSQL提供的对应工具为pg_dumppg_restore

2、使用pg_dump对数据库进行备份

2.1 导出常用的命令

2.1.1 导出单表数据

pg_dump -h 127.0.0.1 -U admin -p 5432 -W db -t t1 –inserts > bak.sql

# 导出单表(public模式下的testdump表)
pg_dump -d postgres -U test1 -t public.testdump >singletable.sql 

2.1.2 导出多个表数据

pg_dump -h 127.0.0.1 -U admin -p 5432 -W db -t t1 -t t2 –inserts > bak.sql

2.1.3 导出整个数据库

pg_dump -h 127.0.0.1 -U postgres -p 5432 -Fc testdb >/var/lib/postgresql/bak.sql

# 导出整个库(postgres数据库)
pg_dump -d postgres -U test1 >singledatabase.sql

2.1.4 只导出表结构,不导出数据

pg_dump -h 127.0.0.1 -U admin -p 5432 -W db -s > bak.sql

# 只导出库结构(postgres数据库结构)
pg_dump -d postgres -U test1 -s >schemaonly.sql

2.1.5 只导出数据,不导出表结构

pg_dump -h 127.0.0.1 -U admin -p 5432 -W db –inserts -a > bak.sql

对多个表导出,每个表都需要加参数-t
pg_dump tina -t test -t test1 >filename

导出表结构:-s -t
pg_dump -s -t tina.tbtest testdb

你可能感兴趣的:(postgresql)