暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

PG备份之pg_dump工具

原创 一兮 2022-07-24
8809

pg_dump是一个用于备份PostgreSQL数据库的实用工具。即使当前数据库正在使用,也能够生成一致性的备份,且不会阻塞其他用户访问数据库(包括读、写)pg_dump 可以选择一个数据库或者部分表进行备份。
如果要备份Cluster中数据库共有的全局对象,例如角色和表空间,需要使用pg_dumpall。

一、pg_dump常用示例:
1.1 单表数据
pg_dump -d test -t a >a.sql

1.2 导出多个表数据
pg_dump -d test -t a -t b >ab.sql
1.3 只导出表结构,不导出数据
pg_dump -d test -s > test_metadata.sql

1.4 只导出数据,不导出表结构
pg_dump -d test --inserts -a > test_data.sql

1.5 导出整个数据库
pg_dump -d test --inserts >test.sql

1.6 排除某张表
pg_dump -d test -T b --inserts >test.sql

恢复指令,示例:
pgdump -d test < 备份文件

二、pg_dump常用参数
-h host,指定数据库主机名,或者IP
-p port,指定端口号
-U user,指定连接使用的用户名
-W,按提示输入密码
dbname,指定连接的数据库名称,实际上也是要备份的数据库名称。
-a,–data-only,只导出数据,不导出表结构
-c,–clean,是否生成清理该数据库对象的语句,比如drop table
-C,–create,是否输出一条创建数据库语句
-f file,–file=file,输出到指定文件中
-n schema,–schema=schema,只转存匹配schema的模式内容
-N schema,–exclude-schema=schema,不转存匹配schema的模式内容
-O,–no-owner,不设置导出对象的所有权
-s,–schema-only,只导致对象定义模式,不导出数据
-t table,–table=table,只转存匹配到的表,视图,序列,可以使用多个-t匹配多个表
-T table,–exclude-table=table,不转存匹配到的表。
–inserts,使用insert命令形式导出数据,这种方式比默认的copy方式慢很多,但是可用于将数据导入到非PostgreSQL数据库。
–column-inserts,导出的数据,有显式列名
三、pg_dumpall
相对于pg_dump只能备份单个库,pg_dumpall可以备份整个postgresql实例中所有的数据,包括角色和表空间定义。

示例如下:

pg_dumpall –inserts > all.sql

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论