备份某个数据库

pg_dump

-a或者--data-only: 只备份数据,不备份schema(即数据定义,包括表,序列,自定义数据类型等)

-b或者--blobs:dump时包括大对象,除了指定--schema, --table或者--schema-only这些选项外,它默认包括大对象的.

-c或者--clean:先删除对象,然后再创建新的(除非指定--if-exists,否则在恢复的时候,如果不存在任何一个数据库中的对象时,可能会产生一些错误消息)。 *注意,这个选项只有对于 plain-text 格式的备份才有效*。对于archive格式,当你调用pg_restore时,可以指定这些选项.

-C或者--create: 在开始输出命令时,创建数据库本身,然后重新连接到这个指定的数据库。这个选择只对plain-text格式有效。对于archive格式,你可以在调用pg_restore时指定选项.

-E encoding或者--encoding=encoding:以指定编码来备份。默认情况下,它是database的编码。

-f file或者--file=file:输出到指定文件。不能是已经存在的文件.

-F format或者--format=format:指定备份的格式。 * p : 纯文本.(默认的行为,即输出SQL语句) * c : custom 格式。默认情况下它会被压缩的. * d : directory 格式。 * t : tar 格式

-j njobs或者--jobs=njobs:以njobs并行执行.虽然可以减少备份时间,但会增加服务器的负载.(注意,这个参数仅可用于directory格式的备份才有效,因为只有这种格式才可以在同一时间多个进程来写数据)。pg_dump会开启njobs+1条连接来连接数据库,所以,请确认你的max_connection的设置是足够处理所有连接的.

-n schema或者--schema=schema:仅备份匹配的schema。当不指定这个选项时,对于目标database的所有非系统的schema都会被备份。多个模式,可以同时使用多个-n参数来指定.可以使用通配符来匹配。

-N schema或者--exclude-schema=schema: 不要备份这个参数指定的schema.

-o或者--oids:备份每张表的对象的id。只有在你的应用会引用OID列时才使用这个选项,否则,不应该使用这个选项.

-O或者--no-owner:备份时,不要设置对象的拥有者.

-s或者--schema-only: 只备份对象定义.不备份数据.

-S username或者--superuser=username:当禁用触发器时指定超级用户名.

-t table或者--table=table:仅备份匹配的表.多表,可以通过多个-t参数来指定.

-T table或者--exclude-table:不备份这些指定的表。可以通过多个-T参数来指定.

-v或者--verbose:详细模式

-V或者--version:打印版本号并退出

-x或者--no-privileges或者--no-acl:不要备份访问的权限信息.(即grant,revoke这些命令)

-Z 0..9或者--compress=0..9:指定压缩级别。0:即不压缩。对于custom格式:压缩每张表的数据段进行压缩,默认级别为中等级别。对于plain格式:压缩整个输出的文件,尽管它已经通过gzip压缩了,默认为不压缩。对于archive格式,目前还不支持压缩.

--column-inserts或者attribute-inserts: 备份的数据带有显式的列名。这会导致恢复时非常慢,它通常用于将备份的数据还原到非PostgreSQL数据库中。

--disable-dollar-quoting: 该选项禁用$美元符作为函数体。

--disable-triggers:禁用触发器

--enable-row-security:启用行安全。

--exclude-table-data=table: 不备份指定表的数据。

--if-exists: 添加if exists子句.不能同时与--clean使用.

--inserts:以insert命令备份,而不是COPY.这会导致恢复时非常慢.

--lock-wait-timeout=timeout: 锁等待时间.

--no-security-labels:不备份安全标签.

--no-synchronized-snapshots:该选项允许对于9.2版本之前的服务器执行pg_dump -j

--no-tablespaces:备份时,不指定表空间。在恢复时,它会还原到被恢复服务器的默认的表空间中。

--no-tablespaces:不备份unlog的表数据.

--quote-all-identifiers:强制所有的标识符带有引号.

--section=sectionname:值可以为pre-data, data, post-data.可以同时多次指定.默认为所有. data:包含实际表数据,大对象数据以及序列值。 post-data:包含索引定义,触发器,规则以及约束。 pre-data:除了data和post-data外的所有数据.

--serializable-deferrable:使用serializable事务来备份.

pg_restore

pg_restore [connection-option...] [option...] [filename]

filename:要恢复的文件,不指定就是标准输入.

-a或者--data-only:仅还原数据,不还原数据定义.即表数据,大对象以及序列值会被还原.

-c或者--clean:重新创之前清除数据库对象。

-C或者--create:恢复之前创建数据库。

-d dbname或者--dbname=dbname:连接到指定db然后直接还原到该DB

-e或者--exit-on-error:遇到错误时退出.

-f filename或者--file=filename:指定输出文件。默认为标准输出.

-F format或者--format=format:指定要恢复文件的格式c:custom, d:directory, t:tar

-I index或者-index=index:仅还原指定的索引。可以同时使用多个-I来指定多个索引

-j number-of-jobs或者--jobs=number-of-jobs:并发数.如果使用了--single-transaction,并发就会无效.并且只有custom或者directory格式才有效.

-l或者--list:只列出要恢复的文件的内容.

-L list-file或者--use-list=list-file:仅恢复在list-file文件里的元素.

-n namespace或者--schema=schema:仅仅恢复这些指定的schema对象.可以使用多个-n来指定.

-O或者--no-owner:不设置owner.

-P function-name(argtype [,...])或者--function=function-name(argtype [, ...]):仅恢复指定的函数.可以使用多个-P来恢复.

-s或者--schema-only:仅恢复定义,不恢复数据。

-S usrname或者--superuser=username:指定超级用户名.仅在同时使用--disable-triggers才有用.

-t table或者--table=table:仅恢复指定表的定义和数据

-T trigger或者--trigger=trigger:仅恢复指定的触发器。可以使用多个-T.

-v或者--verbose:详细模式.

-V或者--version: 打印版本号并退出.

-x或者--no-privileges或者--no-acl:不恢复权限访问信息.

-1或者--single-transaction:这个是数字1.使用单事务进行恢复。

--disable-triggers:禁用触发器。

--enable-row-security:启用行安全.

--if-exists

--no-data-for-failed-tables

--no-security-labels

--no-tablespaces

--section=sectionname