PolarTools中的pg_dump与社区版本的pg_dump存在差异,PolarTools中的pg_dump针对PolarDBPostgreSQL版(兼容Oracle)进行了适配。使用社区版本的pg_dump可能会出现未知异常或备份的对象数据不完整等情况。
备份文件格式
pg_dump[connection-option...][option...][dbname]表1.参数说明
参数
描述
connection-option
option
dbname
需要备份的数据库名称。
表2.connection-option(控制数据库连接参数命令行选项)
命令行选项
-ddbname即--dbname=dbname
指定要连接的数据库的名称。
-hhost即--host=host
指定运行服务器的计算机的主机名。如果该值以斜杠开头,则将其用作Unix域套接字的目录,默认值为PGHOST环境变量。
-pport即--port=port
指定服务器正在侦听连接的TCP端口或本地Unix域套接字文件扩展名。默认放在PGPORT环境变量中,否则使用程序中的默认值。
-Uusername即--username=username
需要连接的用户名。
-w即--no-password
表示pg_dump在连接数据库时不提示输入密码。
-W即--password
表示pg_dump在连接数据库时提示输入密码。
此选项为非必选项。
--role=rolename
指定用于创建备份的角色名。
表3.option(控制输出内容和格式的命令行选项)
需要备份的数据库的名称。如果未指定,则使用环境变量PGDATABASE。
-a即--data-only
只备份数据,不备份结构。
此选项备份表数据、大型对象和序列值。
-b即--blobs
备份时默认包含大对象。当指定了--schema、-table或--schemaonly时,备份将不包含大对象。
blob被视为数据,因此在备份时使用--dataonly将包含数据,使用--schemaonly则不包含数据。
-B即--no-blobs
排除备份中的大对象。
当同时出现-b和-B时,备份将包含大对象。
-c即--clean
在执行创建数据库对象命令之前删除数据库对象。为避免在恢复数据库时产生错误信息,建议在恢复数据库时指定--ifexists。
此选项仅适用于脚本文件。对于存档文件,可以在调用pg_restore时指定该选项。
-C即--create
创建数据库并重新连接到新创建的数据库。如果指定了--clean,则脚本将删除并重新创建目标数据库,然后再重新连接到该数据库。
如果指定了--create命令行,且未指定--no-acl。备份数据时将包含数据库的注释、数据库的配置信息以及数据库本身的访问权限信息。
-Eencoding即--encoding=encoding
以指定的字符集编码创建备份。默认情况下,以当前需要备份的数据库编码创建备份,您也可以将环境变量PGCLIENTENCODING的值设置为想要的备份编码。
-Fformat即--format=format
备份格式。可选以下任一格式:
-ffile即--file=file
将备份数据发送到指定的文件。
-jnjobs即--jobs=njobs
通过同时备份njobs个表来并行运行备份。需要将此选项与目录格式结合使用。
并行备份之前,需要停止修改数据库的进程(DDL和DML)。
-npattern即--schema=pattern
仅备份与pattern匹配的模式。如果未指定此选项,将备份目标数据库中的所有非系统模式。
-Npattern即--exclude-schema=pattern
备份除pattern之外的其他模式。
-o即--oids
备份对象标识符(OID)作为每个表数据的一部分。如果您的应用程序以某种方式引用OID列(例如在一个外键约束中引用OID列),请使用此选项。否则,不使用此选项。
-O即--no-owner
匹配原始数据库时,不需要设置对象的所有权。
-s即--schema-only
只备份对象模式,不备份数据。
-Susername即--superuser=username
禁用触发器时使用的超级用户名。仅在使用--disable-triggers时才使用该选项。
-tpattern即--table=pattern
只备份与pattern匹配的表。可以通过编写多个-t来选择多张表,也可以通过在模式中写入通配符来选择多张表。
指定-t时,pg_dump不会尝试备份所选表可能依赖的任何其他数据库对象。因此,不能保证备份特定表后能够成功地将数据恢复到空数据库中。
-Tpattern即--exclude-table=pattern
不备份匹配pattern的表。可以多次指定-T来排除与多个模式匹配的表。
-v即--verbose
指定详细模式。
-V即--version
打印pg_dump版本并退出。
-x即--no-privileges或--no-acl
取消备份访问权限(grant或revoke命令)。
-Z0..9即--compress=0..9
指定需要使用的压缩级别。0表示未压缩。
--column-inserts和--attribute-inserts
将数据备份为具有显式列名的INSERT命令。
INSERTINTOtable(column,...)VALUES...--disable-dollar-quoting
禁止对函数体使用美元引号。
--disable-triggers
临时禁用目标表上的触发器。此选项仅在创建数据备份时有效。使用此选项时,需要通过-S指定一个超级用户。
--enable-row-security
允许备份您有权限访问的表的部分内容。此选项仅在备份具有行安全性的表的内容时才有效。
如果使用此选项,则可能还需要使用INSERT进行备份,因为恢复数据期间的COPYFROM不支持行安全性。
--exclude-table-data=pattern
不备份与pattern匹配的表数据。可以多次指定--exclude-table-data来排除与多个模式匹配的表。
如果需要排除数据库中所有表的数据,请参见--schemaonly。
--if-exists
使用条件命令(例如,添加IFEXISTS子句)清理数据库对象。使用时需要同时指定--clean,否则此选项无效。
--inserts
将数据备份为INSERT命令。
使用此选项后,如果在恢复数据时对数据进行重新排序可能会执行失败。建议使用--column-inserts。
--load-via-partition-root
备份表分区的数据时,使用COPY或INSERT命令。
当恢复使用此选项创建的存档文件时,建议谨慎使用并行恢复。
--lock-wait-timeout=timeout
--no-comments
表示不备份注释。
--no-publications
表示不备份出版物。
--no-security-labels
表示不备份安全标签。
--no-subscriptions
表示不备份订阅。
--no-sync
表示不需要等待所有文件均安全写入磁盘即返回数据。
--no-synchronized-snapshots
表示在服务器上可以运行pg_dump-j。
--no-tablespaces
表示在默认的表空间中创建所有对象。
--no-unlogged-table-data
表示不备份未标记表的内容。
--quote-all-identifiers
表示强制引用所有标识符。
--rows-per-insert=nrows
控制数据库备份为INSERT命令时的最大行数。
--section=sectionname
表示只备份指定的section。section的名称可以是pre-data、data或post-data,可以多次指定此选项以选择多个section,默认备份所有section。
--serializable-deferrable
表示对备份使用一个可序列化事务。
--snapshot=snapshotname
表示在备份数据库时使用指定的同步快照。
--strict-names
表示每个模式(-n/--schema)和表(-t/--table)限定符至少要匹配备份的数据库中的一个模式和表。
--use-set-session-authorization
表示输出SQL标准的SETSESSIONAUTHORIZATION命令而不是ALTEROWNER命令。