pg_dump与pg_dumpall实际使用方法

摘要:感谢类总的总结,在这里转载一下.

装载原文地址:https://blog.csdn.net/lk_db/article/details/77971587?locationNum=9&fps=1

pg_dump仅导出数据库结构:

pg_dump -U TestRole1 -s -f TestDb1.sql TestDb1

备份某个database,备份结果以自定义压缩格式输出:
pg_dump -h localhost -p 5432 -U someuser -F c -b -v -f mydb.backup mydb

备份某个database,备份结果以SQL文本方式输出,输出结果中需包括CREATE DATABASE语句:
pg_dump -h localhost -p 5432 -U someuser -C -F p -b -v -f mydb.backup mydb

备份某个database中所有名称以“pay”开头的表,备份结果以自定义压缩个数输出:
pg_dump -h localhost -p 5432 -U someuser -F c -b -v -t *.pay* -f pay.backup mydb

备份某个database中hr和payroll这两个schema中的所有数据,备份结果以自定义压缩格式输出:
pg_dump -h localhost -p 5432 -U someuser -F c -b -v -n hr -n payroll -f hr_payroll.backup mydb

备份某个database中除了public schema中的数据以外的所有数据,备份结果以自定义压缩格式输出:
pg_dump -h localhost -p 5432 -U someuser -F c -b -v -N public -f all_sch_except_pub.backup mydb

将数据备份为SQL文本文件,且生成的INSERT语句是带有字段名列表的标准格式,该文件可以用于将数据导入到低于当前版本的PostgreSQL或者其他支出SQL的非PostgreSQL数据库中(之所有能够实现这种数据移植过程,是因为标准的SQL文本可以在任何支持SQL标准的数据库中执行):
pg_dump -h localhost -p 5432 -U someuser -F p --column-inserts -f select_tables.backup mydb

注:如果输出文件路径中含空格或者其他可能影响命令行正常处理的字符,请在路径两侧加上双引号,比如:"/path with spaces/mydb.backup"。请注意着在PostgreSQL中是一个通用的原则,即当你不确定某段文本是否能正常处理时,都可以加双引号。

从9.1版本开始支持目录格式选项,该选项会将每个表备份为某个文件夹下的一个单独的文件,这样就解决了以其他备份格式备份时可能存在的单个文件大小超出操作系统限制的问题。该选项是生成多个文件的唯一pg_dump备份格式选项。备份时会先创建一个新目录,然后逐个表将一个gzip格式的压缩文件和一个列出所有包含结构的文件填充到该目录中。如果备份开始时发现指定的目录已存在,那么该命令会报错并退出。
目录格式备份:
pg_dump -h localhost -p 5432 -U someuser -F d -f /somepath/a_directory mydb
从9.3版本开始支持并行备份选项--jobs (-j)。如果将其设定为--jobs=3,则后台会有三个线程并行执行当前备份任务。此选项只有在按目录格式进行备份时才会生效,每个写线程只负责写一个单独的文件,因此一定是输出结果为多个独立的文件时才可以并行。
目录格式并行备份:
pg_dump -h localhost -p 5432 -U someuser -j 3 -Fd -f /somepath/a_directory mydb


建议每天对角色和表空间定义等全局对象进行备份,但不建议每天使用pg_dumpall来备份全库数据,因为pg_dumpall仅支持导出为SQL文本格式,而使用这种庞大的SQL文本备份来进行全库级别的数据库恢复时及其耗时的,所以一般只建议使用pg_dumpall来备份全局对象而非全库数据。
pg_dumpall可实现仅备份角色和表空间定义:
pg_dumpall -h localhost -U postgres --port=5432 -f myglobals.sql --globals-only
如果仅需备份角色定义而无需备份表空间,那么可以加上--roles-only选项:
pg_dumpall -h localhost -U postgres --port=5432 -f myroles.sql --roles-only
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值