1、什么是pg_dump和pg_restore
pg_dump是用于备份PostgreSQL数据库的工具。它可以在数据库正在使用的时候进行完整一致的备份,并不阻塞其它用户对数据库的访问。
每种数据库都提供有这方面的工具,例如Oracle的exp/imp,Informix的dbexp/dbimp,MySQL的mysqldump,而PostgreSQL提供的对应工具为pg_dump和pg_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