diff --git "a/content/zh/docs/Administratorguide/\345\244\207\344\273\275\344\270\216\346\201\242\345\244\215.md" "b/content/zh/docs/Administratorguide/\345\244\207\344\273\275\344\270\216\346\201\242\345\244\215.md" index 899b3cbcf5dbe4fd6833e762a43b86685a322e0b..512210d10f718e90fdf4d88e894a0d77b7408a4c 100644 --- "a/content/zh/docs/Administratorguide/\345\244\207\344\273\275\344\270\216\346\201\242\345\244\215.md" +++ "b/content/zh/docs/Administratorguide/\345\244\207\344\273\275\344\270\216\346\201\242\345\244\215.md" @@ -15,7 +15,7 @@ ## 概述 -数据备份是保护数据安全的重要手段之一,为了更好的保护数据安全,openGauss数据库支持三种备份恢复类型、多种备份恢复方案,备份和恢复过程中提供数据的可靠性保障机制。 +数据备份是保护数据安全的重要手段之一,为了更好的保护数据安全, openGauss 数据库支持三种备份恢复类型、多种备份恢复方案,备份和恢复过程中提供数据的可靠性保障机制。 备份与恢复类型可分为逻辑备份与恢复、物理备份与恢复、闪回恢复。 @@ -23,9 +23,9 @@ - 物理备份与恢复:通过物理文件拷贝的方式对数据库进行备份,以磁盘块为基本单位将数据从主机复制到备机。通过备份的数据文件及归档日志等文件,数据库可以进行完全恢复。物理备份速度快,一般被用作对数据进行备份和恢复,用于全量备份的场景。通过合理规划,可以低成本进行备份与恢复。 -- 闪回恢复:利用回收站的闪回恢复删除的表。数据库的回收站功能类似于windows系统的回收站,将删除的表信息保存到回收站中。利用MVCC机制闪回恢复到指定时间点或者CSN点。 +- 闪回恢复:利用回收站的闪回恢复删除的表。数据库的回收站功能类似于 Windows 系统的回收站,将删除的表信息保存到回收站中。利用 MVCC 机制闪回恢复到指定时间点或者 CSN 点。 - 以下为openGauss支持的三类数据备份恢复方案,备份方案也决定了当异常发生时该如何恢复。 + 以下为 openGauss 支持的三类数据备份恢复方案,备份方案也决定了当异常发生时该如何恢复。 **表 1** 三种备份恢复类型对比 @@ -48,7 +48,7 @@

逻辑备份与恢复

适合于数据量小的场景。

-

可以备份单表和多表,单database和所有database。备份后的数据需要使用gsql或者gs_restore工具恢复。数据量大时,恢复需要较长时间。

+

可以备份单表和多表,单 database 和所有 database 。备份后的数据需要使用 gsql 或者 gs_restore 工具恢复。数据量大时,恢复需要较长时间。

磁盘

SSD

@@ -58,55 +58,55 @@

纯文本格式数据恢复时间长。归档格式数据恢复时间中等。

-

导出数据库相关信息的工具,用户可以自定义导出一个数据库或其中的对象(模式、表、视图等)。支持导出的数据库可以是默认数据库postgres,也可以是自定义数据库。导出的格式可选择纯文本格式或者归档格式。纯文本格式的数据只能通过gsql进行恢复,恢复时间较长。归档格式的数据只能通过gs_restore进行恢复,恢复时间较纯文本格式短。

+

导出数据库相关信息的工具,用户可以自定义导出一个数据库或其中的对象(模式、表、视图等)。支持导出的数据库可以是默认数据库 postgres ,也可以是自定义数据库。导出的格式可选择纯文本格式或者归档格式。纯文本格式的数据只能通过 gsql 进行恢复,恢复时间较长。归档格式的数据只能通过 gs_restore 进行恢复,恢复时间较纯文本格式短。

gs_dumpall

数据恢复时间长。

-

导出所有数据库相关信息工具,它可以导出openGauss数据库的所有数据,包括默认数据库postgres的数据、自定义数据库的数据、以及openGauss所有数据库公共的全局对象。

-

只能导出纯文本格式的数据,导出的数据只能通过gsql进行恢复,恢复时间较长。

+

导出所有数据库相关信息工具,它可以导出 openGauss 数据库的所有数据,包括默认数据库 postgres 的数据、自定义数据库的数据、以及 openGauss 所有数据库公共的全局对象。

+

只能导出纯文本格式的数据,导出的数据只能通过 gsql 进行恢复,恢复时间较长。

物理备份与恢复

-

适用于数据量大的场景,主要用于全量数据备份恢复,也可对整个数据库中的WAL归档日志和运行日志进行备份。

+

适用于数据量大的场景,主要用于全量数据备份恢复,也可对整个数据库中的 WAL 归档日志和运行日志进行备份。

gs_backup

数据量小数据恢复时间快。

-

导出数据库相关信息的OM工具,可以导出数据库参数文件和二进制文件。帮助openGauss备份、恢复重要数据、显示帮助信息和版本号信息。在进行备份时,可以选择备份内容的类型,在进行还原时,需要保证各节点备份目录中存在备份文件。在集群恢复时,通过静态配置文件中的集群信息进行恢复。只恢复参数文件恢复时间较短。

+

导出数据库相关信息的 OM 工具,可以导出数据库参数文件和二进制文件。帮助 openGauss 备份、恢复重要数据、显示帮助信息和版本号信息。在进行备份时,可以选择备份内容的类型,在进行还原时,需要保证各节点备份目录中存在备份文件。在集群恢复时,通过静态配置文件中的集群信息进行恢复。只恢复参数文件恢复时间较短。

gs_basebackup

恢复时可以直接拷贝替换原有的文件, 或者直接在备份的库上启动数据库,恢复时间快。

-

对服务器数据库文件的二进制进行全量拷贝,只能对数据库某一个时间点的时间作备份。结合PITR恢复,可恢复全量备份时间点后的某一时间点。

+

对服务器数据库文件的二进制进行全量拷贝,只能对数据库某一个时间点的时间作备份。结合 PITR 恢复,可恢复全量备份时间点后的某一时间点。

gs_probackup

恢复时可以直接恢复到某个备份点,在备份的库上启动数据库,恢复时间快。

-

gs_probackup是一个用于管理openGauss数据库备份和恢复的工具。它对openGauss 实例进行定期备份。可用于备份单机数据库或者集群主节点数据库,为物理备份。 可备份外部目录的内容,如脚本文件、配置文件、日志文件、dump文件等。 支持增量备份、定期备份和远程备份。增量备份时间相对于全量备份时间比较短,只需要备份修改的文件。当前默认备份是数据目录,如果表空间不在数据目录,需要手动指定备份的表空间目录进行备份。当前只支持在主机上执行备份。

+

gs_probackup 是一个用于管理 openGauss 数据库备份和恢复的工具。它对 openGauss 实例进行定期备份。可用于备份单机数据库或者集群主节点数据库,为物理备份。 可备份外部目录的内容,如脚本文件、配置文件、日志文件、dump 文件等。 支持增量备份、定期备份和远程备份。增量备份时间相对于全量备份时间比较短,只需要备份修改的文件。当前默认备份是数据目录,如果表空间不在数据目录,需要手动指定备份的表空间目录进行备份。当前只支持在主机上执行备份。

闪回恢复

适用于:

1)误删除表的场景;

-

2)需要将表中的数据恢复到指定时间点或者CSN。

+

2)需要将表中的数据恢复到指定时间点或者 CSN 。

可以将表的状态恢复到指定时间点或者是表结构删除前的状态,恢复时间快。

-

闪回技术能够有选择性的高效撤销一个已提交事务的影响,从人为错误中恢复。在采用闪回技术之前,只能通过备份恢复、PITR等手段找回已提交的数据库修改,恢复时长需要数分钟甚至数小时。采用闪回技术后,恢复已提交的数据库修改前的数据,只需要秒级,而且恢复时间和数据库大小无关。

+

闪回技术能够有选择性的高效撤销一个已提交事务的影响,从人为错误中恢复。在采用闪回技术之前,只能通过备份恢复、PITR 等手段找回已提交的数据库修改,恢复时长需要数分钟甚至数小时。采用闪回技术后,恢复已提交的数据库修改前的数据,只需要秒级,而且恢复时间和数据库大小无关。

闪回支持两种恢复模式:

- + @@ -147,24 +147,24 @@ -

数据:PB级

-

对象:约100万个

+

数据:PB 级

+

对象:约 100 万个

备份:

- +

表备份

-

数据:10 TB级

+

数据:10 TB 级

-

备份:基于查询性能速度+I/O速度

+

备份:基于查询性能速度 + I/O 速度

说明:

多表备份时,备份耗时计算方式:

总时间 = 表数量 x 起步时间 + 数据总量 /  数据备份速度

其中:

- +

表越小,备份性能更低。

@@ -175,6 +175,7 @@ + ## 物理备份恢复 @@ -182,29 +183,29 @@ #### 背景信息 -openGauss部署成功后,在数据库运行的过程中,会遇到各种问题及异常状态。openGauss提供了gs\_basebackup工具做基础的物理备份。gs\_basebackup的实现目标是对服务器数据库文件的二进制进行拷贝,其实现原理使用了复制协议。远程执行gs\_basebackup时,需要使用系统管理员账户。gs\_basebackup当前支持热备份模式和压缩格式备份。 +openGauss 部署成功后,在数据库运行的过程中,会遇到各种问题及异常状态。 openGauss 提供了 gs\_basebackup 工具做基础的物理备份。gs\_basebackup 的实现目标是对服务器数据库文件的二进制进行拷贝,其实现原理使用了复制协议。远程执行 gs\_basebackup 时,需要使用系统管理员账户。gs\_basebackup 当前支持热备份模式和压缩格式备份。 >![](C:/Users/lijun/Desktop/opengauss/docs/content/zh/docs/Administratorguide/public_sys-resources/icon-note.gif) **说明:** > ->- gs\_basebackup仅支持主机和备机的全量备份,不支持增量。 ->- gs\_basebackup当前支持热备份模式和压缩格式备份。 ->- gs\_basebackup在备份包含绝对路径的表空间时,如果在同一台机器上进行备份,可以通过tablespace-mapping重定向表空间路径,或使用归档模式进行备份。 ->- 若打开增量检测点功能且打开双写,gs\_basebackup也会备份双写文件。 ->- 若pg\_xlog目录为软链接,备份时将不会建立软链接,会直接将数据备份到目的路径的pg\_xlog目录下。 +>- gs\_basebackup 仅支持主机和备机的全量备份,不支持增量。 +>- gs\_basebackup 当前支持热备份模式和压缩格式备份。 +>- gs\_basebackup 在备份包含绝对路径的表空间时,如果在同一台机器上进行备份,可以通过 tablespace-mapping 重定向表空间路径,或使用归档模式进行备份。 +>- 若打开增量检测点功能且打开双写,gs\_basebackup 也会备份双写文件。 +>- 若 pg\_xlog 目录为软链接,备份时将不会建立软链接,会直接将数据备份到目的路径的 pg\_xlog 目录下。 >- 备份过程中收回用户备份权限,可能导致备份失败或者备份数据不可用。 ->- 如果因为网络临时故障等原因导致Server端无应答,gs\_basebackup将在最长等待120秒后退出。 +>- 如果因为网络临时故障等原因导致 Server 端无应答,gs\_basebackup将在最长等待 120 秒后退出。 #### 前提条件 -- 可以正常连接openGauss数据库。 +- 可以正常连接 openGauss 数据库。 - 备份过程中用户权限没有被回收。 -- pg\_hba.conf中需要配置允许复制链接,且该连接必须由一个系统管理员建立。 +- pg\_hba.conf 中需要配置允许复制链接,且该连接必须由一个系统管理员建立。 -- 如果xlog传输模式为stream模式,需要配置max\_wal\_senders的数量, 至少有一个可用。 +- 如果 xlog 传输模式为 stream 模式,需要配置 max\_wal\_senders 的数量, 至少有一个可用。 -- 如果xlog传输模式为fetch模式,有必要把wal\_keep\_segments参数设置得足够高,这样在备份末尾之前日志不会被移除。 +- 如果 xlog 传输模式为 fetch 模式,有必要把 wal\_keep\_segments 参数设置得足够高,这样在备份末尾之前日志不会被移除。 - 在进行还原时,需要保证各节点备份目录中存在备份文件,若备份文件丢失,则需要从其他节点进行拷贝。 @@ -224,7 +225,7 @@ openGauss部署成功后,在数据库运行的过程中,会遇到各种问 参数说明 -gs\_basebackup参数可以分为如下几类: +gs\_basebackup 参数可以分为如下几类: - -D directory @@ -235,7 +236,7 @@ gs\_basebackup参数可以分为如下几类: - -c,--checkpoint=fast|spread - 设置检查点模式为fast或者spread(默认)。 + 设置检查点模式为 fast 或者 spread(默认)。 - -l,--label=LABEL @@ -255,48 +256,48 @@ gs\_basebackup参数可以分为如下几类: - -?,--help - 显示gs\_basebackup命令行参数。 + 显示 gs\_basebackup 命令行参数。 - -T,–tablespace-mapping=olddir=newdir - 在备份期间将目录olddir中的表空间重定位到newdir中。为使之有效,olddir必须正好匹配表空间所在的路径(但如果备份中没有包含olddir中的表空间也不是错误)。olddir和newdir必须是绝对路径。如果一个路径凑巧包含了一个=符号,可用反斜线对它转义。对于多个表空间可以多次使用这个选项。 + 在备份期间将目录 olddir 中的表空间重定位到 newdir 中。为使之有效, olddir 必须正好匹配表空间所在的路径(但如果备份中没有包含 olddir 中的表空间也不是错误)。 olddir 和 newdir 必须是绝对路径。如果一个路径凑巧包含了一个 = 符号,可用反斜线对它转义。对于多个表空间可以多次使用这个选项。 - -F,–format=plain|tar - 设置输出格式为plain\(默认\)或者tar。没有设置该参数的情况下,默认–format=plain。plain格式把输出写成平面文件,使用和当前数据目录和表空间相同的布局。当集簇没有额外表空间时,整个数据库将被放在目标目录中。如果集簇包含额外的表空间,主数据目录将被放置在目标目录中,但是所有其他表空间将被放在它们位于服务器上的相同的绝对路径中。tar模式将输出写成目标目录中的 tar 文件。主数据目录将被写入到一个名为base.tar的文件中,并且其他表空间将被以其 OID 命名。生成的tar包,需要用gs\_tar命令解压。 + 设置输出格式为 plain \(默认\)或者 tar 。没有设置该参数的情况下,默认 –format=plain。 plain 格式把输出写成平面文件,使用和当前数据目录和表空间相同的布局。当集簇没有额外表空间时,整个数据库将被放在目标目录中。如果集簇包含额外的表空间,主数据目录将被放置在目标目录中,但是所有其他表空间将被放在它们位于服务器上的相同的绝对路径中。 tar 模式将输出写成目标目录中的 tar 文件。主数据目录将被写入到一个名为 base.tar 的文件中,并且其他表空间将被以其 OID 命名。生成的 tar 包,需要用 gs\_tar 命令解压。 - -X, –xlog-method=fetch|stream - 设置xlog传输方式。没有设置该参数的情况下,默认–xlog-method=stream。在备份中包括所需的预写式日志文件(WAL文件)。这包括所有在备份期间产生的预写式日志。fetch方式在备份末尾收集预写式日志文件。因此,有必要把wal\_keep\_segments参数设置得足够高,这样在备份末尾之前日志不会被移除。如果在要传输日志时它已经被轮转,备份将失败并且是不可用的。stream方式在备份被创建时流传送预写式日志。这将开启一个到服务器的第二连接并且在运行备份时并行开始流传输预写式日志。因此,它将使用最多两个由max\_wal\_senders参数配置的连接。只要客户端能保持接收预写式日志,使用这种模式不需要在主控机上保存额外的预写式日志。 + 设置 xlog 传输方式。没有设置该参数的情况下,默认–xlog-method=stream。在备份中包括所需的预写式日志文件(WAL文件)。这包括所有在备份期间产生的预写式日志。 fetch 方式在备份末尾收集预写式日志文件。因此,有必要把 wal\_keep\_segments 参数设置得足够高,这样在备份末尾之前日志不会被移除。如果在要传输日志时它已经被轮转,备份将失败并且是不可用的。 stream 方式在备份被创建时流传送预写式日志。这将开启一个到服务器的第二连接并且在运行备份时并行开始流传输预写式日志。因此,它将使用最多两个由 max\_wal\_senders 参数配置的连接。只要客户端能保持接收预写式日志,使用这种模式不需要在主控机上保存额外的预写式日志。 - -x, - –xlog 使用这个选项等效于和方法fetch一起使用-X。 + –xlog 使用这个选项等效于和方法 fetch 一起使用 -X。 - -Z –compress=level - 启用对 tar 文件输出的 gzip 压缩,并且制定压缩级别(0 到 9,0 是不压缩,9 是最佳压缩)。只有使用 tar 格式时压缩才可用,并且会在所有tar文件名后面自动加上后缀.gz。 + 启用对 tar 文件输出的 gzip 压缩,并且制定压缩级别(0 到 9 , 0 是不压缩, 9 是最佳压缩)。只有使用 tar 格式时压缩才可用,并且会在所有 tar 文件名后面自动加上后缀 .gz 。 - -z - 启用对 tar 文件输出的 gzip 压缩,使用默认的压缩级别。只有使用 tar 格式时压缩才可用,并且会在所有tar文件名后面自动加上后缀.gz。 + 启用对 tar 文件输出的 gzip 压缩,使用默认的压缩级别。只有使用 tar 格式时压缩才可用,并且会在所有 tar 文件名后面自动加上后缀 .gz 。 - -t,–rw-timeout - 设置备份期间checkpoint的时间限制,默认限制时间为120s。当数据库全量checkpoint耗时较长时,可以适当增大rw-timeout限制时间。 + 设置备份期间 checkpoint 的时间限制,默认限制时间为 120s 。当数据库全量 checkpoint 耗时较长时,可以适当增大 rw-timeout 限制时间。 - 连接参数 - -h, --host=HOSTNAME - 指定正在运行服务器的主机名或者Unix域套接字的路径。 + 指定正在运行服务器的主机名或者 Unix 域套接字的路径。 - -p,--port=PORT 指定数据库服务器的端口号。 - 可以通过port参数修改默认端口号。 + 可以通过 port 参数修改默认端口号。 - -U,--username=USERNAME @@ -312,7 +313,7 @@ gs\_basebackup参数可以分为如下几类: - -W, --password - 当使用-U参数连接本地数据库或者连接远端数据库时,可通过指定该选项出现输入密码提示。 + 当使用 -U 参数连接本地数据库或者连接远端数据库时,可通过指定该选项出现输入密码提示。 @@ -325,13 +326,13 @@ INFO: The starting position of the xlog copy of the full build is: 0/1B800000. #### 从备份文件恢复数据 -当数据库发生故障时需要从备份文件进行恢复。因为gs\_basebackup是对数据库按二进制进行备份,因此恢复时可以直接拷贝替换原有的文件,或者直接在备份的库上启动数据库。 +当数据库发生故障时需要从备份文件进行恢复。因为 gs\_basebackup 是对数据库按二进制进行备份,因此恢复时可以直接拷贝替换原有的文件,或者直接在备份的库上启动数据库。 >![](C:/Users/lijun/Desktop/opengauss/docs/content/zh/docs/Administratorguide/public_sys-resources/icon-note.gif) **说明:** > ->- 若当前数据库实例正在运行,直接从备份文件启动数据库可能会存在端口冲突,这时需要修改配置文件的port参数,或者在启动数据库时指定一下端口。 ->- 若当前备份文件为主备数据库,可能需要修改一下主备之间的复制连接。即配置文件中的postgre.conf中的replconninfo1、 replconninfo2等。 ->- 若配置文件postgresql.conf的参数data\_directory打开且有配置,当使用备份目录启动数据库时候,data\_directory和备份目录不同会导致启动失败。可以修改data\_directory的值为新的数据目录,或者注释掉该参数。 +>- 若当前数据库实例正在运行,直接从备份文件启动数据库可能会存在端口冲突,这时需要修改配置文件的 port 参数,或者在启动数据库时指定一下端口。 +>- 若当前备份文件为主备数据库,可能需要修改一下主备之间的复制连接。即配置文件中的 postgre.conf 中的 replconninfo1、 replconninfo2 等。 +>- 若配置文件 postgresql.conf 的参数 data\_directory 打开且有配置,当使用备份目录启动数据库时候,data\_directory和备份目录不同会导致启动失败。可以修改 data\_directory 的值为新的数据目录,或者注释掉该参数。 若要在原库的地方恢复数据库,参考步骤如下: @@ -354,37 +355,37 @@ INFO: The starting position of the xlog copy of the full build is: 0/1B800000. #### 背景信息 -当数据库崩溃或希望回退到数据库之前的某一状态时,openGauss的即时恢复功能(Point-In-Time Recovery,简称PITR)可以支持恢复到备份归档数据之后的任意时间点。 +当数据库崩溃或希望回退到数据库之前的某一状态时, openGauss 的即时恢复功能(Point-In-Time Recovery,简称 PITR)可以支持恢复到备份归档数据之后的任意时间点。 >![](C:/Users/lijun/Desktop/opengauss/docs/content/zh/docs/Administratorguide/public_sys-resources/icon-note.gif) **说明:** > >- PITR仅支持恢复到物理备份数据之后的某一时间点。 ->- 仅主节点可以进行PITR恢复,备机需要进行全量build达成与主机数据同步。 +>- 仅主节点可以进行 PITR 恢复,备机需要进行全量 build 达成与主机数据同步。 #### 前提条件 - 基于经过物理备份的全量数据文件。 -- 基于已归档的WAL日志文件。 +- 基于已归档的 WAL 日志文件。 #### PITR恢复流程 1. 将物理备份的文件替换目标数据库目录。 -2. 删除数据库目录下pg\_xlog/中的所有文件。 -3. 将归档的WAL日志文件复制到pg\_xlog文件中(此步骤可以省略,通过配置recovery.conf恢复命令文件中的restore\_command项替代)。 -4. 在数据库目录下创建恢复命令文件recovery.conf,指定数据库恢复的程度。 +2. 删除数据库目录下 pg\_xlog/ 中的所有文件。 +3. 将归档的 WAL 日志文件复制到 pg\_xlog 文件中(此步骤可以省略,通过配置 recovery.conf 恢复命令文件中的 restore\_command 项替代)。 +4. 在数据库目录下创建恢复命令文件 recovery.conf,指定数据库恢复的程度。 5. 启动数据库。 6. 连接数据库,查看是否恢复到希望预期的状态。 -7. 若已经恢复到预期状态,通过pg\_xlog\_replay\_resume\(\)指令使主节点对外提供服务。 +7. 若已经恢复到预期状态,通过 pg\_xlog\_replay\_resume\(\) 指令使主节点对外提供服务。 -#### recovery.conf文件配置 +#### recovery.conf 文件配置 **归档恢复配置** - restore\_command = string -这个SHELL命令是获取WAL文件系列中已归档的WAL文件。字符串中的任何一个%f是用归档检索中的文件名替换, 并且%p是用服务器上的复制目的地的路径名替换。 任意一个%r是用包含最新可用重启点的文件名替换。 +这个 SHELL 命令是获取 WAL 文件系列中已归档的 WAL 文件。字符串中的任何一个 `%f` 是用归档检索中的文件名替换, 并且 `%p` 是用服务器上的复制目的地的路径名替换。 任意一个 `%r` 是用包含最新可用重启点的文件名替换。 示例: @@ -394,7 +395,7 @@ restore_command = 'cp /mnt/server/archivedir/%f %p' - archive\_cleanup\_command = string -这个选项参数声明一个shell命令。在每次重启时会执行这个shell命令。 archive\_cleanup\_command为清理备库不需要的归档WAL文件提供一个机制。 任何一个%r由包含最新可用重启点的文件名代替。这是最早的文件,因此必须保留以允许恢复能够重新启动,因此所有早于%r的文件可以安全的移除。 +这个选项参数声明一个 shell 命令。在每次重启时会执行这个 shell 命令。 archive\_cleanup\_command 为清理备库不需要的归档 WAL 文件提供一个机制。 任何一个 `%r` 由包含最新可用重启点的文件名代替。这是最早的文件,因此必须保留以允许恢复能够重新启动,因此所有早于 `%r` 的文件可以安全的移除。 示例: @@ -402,17 +403,17 @@ restore_command = 'cp /mnt/server/archivedir/%f %p' archive_cleanup_command = 'pg_archivecleanup /mnt/server/archivedir %r' ``` -需要注意的是,如果多个备服务器从相同的归档路径恢复时, 需要确保在任何一个备服务器在需要之前,不能删除WAL文件。 +需要注意的是,如果多个备服务器从相同的归档路径恢复时, 需要确保在任何一个备服务器在需要之前,不能删除 WAL 文件。 - recovery\_end\_command = string -这个参数是可选的,用于声明一个只在恢复完成时执行的SHELL命令。recovery\_end\_command是为以后的复制或恢复提供一个清理机制。 +这个参数是可选的,用于声明一个只在恢复完成时执行的 SHELL 命令。recovery\_end\_command 是为以后的复制或恢复提供一个清理机制。 **恢复目标设置** - recovery\_target\_name = string -此参数声明命名还原到一个使用pg\_create\_restore\_point\(\)创建的还原点。 +此参数声明命名还原到一个使用 `pg\_create\_restore\_point\(\)` 创建的还原点。 示例: @@ -432,7 +433,7 @@ recovery_target_time = '2020-01-01 12:00:00' - recovery\_target\_xid = string -这个参数声明还原到一个事务ID。 +这个参数声明还原到一个事务 ID 。 示例: @@ -442,7 +443,7 @@ recovery_target_xid = '3000' - recovery\_target\_lsn = string -这个参数声明还原到日志的指定LSN点。 +这个参数声明还原到日志的指定 LSN 点。 示例: @@ -452,7 +453,7 @@ recovery_target_lsn = '0/0FFFFFF' - recovery\_target\_inclusive = boolean -声明是否在指定恢复目标(true)之后停止,或在这(false)之前停止。改声明仅支持恢复目标为recovery\_target\_time、recovery\_target\_xid和recovery\_target\_lsn的配置。 +声明是否在指定恢复目标(true)之后停止,或在这(false)之前停止。改声明仅支持恢复目标为 recovery\_target\_time、recovery\_target\_xid 和 recovery\_target\_lsn 的配置。 示例: @@ -462,64 +463,64 @@ recovery_target_inclusive = true ![](C:/Users/lijun/Desktop/opengauss/docs/content/zh/docs/Administratorguide/public_sys-resources/icon-note.gif) **说明:** -- recovery\_target\_name、recovery\_target\_time、recovery\_target\_xid、recovery\_target\_lsn这四个配置项仅同时支持一项。 +- recovery\_target\_name、recovery\_target\_time、recovery\_target\_xid、recovery\_target\_lsn 这四个配置项仅同时支持一项。 -- 如果不配置任何恢复目标,或配置目标不存在,则默认恢复到最新的WAL日志点。 +- 如果不配置任何恢复目标,或配置目标不存在,则默认恢复到最新的 WAL 日志点。 ### gs\_probackup #### 背景信息 -gs\_probackup是一个用于管理openGauss数据库备份和恢复的工具。它对openGauss实例进行定期备份,以便在数据库出现故障时能够恢复服务器。 +gs\_probackup 是一个用于管理 openGauss 数据库备份和恢复的工具。它对 openGauss 实例进行定期备份,以便在数据库出现故障时能够恢复服务器。 - 可用于备份单机数据库,也可对主机或者主节点数据库备机进行备份,为物理备份。 -- 可备份外部目录的内容,如脚本文件、配置文件、日志文件、dump文件等。 +- 可备份外部目录的内容,如脚本文件、配置文件、日志文件、dump 文件等。 - 支持增量备份、定期备份和远程备份。 - 可设置备份的留存策略。 #### 前提条件 -- 可以正常连接openGauss数据库。 -- 若要使用PTRACK增量备份,需在postgresql.conf中手动添加参数“enable\_cbm\_tracking = on”。 -- 为了防止xlog在传输结束前被清理,请适当调高postgresql.conf文件中wal\_keep\_segments的值。 +- 可以正常连接 openGauss 数据库。 +- 若要使用 PTRACK 增量备份,需在 postgresql.conf 中手动添加参数“enable\_cbm\_tracking = on”。 +- 为了防止 xlog 在传输结束前被清理,请适当调高 postgresql.conf 文件中 wal\_keep\_segments 的值。 #### 限制说明 - 备份必须由运行数据库服务器的用户执行。 - 备份和恢复的数据库服务器的主版本号必须相同。 -- 如果要通过ssh在远程模式下备份数据库,需要在本地和远程主机安装相同主版本的数据库,并通过ssh-copy-id remote\_user@remote\_host命令设置本地主机备份用户和远程主机数据库用户的无密码ssh连接。 -- 远程模式下只能执行add-instance、backup、restore子命令。 -- 使用restore子命令前,应先停止gaussdb进程。 -- 当存在用户自定义表空间时,备份的时候要加上 --external-dirs 参数,否则,该表空间不会被备份。 -- 当备份的规模比较大时,为了防止备份过程中timeout发生,请适当调整postgresql.conf文件的参数 session\_timeout、wal\_sender\_timeout。并且在备份的命令行参数中适当调整参数--rw-timeout的值。 -- 恢复时,使用-T选项把备份中的外部目录重定向到新目录时,请同时指定参数--external-mapping。 +- 如果要通过 ssh 在远程模式下备份数据库,需要在本地和远程主机安装相同主版本的数据库,并通过 `ssh-copy-id remote\_user@remote\_host` 命令设置本地主机备份用户和远程主机数据库用户的无密码 ssh 连接。 +- 远程模式下只能执行 `add-instance`、`backup`、`restore` 子命令。 +- 使用 `restore` 子命令前,应先停止 gaussdb 进程。 +- 当存在用户自定义表空间时,备份的时候要加上 `--external-dirs` 参数,否则,该表空间不会被备份。 +- 当备份的规模比较大时,为了防止备份过程中 timeout 发生,请适当调整 postgresql.conf 文件的参数 `session\_timeout`、`wal\_sender\_timeout`。并且在备份的命令行参数中适当调整参数 `--rw-timeout` 的值。 +- 恢复时,使用 `-T` 选项把备份中的外部目录重定向到新目录时,请同时指定参数 `--external-mapping`。 - 增量备份恢复后,之前创建的逻辑复制槽不可用,需删除重建。 -- 当使用远程备份时,请确保远程机器和备份机器的时钟同步,以防止使用--recovery-target-time恢复的场合,启动gaussdb时有可能会失败。 -- 当远程备份有效时\(remote-proto=ssh\),请确保-h和--remote-host指定的是同一台机器。当远程备份无效时,如果指定了-h选项,请确保-h指定的是本机地址或本机主机名。 +- 当使用远程备份时,请确保远程机器和备份机器的时钟同步,以防止使用 `--recovery-target-time` 恢复的场合,启动 gaussdb 时有可能会失败。 +- 当远程备份有效时\(remote-proto=ssh\),请确保 `-h` 和 `--remote-host` 指定的是同一台机器。当远程备份无效时,如果指定了 `-h` 选项,请确保 `-h` 指定的是本机地址或本机主机名。 #### 命令说明 -- 打印gs\_probackup版本。 +- 打印 gs\_probackup 版本。 ``` gs_probackup -V|--version gs_probackup version ``` -- 显示gs\_probackup命令的摘要信息。如果指定了gs\_probackup的子命令,则显示可用于此子命令的参数的详细信息。 +- 显示 gs\_probackup 命令的摘要信息。如果指定了 gs\_probackup 的子命令,则显示可用于此子命令的参数的详细信息。 ``` gs_probackup -?|--help gs_probackup help [command] ``` -- 初始化备份路径_backup-path_中的备份目录,该目录将存储已备份的内容。如果备份路径_backup-path_已存在,则_backup-path_必须为空目录。 +- 初始化备份路径 _backup-path_ 中的备份目录,该目录将存储已备份的内容。如果备份路径 _backup-path_ 已存在,则 _backup-path_ 必须为空目录。 ``` gs_probackup init -B backup-path [--help] ``` -- 在备份路径_backup-path_内初始化一个新的备份实例,并生成pg\_probackup.conf配置文件,该文件保存了指定数据目录_pgdata-path_的gs\_probackup设置。 +- 在备份路径 _backup-path_ 内初始化一个新的备份实例,并生成 pg\_probackup.conf 配置文件,该文件保存了指定数据目录 _pgdata-path_ 的 gs\_probackup 设置。 ``` gs_probackup add-instance -B backup-path -D pgdata-path --instance=instance_name @@ -528,14 +529,14 @@ gs\_probackup是一个用于管理openGauss数据库备份和恢复的工具。 [--help] ``` -- 在备份路径_backup-path_内删除指定实例相关的备份内容。 +- 在备份路径_backup-path_ 内删除指定实例相关的备份内容。 ``` gs_probackup del-instance -B backup-path --instance=instance_name [--help] ``` -- 将指定的连接、压缩、日志等相关设置添加到pg\_probackup.conf配置文件中,或修改已设置的值。不推荐手动编辑pg\_probackup.conf配置文件。 +- 将指定的连接、压缩、日志等相关设置添加到 pg\_probackup.conf 配置文件中,或修改已设置的值。不推荐手动编辑 pg\_probackup.conf 配置文件。 ``` gs_probackup set-config -B backup-path --instance=instance_name @@ -547,7 +548,7 @@ gs\_probackup是一个用于管理openGauss数据库备份和恢复的工具。 [--help] ``` -- 将备份相关设置添加到backup.control配置文件中,或修改已设置的值。 +- 将备份相关设置添加到 backup.control 配置文件中,或修改已设置的值。 ``` gs_probackup set-backup -B backup-path --instance=instance_name -i backup-id @@ -555,7 +556,7 @@ gs\_probackup是一个用于管理openGauss数据库备份和恢复的工具。 [--help] ``` -- 显示位于备份目录中的pg\_probackup.conf配置文件的内容。可以通过指定--format=json选项,以json格式显示。默认情况下,显示为纯文本格式。 +- 显示位于备份目录中的 pg\_probackup.conf 配置文件的内容。可以通过指定 `--format=json` 选项,以 JSON 格式显示。默认情况下,显示为纯文本格式。 ``` gs_probackup show-config -B backup-path --instance=instance_name @@ -563,7 +564,7 @@ gs\_probackup是一个用于管理openGauss数据库备份和恢复的工具。 [--help] ``` -- 显示备份目录的内容。如果指定了instance\_name和backup\_id,则显示该备份的详细信息。可以通过指定--format=json选项,以json格式显示。默认情况下,备份目录的内容显示为纯文本格式。 +- 显示备份目录的内容。如果指定了 instance\_name 和 backup\_id,则显示该备份的详细信息。可以通过指定 `--format=json` 选项,以 json 格式显示。默认情况下,备份目录的内容显示为纯文本格式。 ``` gs_probackup show -B backup-path @@ -583,7 +584,7 @@ gs\_probackup是一个用于管理openGauss数据库备份和恢复的工具。 [--help] ``` -- 从备份目录_backup-path_中的备份副本恢复指定实例。如果指定了恢复目标选项,gs\_probackup将查找最近的备份并将其还原到指定的恢复目标。否则,使用最近一次备份。 +- 从备份目录 _backup-path_ 中的备份副本恢复指定实例。如果指定了恢复目标选项,gs\_probackup 将查找最近的备份并将其还原到指定的恢复目标。否则,使用最近一次备份。 ``` gs_probackup restore -B backup-path --instance=instance_name @@ -613,7 +614,7 @@ gs\_probackup是一个用于管理openGauss数据库备份和恢复的工具。 [--help] ``` -- 验证恢复数据库所需的所有文件是否存在且未损坏。如果未指定_instance\_name_,gs\_probackup将验证备份目录中的所有可用备份。如果指定_instance\_name_而不指定任何附加选项,gs\_probackup将验证此备份实例的所有可用备份。如果指定了_instance\_name_并且指定_backup-id_或恢复目标相关选项,gs\_probackup将检查是否可以使用这些选项恢复数据库。 +- 验证恢复数据库所需的所有文件是否存在且未损坏。如果未指定 _instance\_name_,gs\_probackup 将验证备份目录中的所有可用备份。如果指定 _instance\_name_ 而不指定任何附加选项,gs\_probackup 将验证此备份实例的所有可用备份。如果指定了 _instance\_name_ 并且指定 _backup-id _或恢复目标相关选项,gs\_probackup 将检查是否可以使用这些选项恢复数据库。 ``` gs_probackup validate -B backup-path @@ -632,29 +633,29 @@ gs\_probackup是一个用于管理openGauss数据库备份和恢复的工具。 - command - gs\_probackup除version和help以外的子命令:init、add-instance、del-instance、set-config、set-backup、show-config、show、backup、restore、merge、delete、validate。 + gs\_probackup 除 version 和 help 以外的子命令:init、add-instance、del-instance、set-config、set-backup、show-config、show、backup、restore、merge、delete、validate。 - -?, --help - 显示gs\_probackup命令行参数的帮助信息,然后退出。 + 显示 gs\_probackup 命令行参数的帮助信息,然后退出。 - 子命令中只能使用--help,不能使用-?。 + 子命令中只能使用 `--help`,不能使用 `-?`。 - -V, --version - 打印gs\_probackup版本,然后退出。 + 打印 gs\_probackup 版本,然后退出。 - -B _backup-path_, --backup-path=_backup-path_ 备份的路径。 - 系统环境变量:$BACKUP\_PATH + 系统环境变量:`$BACKUP\_PATH` - -D _pgdata-path_, --pgdata=_pgdata-path_ 数据目录的路径。 - 系统环境变量:$PGDATA + 系统环境变量:`$PGDATA` - --instance=_instance\_name_ @@ -666,7 +667,7 @@ gs\_probackup是一个用于管理openGauss数据库备份和恢复的工具。 - --format=_format_ - 指定显示备份信息的格式,支持plain和json格式。 + 指定显示备份信息的格式,支持 plain 和 json 格式。 默认值:plain @@ -689,7 +690,7 @@ gs\_probackup是一个用于管理openGauss数据库备份和恢复的工具。 - --archive - 显示WAL归档信息。 + 显示 WAL 归档信息。 - --progress @@ -697,40 +698,40 @@ gs\_probackup是一个用于管理openGauss数据库备份和恢复的工具。 - --note=_text_ - 给备份添加note。 + 给备份添加 note 。 **备份相关参数** - -b _backup-mode_, --backup-mode=_backup-mode_ - 指定备份模式,支持FULL和PTRACK。 + 指定备份模式,支持 FULL 和 PTRACK 。 FULL:创建全量备份,全量备份包含所有数据文件。 - PTRACK:创建PTRACK增量备份。 + PTRACK:创建 PTRACK 增量备份。 - -C, --smooth-checkpoint - 将检查点在一段时间内展开。默认情况下,gs\_probackup会尝试尽快完成检查点。 + 将检查点在一段时间内展开。默认情况下,gs\_probackup 会尝试尽快完成检查点。 - -S _slot-name_, --slot=_slot-name_ - 指定WAL流处理的复制slot。 + 指定 WAL 流处理的复制 slot 。 - --temp-slot - 在备份的实例中为WAL流处理创建一个临时物理复制slot,它确保在备份过程中,所有所需的WAL段仍然是可用的。 + 在备份的实例中为 WAL 流处理创建一个临时物理复制 slot ,它确保在备份过程中,所有所需的 WAL 段仍然是可用的。 - 默认的slot名为pg\_probackup\_slot,可通过选项--slot/-S更改。 + 默认的 slot 名为 pg\_probackup\_slot,可通过选项 `--slot`/`-S` 更改。 - --backup-pg-log - 将日志目录包含到备份中。此目录通常包含日志消息。默认情况下包含日志目录,但不包含日志文件。如果修改了默认的日志路径,需要备份日志文件时可使用-E参数进行备份,使用方法见下文。 + 将日志目录包含到备份中。此目录通常包含日志消息。默认情况下包含日志目录,但不包含日志文件。如果修改了默认的日志路径,需要备份日志文件时可使用 `-E` 参数进行备份,使用方法见下文。 - -E _external-directories-paths_, --external-dirs=_external-directories-paths_ - 将指定的目录包含到备份中。此选项对于备份位于数据目录外部的脚本、sql转储和配置文件很有用。如果要备份多个外部目录,请在Unix上用冒号分隔它们的路径。 + 将指定的目录包含到备份中。此选项对于备份位于数据目录外部的脚本、SQL 转储和配置文件很有用。如果要备份多个外部目录,请在 Unix 上用冒号分隔它们的路径。 例如:-E /tmp/dir1:/tmp/dir2 @@ -763,21 +764,21 @@ gs\_probackup是一个用于管理openGauss数据库备份和恢复的工具。 - -I, --incremental-mode=none|checksum|lsn - 若PGDATA中可用的有效页没有修改,则重新使用它们。 + 若 PGDATA 中可用的有效页没有修改,则重新使用它们。 默认值:none - --external-mapping=_OLDDIR=NEWDIR_ - 在恢复时,将包含在备份中的外部目录从_OLDDIR_重新定位到_NEWDIR_目录。_OLDDIR_和_NEWDIR_都必须是绝对路径。如果路径中包含“=”,则使用反斜杠转义。此选项可为多个目录多次指定。 + 在恢复时,将包含在备份中的外部目录从 _OLDDIR_ 重新定位到 _NEWDIR_ 目录。 _OLDDIR_ 和 _NEWDIR_ 都必须是绝对路径。如果路径中包含“=”,则使用反斜杠转义。此选项可为多个目录多次指定。 - -T _OLDDIR=NEWDIR_, --tablespace-mapping=_OLDDIR=NEWDIR_ - 在恢复时,将表空间从_OLDDIR_重新定位到_NEWDIR_目录。_OLDDIR_和_NEWDIR_必须都是绝对路径。如果路径中包含“=”,则使用反斜杠转义。多个表空间可以多次指定此选项。此选项必须和--external-mapping一起使用。 + 在恢复时,将表空间从 _OLDDIR_ 重新定位到 _NEWDIR_ 目录。 _OLDDIR_ 和 _NEWDIR_ 必须都是绝对路径。如果路径中包含“=”,则使用反斜杠转义。多个表空间可以多次指定此选项。此选项必须和 `--external-mapping` 一起使用。 - --skip-external-dirs - 跳过备份中包含的使用--external-dirs选项指定的外部目录。这些目录的内容将不会被恢复。 + 跳过备份中包含的使用 `--external-dirs` 选项指定的外部目录。这些目录的内容将不会被恢复。 - --skip-block-validation @@ -795,71 +796,71 @@ gs\_probackup是一个用于管理openGauss数据库备份和恢复的工具。 **恢复目标相关参数\(recovery\_options\)** >![](C:/Users/lijun/Desktop/opengauss/docs/content/zh/docs/Administratorguide/public_sys-resources/icon-note.gif) **说明:** ->当前不支持配置连续的WAL归档的PITR,因而使用这些参数会有一定限制,具体如下描述。 ->如果需要使用持续归档的WAL日志进行PITR恢复,请按照下面描述的步骤: +>当前不支持配置连续的 WAL 归档的 PITR ,因而使用这些参数会有一定限制,具体如下描述。 +>如果需要使用持续归档的 WAL 日志进行 PITR 恢复,请按照下面描述的步骤: > >1. 将物理备份的文件替换目标数据库目录。 >2. 删除数据库目录下pg\_xlog/中的所有文件。 ->3. 将归档的WAL日志文件复制到pg\_xlog文件中(此步骤可以省略,通过配置recovery.conf恢复命令文件中的restore\_command项替代)。 +>3. 将归档的 WAL 日志文件复制到pg\_xlog文件中(此步骤可以省略,通过配置recovery.conf恢复命令文件中的restore\_command项替代)。 >4. 在数据库目录下创建恢复命令文件recovery.conf,指定数据库恢复的程度。 >5. 启动数据库。 >6. 连接数据库,查看是否恢复到希望预期的状态。若已经恢复到预期状态,通过pg\_xlog\_replay\_resume\(\)指令使主节点对外提供服务。 - --recovery-target-lsn=_lsn_ - 指定要恢复到的lsn,当前只能指定备份的stop lsn。 + 指定要恢复到的 lsn ,当前只能指定备份的 stop lsn 。 - --recovery-target-name=_target-name_ - 指定要将数据恢复到的已命名的保存点,保存点可以通过查看备份中recovery-name字段得到。 + 指定要将数据恢复到的已命名的保存点,保存点可以通过查看备份中 recovery-name 字段得到。 - --recovery-target-time=_time_ - 指定要恢复到的时间,当前只能指定备份中的recovery-time。 + 指定要恢复到的时间,当前只能指定备份中的 recovery-time 。 - --recovery-target-xid=_xid_ - 指定要恢复到的事务ID,当前只能指定备份中的recovery-xid。 + 指定要恢复到的事务 ID ,当前只能指定备份中的 recovery-xid 。 - --recovery-target-inclusive=_boolean_ - 当该参数指定为true时,恢复目标将包括指定的内容。 + 当该参数指定为 true 时,恢复目标将包括指定的内容。 - 当该参数指定为false时,恢复目标将不包括指定的内容。 + 当该参数指定为 false 时,恢复目标将不包括指定的内容。 - 该参数必须和--recovery-target-name、--recovery-target-time、--recovery-target-lsn或--recovery-target-xid一起使用。 + 该参数必须和 `--recovery-target-name`、`--recovery-target-time`、`--recovery-target-lsn` 或 `--recovery-target-xid` 一起使用。 **留存相关参数\(retention\_options\)** >![](C:/Users/lijun/Desktop/opengauss/docs/content/zh/docs/Administratorguide/public_sys-resources/icon-note.gif) **说明:** ->可以和backup和delete命令一起使用这些参数。 +>可以和 backup 和 delete 命令一起使用这些参数。 - --retention-redundancy=_retention-redundancy_ - 指定在数据目录中留存的完整备份数。必须为正整数。0表示禁用此设置。 + 指定在数据目录中留存的完整备份数。必须为正整数。 0 表示禁用此设置。 默认值:0 - --retention-window=_retention-window_ - 指定留存的天数。必须为正整数。0表示禁用此设置。 + 指定留存的天数。必须为正整数。 0 表示禁用此设置。 默认值:0 - --wal-depth=_wal-depth_ - 每个时间轴上必须留存的执行PITR能力的最新有效备份数。必须为正整数。0表示禁用此设置。 + 每个时间轴上必须留存的执行 PITR 能力的最新有效备份数。必须为正整数。 0 表示禁用此设置。 默认值:0 - --delete-wal - 从任何现有的备份中删除不需要的WAL文件。 + 从任何现有的备份中删除不需要的 WAL 文件。 - --delete-expired - 删除不符合pg\_probackup.conf配置文件中定义的留存策略的备份。 + 删除不符合 pg\_probackup.conf 配置文件中定义的留存策略的备份。 - --merge-expired @@ -873,52 +874,52 @@ gs\_probackup是一个用于管理openGauss数据库备份和恢复的工具。 **固定备份相关参数\(pinning\_options\)** >![](C:/Users/lijun/Desktop/opengauss/docs/content/zh/docs/Administratorguide/public_sys-resources/icon-note.gif) **说明:** ->如果要将某些备份从已建立的留存策略中排除,可以和backup和set-backup命令一起使用这些参数。 +>如果要将某些备份从已建立的留存策略中排除,可以和 backup 和set-backup命令一起使用这些参数。 - --ttl=_interval_ - 指定从恢复时间开始计算,备份要固定的时间量。必须为正整数。0表示取消备份固定。 + 指定从恢复时间开始计算,备份要固定的时间量。必须为正整数。 0 表示取消备份固定。 - 支持的单位:ms, s, min, h, d(默认为s)。 + 支持的单位:`ms`, `s` , `min` , `h` , `d`(默认为 `s`)。 - 例如:--ttl=30d。 + 例如:`--ttl=30d`。 - --expire-time=_time_ - 指定备份固定失效的时间戳。必须是ISO-8601标准的时间戳。 + 指定备份固定失效的时间戳。必须是 ISO-8601 标准的时间戳。 例如:--expire-time='2020-01-01 00:00:00+03' **日志相关参数\(logging\_options\)** -日志级别:verbose、log、info、warning、error和off。 +日志级别:verbose、log、info、warning、error 和 off 。 - --log-level-console=_log-level-console_ - 设置要发送到控制台的日志级别。每个级别都包含其后的所有级别。级别越高,发送的消息越少。指定off级别表示禁用控制台日志记录。 + 设置要发送到控制台的日志级别。每个级别都包含其后的所有级别。级别越高,发送的消息越少。指定 off 级别表示禁用控制台日志记录。 默认值:info - --log-level-file=_log-level-file_ - 设置要发送到日志文件的日志级别。每个级别都包含其后的所有级别。级别越高,发送的消息越少。指定off级别表示禁用日志文件记录。 + 设置要发送到日志文件的日志级别。每个级别都包含其后的所有级别。级别越高,发送的消息越少。指定 off 级别表示禁用日志文件记录。 默认值:off - --log-filename=_log-filename_ - 指定要创建的日志文件的文件名。文件名可以使用strftime模式,因此可以使用%-escapes指定随时间变化的文件名。 + 指定要创建的日志文件的文件名。文件名可以使用 strftime 模式,因此可以使用 `%-escapes` 指定随时间变化的文件名。 - 例如,如果指定了“pg\_probackup-%u.log”模式,则pg\_probackup为每周的每一天生成单独的日志文件,其中%u替换为相应的十进制数字,即pg\_probackup-1.log表示星期一;pg\_probackup-2.log表示星期二,以此类推。 + 例如,如果指定了“pg\_probackup-%u.log”模式,则 pg\_probackup 为每周的每一天生成单独的日志文件,其中 %u 替换为相应的十进制数字,即 pg\_probackup-1.log 表示星期一;pg\_probackup-2.log 表示星期二,以此类推。 - 如果指定了--log-level-file参数启用日志文件记录,则该参数有效。 + 如果指定了 `--log-level-file` 参数启用日志文件记录,则该参数有效。 默认值:“pg\_probackup.log” - --error-log-filename=_error-log-filename_ - 指定仅用于error日志的日志文件名。指定方式与--log-filename参数相同。 + 指定仅用于 error 日志的日志文件名。指定方式与 `--log-filename` 参数相同。 此参数用于故障排除和监视。 @@ -930,7 +931,7 @@ gs\_probackup是一个用于管理openGauss数据库备份和恢复的工具。 - --log-rotation-size=_log-rotation-size_ - 指定单个日志文件的最大大小。如果达到此值,则启动gs\_probackup命令后,日志文件将循环,但help和version命令除外。0表示禁用基于文件大小的循环。 + 指定单个日志文件的最大大小。如果达到此值,则启动 gs\_probackup 命令后,日志文件将循环,但 help 和 version 命令除外。 0 表示禁用基于文件大小的循环。 支持的单位:KB、MB、GB、TB(默认为KB)。 @@ -938,9 +939,9 @@ gs\_probackup是一个用于管理openGauss数据库备份和恢复的工具。 - --log-rotation-age=_log-rotation-age_ - 单个日志文件的最大生命周期。如果达到此值,则启动gs\_probackup命令后,日志文件将循环,但help和version命令除外。$BACKUP\_PATH/log/log\_rotation目录下保存最后一次创建日志文件的时间。0表示禁用基于时间的循环。 + 单个日志文件的最大生命周期。如果达到此值,则启动 gs\_probackup 命令后,日志文件将循环,但 help 和 version 命令除外。$BACKUP\_PATH/log/log\_rotation 目录下保存最后一次创建日志文件的时间。 0 表示禁用基于时间的循环。 - 支持的单位:ms, s, min, h, d(默认为min)。 + 支持的单位:ms, s , min , h , d(默认为min)。 默认值:0 @@ -948,17 +949,17 @@ gs\_probackup是一个用于管理openGauss数据库备份和恢复的工具。 **连接相关参数\(connection\_options\)** >![](C:/Users/lijun/Desktop/opengauss/docs/content/zh/docs/Administratorguide/public_sys-resources/icon-note.gif) **说明:** ->可以和backup命令一起使用这些参数。 +>可以和 backup 命令一起使用这些参数。 - -d _dbname_, --pgdatabase=_dbname_ - 指定要连接的数据库名称。该连接仅用于管理备份进程,因此您可以连接到任何现有的数据库。如果命令行、PGDATABASE环境变量或pg\_probackup.conf配置文件中没有指定此参数,则gs\_probackup会尝试从PGUSER环境变量中获取该值。如果未设置PGUSER变量,则从当前用户名获取。 + 指定要连接的数据库名称。该连接仅用于管理备份进程,因此您可以连接到任何现有的数据库。如果命令行、PGDATABASE 环境变量或 pg\_probackup.conf 配置文件中没有指定此参数,则 gs\_probackup 会尝试从 PGUSER 环境变量中获取该值。如果未设置 PGUSER 变量,则从当前用户名获取。 系统环境变量:$PGDATABASE - -h _hostname_, --pghost=_hostname_ - 指定运行服务器的系统的主机名。如果该值以斜杠开头,则被用作到Unix域套接字的路径。 + 指定运行服务器的系统的主机名。如果该值以斜杠开头,则被用作到 Unix 域套接字的路径。 系统环境变量:$PGHOST @@ -966,7 +967,7 @@ gs\_probackup是一个用于管理openGauss数据库备份和恢复的工具。 - -p _port_, --pgport=_p__ort_ - 指定服务器正在侦听连接的TCP端口或本地Unix域套接字文件扩展名。 + 指定服务器正在侦听连接的 TCP 端口或本地 Unix 域套接字文件扩展名。 系统环境变量:$PGPORT @@ -984,56 +985,56 @@ gs\_probackup是一个用于管理openGauss数据库备份和恢复的工具。 - -W _password_, --password=_password_ - 指定用户连接的密码。如果主机的认证策略是trust,则不会对系统管理员进行密码验证,即无需输入-W选项;如果没有-W选项,并且不是系统管理员,则会提示用户输入密码。 + 指定用户连接的密码。如果主机的认证策略是 trust ,则不会对系统管理员进行密码验证,即无需输入 `-W` 选项;如果没有 `-W` 选项,并且不是系统管理员,则会提示用户输入密码。 **压缩相关参数\(compression\_options\)** >![](C:/Users/lijun/Desktop/opengauss/docs/content/zh/docs/Administratorguide/public_sys-resources/icon-note.gif) **说明:** ->可以和backup命令一起使用这些参数。 +>可以和 backup 命令一起使用这些参数。 - --compress-algorithm=_compress-algorithm_ 指定用于压缩数据文件的算法。 - 取值包括zlib、pglz和none。如果设置为zlib或pglz,此选项将启用压缩。默认情况下,压缩功能处于关闭状态。 + 取值包括 `zlib`、`pglz` 和 `none` 。如果设置为 zlib 或 pglz ,此选项将启用压缩。默认情况下,压缩功能处于关闭状态。 - 默认值:none + 默认值:`none` - --compress-level=_compress-level_ 指定压缩级别。取值范围:0\~9 - - 0表示无压缩。 - - 1表示压缩比最小,处理速度最快。 - - 9表示压缩比最大,处理速度最慢。 - - 可与--compress-algorithm选项一起使用。 + - 0 表示无压缩。 + - 1 表示压缩比最小,处理速度最快。 + - 9 表示压缩比最大,处理速度最慢。 + - 可与 `--compress-algorithm` 选项一起使用。 默认值:1 - --compress - 以--compress-algorithm=zlib和--compress-level=1进行压缩。 + 以 `--compress-algorithm=zlib` 和 `--compress-level=1` 进行压缩。 **远程模式相关参数\(remote\_options\)** >![](C:/Users/lijun/Desktop/opengauss/docs/content/zh/docs/Administratorguide/public_sys-resources/icon-note.gif) **说明:** ->通过SSH远程运行gs\_probackup操作的相关参数。可以和add-instance、set-config、backup、restore命令一起使用这些参数。 +>通过 SSH 远程运行 gs\_probackup 操作的相关参数。可以和 add-instance、set-config、backup、restore 命令一起使用这些参数。 - --remote-proto=_protocol_ - 指定用于远程操作的协议。目前只支持SSH协议。取值包括: + 指定用于远程操作的协议。目前只支持 SSH 协议。取值包括: - ssh:通过SSH启用远程备份模式。这是默认值。 + ssh:通过 SSH 启用远程备份模式。这是默认值。 none:显式禁用远程模式。 - 如果指定了--remote-host参数,可以省略此参数。 + 如果指定了 `--remote-host` 参数,可以省略此参数。 - --remote-host=_destination_ - 指定要连接的远程主机的IP地址或主机名。 + 指定要连接的远程主机的 IP 地址或主机名。 - --remote-port=_port_ @@ -1043,30 +1044,30 @@ gs\_probackup是一个用于管理openGauss数据库备份和恢复的工具。 - --remote-user=_username_ - 指定SSH连接的远程主机用户。如果省略此参数,则使用当前发起SSH连接的用户。 + 指定 SSH 连接的远程主机用户。如果省略此参数,则使用当前发起 SSH 连接的用户。 默认值:当前用户 - --remote-path=_path_ - 指定gs\_probackup在远程系统的安装目录。 + 指定 gs\_probackup 在远程系统的安装目录。 默认值:当前路径 - --remote-lib=_libpath_ - 指定gs\_probackup在远程系统安装的lib库目录。 + 指定 gs\_probackup 在远程系统安装的 lib 库目录。 - --ssh-options=_ssh\_options_ - 指定SSH命令行参数的字符串。 + 指定 SSH 命令行参数的字符串。 例如:--ssh-options='-c cipher\_spec -F configfile' >![](C:/Users/lijun/Desktop/opengauss/docs/content/zh/docs/Administratorguide/public_sys-resources/icon-note.gif) **说明:** > - >- 如果因为网络临时故障等原因导致server端无应答,gs\_probackup将在等待archive-timeout(默认300秒)后退出。 - >- 如果备机lsn与主机有差别时,数据库会不停地刷以下log信息,此时应重新build备机。 + >- 如果因为网络临时故障等原因导致 server 端无应答,gs\_probackup 将在等待 archive-timeout(默认 300 秒)后退出。 + >- 如果备机 lsn 与主机有差别时,数据库会不停地刷以下 log 信息,此时应重新 build 备机。 > >``` >LOG: walsender thread shut down @@ -1081,13 +1082,13 @@ gs\_probackup是一个用于管理openGauss数据库备份和恢复的工具。 #### 备份流程 -1. 初始化备份目录。在指定的目录下创建backups/和wal/子目录,分别用于存放备份文件和WAL文件。 +1. 初始化备份目录。在指定的目录下创建 backups/ 和 wal/ 子目录,分别用于存放备份文件和 WAL 文件。 ``` gs_probackup init -B backup_dir ``` -2. 添加一个新的备份实例。gs\_probackup可以在同一个备份目录下存放多个数据库实例的备份。 +2. 添加一个新的备份实例。gs\_probackup 可以在同一个备份目录下存放多个数据库实例的备份。 ``` gs_probackup add-instance -B backup_dir -D data_dir --instance instance_name @@ -1119,13 +1120,13 @@ gs\_probackup是一个用于管理openGauss数据库备份和恢复的工具。

ERROR: query failed: ERROR: canceling statement due to conflict with recovery

(错误:查询失败:由于与恢复操作冲突,正在取消语句命令)

-

原因:在备机上执行的操作正在访问存储行,主机上更改或者删除了对应的行,并将xlog在备机上重放,迫使备机上操作取消。

+

原因:在备机上执行的操作正在访问存储行,主机上更改或者删除了对应的行,并将 xlog 在备机上重放,迫使备机上操作取消。

解决方案:

1. 适当增加如下配置参数的值

-

max_standby_archive_delay

-

max_standby_streaming_delay

+

max_standby_archive_delay

+

>max_standby_streaming_delay

2. 增加如下配置

-

hot_standby_feedback = on

+

hot_standby_feedback = on

@@ -1133,32 +1134,33 @@ gs\_probackup是一个用于管理openGauss数据库备份和恢复的工具。 + ## 逻辑备份恢复 ### gs\_dump #### 背景信息 -gs\_dump是openGauss用于导出数据库相关信息的工具,用户可以自定义导出一个数据库或其中的对象(模式、表、视图等),回收站对象除外。支持导出的数据库可以是默认数据库postgres,也可以是自定义数据库。 +gs\_dump 是 openGauss 用于导出数据库相关信息的工具,用户可以自定义导出一个数据库或其中的对象(模式、表、视图等),回收站对象除外。支持导出的数据库可以是默认数据库 postgres ,也可以是自定义数据库。 -gs\_dump工具由操作系统用户omm执行。 +gs\_dump 工具由操作系统用户 omm 执行。 -gs\_dump工具在进行数据导出时,其他用户可以访问openGauss数据库(读或写)。 +gs\_dump 工具在进行数据导出时,其他用户可以访问 openGauss 数据库(读或写)。 -gs\_dump工具支持导出完整一致的数据。例如,T1时刻启动gs\_dump导出A数据库,那么导出数据结果将会是T1时刻A数据库的数据状态,T1时刻之后对A数据库的修改不会被导出。 +gs\_dump 工具支持导出完整一致的数据。例如, T1 时刻启动 gs\_dump 导出 A 数据库,那么导出数据结果将会是 T1 时刻 A 数据库的数据状态, T1 时刻之后对 A 数据库的修改不会被导出。 -gs\_dump时生成列不会被转储。 +gs\_dump 时生成列不会被转储。 -gs\_dump支持导出兼容v1版本数据库的文本格式文件。 +gs\_dump 支持导出兼容 v1 版本数据库的文本格式文件。 -gs\_dump支持将数据库信息导出至纯文本格式的SQL脚本文件或其他归档文件中。 +gs\_dump 支持将数据库信息导出至纯文本格式的 SQL 脚本文件或其他归档文件中。 -- 纯文本格式的SQL脚本文件:包含将数据库恢复为其保存时的状态所需的SQL语句。通过[gsql](zh-cn_topic_0289899215.md)运行该SQL脚本文件,可以恢复数据库。即使在其他主机和其他数据库产品上,只要对SQL脚本文件稍作修改,也可以用来重建数据库。 -- 归档格式文件:包含将数据库恢复为其保存时的状态所需的数据,可以是tar格式、目录归档格式或自定义归档格式,详见[表1](#zh-cn_topic_0289899246_zh-cn_topic_0287275988_zh-cn_topic_0237152335_zh-cn_topic_0058967678_t17db29a12e7342cfbf02b2f6e50ff1a5)。该导出结果必须与gs\_restore配合使用来恢复数据库,gs\_restore工具在导入时,系统允许用户选择需要导入的内容,甚至可以在导入之前对等待导入的内容进行排序。 +- 纯文本格式的 SQL 脚本文件:包含将数据库恢复为其保存时的状态所需的 SQL 语句。通过 [gsql](zh-cn_topic_0289899215.md) 运行该 SQL 脚本文件,可以恢复数据库。即使在其他主机和其他数据库产品上,只要对 SQL 脚本文件稍作修改,也可以用来重建数据库。 +- 归档格式文件:包含将数据库恢复为其保存时的状态所需的数据,可以是 tar 格式、目录归档格式或自定义归档格式,详见[表 1](#zh-cn_topic_0289899246_zh-cn_topic_0287275988_zh-cn_topic_0237152335_zh-cn_topic_0058967678_t17db29a12e7342cfbf02b2f6e50ff1a5)。该导出结果必须与 gs\_restore 配合使用来恢复数据库,gs\_restore 工具在导入时,系统允许用户选择需要导入的内容,甚至可以在导入之前对等待导入的内容进行排序。 主要功能 -gs\_dump可以创建四种不同的导出文件格式,通过**\[**-F或者--format=**\]**选项指定,具体如[表1](#zh-cn_topic_0289899246_zh-cn_topic_0287275988_zh-cn_topic_0237152335_zh-cn_topic_0058967678_t17db29a12e7342cfbf02b2f6e50ff1a5)所示。 +gs\_dump 可以创建四种不同的导出文件格式,通过 `-F` 或者 `--format=` 选项指定,具体如[表 1](#zh-cn_topic_0289899246_zh-cn_topic_0287275988_zh-cn_topic_0237152335_zh-cn_topic_0058967678_t17db29a12e7342cfbf02b2f6e50ff1a5) 所示。 **表 1** 导出文件格式 @@ -1166,7 +1168,7 @@ gs\_dump可以创建四种不同的导出文件格式,通过**\[**-F或者--fo - @@ -1180,11 +1182,11 @@ gs\_dump可以创建四种不同的导出文件格式,通过**\[**-F或者--fo - - - - - @@ -1220,13 +1222,14 @@ gs\_dump可以创建四种不同的导出文件格式,通过**\[**-F或者--fo

格式名称

-F的参数值

+

-F 的参数值

说明

p

纯文本脚本文件包含SQL语句和命令。命令可以由gsql命令行终端程序执行,用于重新创建数据库对象并加载表数据。

+

纯文本脚本文件包含 SQL 语句和命令。命令可以由 gsql 命令行终端程序执行,用于重新创建数据库对象并加载表数据。

小型数据库,一般推荐纯文本格式。

使用gsql工具恢复数据库对象前,可根据需要使用文本编辑器编辑纯文本导出文件。

+

使用gsql 工具恢复数据库对象前,可根据需要使用文本编辑器编辑纯文本导出文件。

自定义归档格式

@@ -1202,16 +1204,16 @@ gs\_dump可以创建四种不同的导出文件格式,通过**\[**-F或者--fo

d

该格式会创建一个目录,该目录包含两类文件,一类是目录文件,另一类是每个表和blob对象对应的数据文件。

+

该格式会创建一个目录,该目录包含两类文件,一类是目录文件,另一类是每个表和 blob 对象对应的数据文件。

-

tar归档格式

+

tar 归档格式

t

tar归档文件支持从导出文件中恢复所有或所选数据库对象。tar归档格式不支持压缩且对于单独表大小应小于8GB。

+

tar 归档文件支持从导出文件中恢复所有或所选数据库对象。 tar 归档格式不支持压缩且对于单独表大小应小于 8GB 。

-

+ >![](C:/Users/lijun/Desktop/opengauss/docs/content/zh/docs/Administratorguide/public_sys-resources/icon-note.gif) **说明:** >可以使用gs\_dump程序将文件压缩为目录归档或自定义归档导出文件,减少导出文件的大小。生成目录归档或自定义归档导出文件时,默认进行中等级别的压缩。gs\_dump程序无法压缩已归档导出文件。 #### 注意事项 - 禁止修改导出的文件和内容,否则可能无法恢复成功。 -- 为了保证数据一致性和完整性,gs\_dump会对需要转储的表设置共享锁。如果表在别的事务中设置了共享锁,gs\_dump会等待锁释放后锁定表。如果无法在指定时间内锁定某个表,转储会失败。用户可以通过指定--lock-wait-timeout选项,自定义等待锁超时时间。 +- 为了保证数据一致性和完整性,gs\_dump 会对需要转储的表设置共享锁。如果表在别的事务中设置了共享锁,gs\_dump 会等待锁释放后锁定表。如果无法在指定时间内锁定某个表,转储会失败。用户可以通过指定 `--lock-wait-timeout` 选项,自定义等待锁超时时间。 - 不支持加密导出存储过程和函数。 #### 语法 @@ -1238,7 +1241,7 @@ gs_dump [OPTION]... [DBNAME] >![](C:/Users/lijun/Desktop/opengauss/docs/content/zh/docs/Administratorguide/public_sys-resources/icon-note.gif) **说明:** >“dbname”前面不需要加短或长选项。“dbname”指定要连接的数据库。 >例如: ->不需要-d,直接指定“dbname”。 +>不需要 `-d`,直接指定“dbname”。 > >``` >gs_dump -p port_number postgres -f dump1.sql @@ -1262,30 +1265,30 @@ gs_dump [OPTION]... [DBNAME] - -f, --file=FILENAME - 将输出发送至指定文件或目录。如果省略该参数,则使用标准输出。如果输出格式为\(-F c/-F d/-F t\)时,必须指定-f参数。如果-f的参数值含有目录,要求当前用户对该目录具有读写权限,并且不能指定已有目录。 + 将输出发送至指定文件或目录。如果省略该参数,则使用标准输出。如果输出格式为\(`-F c`/`-F d`/`-F t`\)时,必须指定 `-f` 参数。如果 `-f` 的参数值含有目录,要求当前用户对该目录具有读写权限,并且不能指定已有目录。 -- -F, --format=c|d|t|p +- -F, --format=`c`|`d`|`t`|`p` 选择输出格式。格式如下: - - p|plain:输出一个文本SQL脚本文件(默认)。 + - p|plain:输出一个文本 SQL 脚本文件(默认)。 - - c|custom:输出一个自定义格式的归档,并且以目录形式输出,作为gs\_restore输入信息。该格式是最灵活的输出格式,因为能手动选择,而且能在恢复过程中将归档项重新排序。该格式默认状态下会被压缩。 + - c|custom:输出一个自定义格式的归档,并且以目录形式输出,作为 gs\_restore 输入信息。该格式是最灵活的输出格式,因为能手动选择,而且能在恢复过程中将归档项重新排序。该格式默认状态下会被压缩。 - - d|directory:该格式会创建一个目录,该目录包含两类文件,一类是目录文件,另一类是每个表和blob对象对应的数据文件。 + - d|directory:该格式会创建一个目录,该目录包含两类文件,一类是目录文件,另一类是每个表和 blob 对象对应的数据文件。 - - t|tar:输出一个tar格式的归档形式,作为gs\_restore输入信息。tar格式与目录格式兼容;tar格式归档形式在提取过程中会生成一个有效的目录格式归档形式。但是,tar格式不支持压缩且对于单独表有8GB的大小限制。此外,表数据项的相应排序在恢复过程中不能更改。 + - t|tar:输出一个 tar 格式的归档形式,作为 gs\_restore 输入信息。 tar 格式与目录格式兼容;tar 格式归档形式在提取过程中会生成一个有效的目录格式归档形式。但是, tar 格式不支持压缩且对于单独表有 8GB 的大小限制。此外,表数据项的相应排序在恢复过程中不能更改。 - 输出一个tar格式的归档形式,也可以作为gsql输入信息。 + 输出一个 tar 格式的归档形式,也可以作为 gsql 输入信息。 - -v, --verbose - 指定verbose模式。该选项将导致gs\_dump向转储文件输出详细的对象注解和启动/停止次数,向标准错误流输出处理信息。 + 指定 verbose 模式。该选项将导致 gs\_dump 向转储文件输出详细的对象注解和启动/停止次数,向标准错误流输出处理信息。 - -V, --version - 打印gs\_dump版本,然后退出。 + 打印 gs\_dump 版本,然后退出。 - -Z, --compress=0-9 @@ -1293,19 +1296,19 @@ gs_dump [OPTION]... [DBNAME] 取值范围:0\~9 - - 0表示无压缩。 - - 1表示压缩比最小,处理速度最快。 - - 9表示压缩比最大,处理速度最慢。 + - 0 表示无压缩。 + - 1 表示压缩比最小,处理速度最快。 + - 9 表示压缩比最大,处理速度最慢。 - 针对自定义归档格式,该选项指定单个表数据片段的压缩,默认方式是以中等级别进行压缩。tar归档格式和纯文本格式目前不支持压缩。 + 针对自定义归档格式,该选项指定单个表数据片段的压缩,默认方式是以中等级别进行压缩。 tar 归档格式和纯文本格式目前不支持压缩。 - --lock-wait-timeout=TIMEOUT - 请勿在转储刚开始时一直等待以获取共享表锁。如果无法在指定时间内锁定某个表,就选择失败。可以以任何符合SET statement\_timeout的格式指定超时时间。 + 请勿在转储刚开始时一直等待以获取共享表锁。如果无法在指定时间内锁定某个表,就选择失败。可以以任何符合 SET statement\_timeout 的格式指定超时时间。 - -?, --help - 显示gs\_dump命令行参数帮助,然后退出。 + 显示 gs\_dump命令行参数帮助,然后退出。 转储参数: @@ -1320,15 +1323,15 @@ gs_dump [OPTION]... [DBNAME] - -c, --clean - 在将创建数据库对象的指令输出到备份文件之前,先将清理(删除)数据库对象的指令输出到备份文件中。(如果目标数据库中没有任何对象,gs\_restore工具可能会输出一些提示性的错误信息) + 在将创建数据库对象的指令输出到备份文件之前,先将清理(删除)数据库对象的指令输出到备份文件中。(如果目标数据库中没有任何对象,gs\_restore 工具可能会输出一些提示性的错误信息) - 该选项只对文本格式有意义。针对归档格式,可以调用gs\_restore时指定选项。 + 该选项只对文本格式有意义。针对归档格式,可以调用 gs\_restore 时指定选项。 - -C, --create 备份文件以创建数据库和连接到创建的数据库的命令开始。(如果命令脚本是这种方式执行,可以先指定任意数据库用于执行创建数据库的命令,数据不会恢复到指定的数据库中,而是恢复到创建的数据库中。) - 该选项只对文本格式有意义。针对归档格式,可以在调用gs\_restore时指定选项。 + 该选项只对文本格式有意义。针对归档格式,可以在调用 gs\_restore 时指定选项。 - -E, --encoding=ENCODING @@ -1336,14 +1339,14 @@ gs_dump [OPTION]... [DBNAME] - -n, --schema=SCHEMA - 只转储与模式名称匹配的模式,此选项包括模式本身和所有它包含的对象。如果该选项没有指定,所有在目标数据库中的非系统模式将会被转储。写入多个-n选项来选择多个模式。此外,根据gsql的\\d命令所使用的相同规则,模式参数可被理解成一个pattern,所以多个模式也可以通过在该pattern中写入通配符来选择。使用通配符时,注意给pattern打引号,防止shell扩展通配符。 + 只转储与模式名称匹配的模式,此选项包括模式本身和所有它包含的对象。如果该选项没有指定,所有在目标数据库中的非系统模式将会被转储。写入多个 `-n` 选项来选择多个模式。此外,根据 gsql 的 `\d` 命令所使用的相同规则,模式参数可被理解成一个 pattern ,所以多个模式也可以通过在该 pattern 中写入通配符来选择。使用通配符时,注意给 pattern 打引号,防止 shell 扩展通配符。 >![](C:/Users/lijun/Desktop/opengauss/docs/content/zh/docs/Administratorguide/public_sys-resources/icon-note.gif) **说明:** > - >- 当-n已指定时,gs\_dump不会转储已选模式所附着的任何其他数据库对象。因此,无法保证某个指定模式的转储结果能够自行成功地储存到一个空数据库中。 - >- 当-n指定时,非模式对象不会被转储。 + >- 当-n已指定时,gs\_dump 不会转储已选模式所附着的任何其他数据库对象。因此,无法保证某个指定模式的转储结果能够自行成功地储存到一个空数据库中。 + >- 当 `-n` 指定时,非模式对象不会被转储。 - 转储支持多个模式的转储。多次输入-n schemaname转储多个模式。 + 转储支持多个模式的转储。多次输入 `-n schemaname` 转储多个模式。 例如: @@ -1351,17 +1354,17 @@ gs_dump [OPTION]... [DBNAME] gs_dump -h host_name -p port_number postgres -f backup/bkp_shl2.sql -n sch1 -n sch2 ``` - 在上面这个例子中,sch1和sch2会被转储。 + 在上面这个例子中, sch1 和 sch2 会被转储。 - -N, --exclude-schema=SCHEMA - 不转储任何与模式pattern匹配的模式。pattern将参照针对-n的相同规则来理解。可以通过输入多次-N,不转储与任何pattern匹配的模式。 + 不转储任何与模式 pattern 匹配的模式。 pattern 将参照针对 `-n` 的相同规则来理解。可以通过输入多次 `-N`,不转储与任何 pattern 匹配的模式。 - 当同时输入-n和-N时,会转储与至少一个-n选项匹配、与-N选项不匹配的模式。如果有-N没有-n,则不转储常规转储中与-N匹配的模式。 + 当同时输入 `-n` 和 `-N` 时,会转储与至少一个 `-n` 选项匹配、与 `-N` 选项不匹配的模式。如果有 `-N` 没有 `-n`,则不转储常规转储中与 `-N` 匹配的模式。 转储过程支持排除多个模式。 - 在转储过程中,输入-N exclude schema name排除多个模式。 + 在转储过程中,输入 `-N exclude schema name` 排除多个模式。 例如: @@ -1369,17 +1372,17 @@ gs_dump [OPTION]... [DBNAME] gs_dump -h host_name -p port_number postgres -f backup/bkp_shl2.sql -N sch1 -N sch2 ``` - 在上面这个例子中,sch1和sch2在转储过程中会被排除。 + 在上面这个例子中, sch1 和 sch2 在转储过程中会被排除。 - -o, --oids - 转储每个表的对象标识符(OIDs),作为表的一部分数据。该选项用于应用以某种方式参照了OID列的情况。如果不是以上这种情况,请勿使用该选项。 + 转储每个表的对象标识符(OIDs),作为表的一部分数据。该选项用于应用以某种方式参照了 OID 列的情况。如果不是以上这种情况,请勿使用该选项。 - -O, --no-owner - 不输出设置对象的归属这样的命令,以匹配原始数据库。默认情况下,gs\_dump会发出ALTER OWNER或SET SESSION AUTHORIZATION语句设置所创建的数据库对象的归属。如果脚本正在运行,该语句不会执行成功,除非是由系统管理员触发(或是拥有脚本中所有对象的同一个用户)。通过指定-O,编写一个任何用户都能存储的脚本,且该脚本会授予该用户拥有所有对象的权限。 + 不输出设置对象的归属这样的命令,以匹配原始数据库。默认情况下,gs\_dump 会发出 ALTER OWNER 或 SET SESSION AUTHORIZATION 语句设置所创建的数据库对象的归属。如果脚本正在运行,该语句不会执行成功,除非是由系统管理员触发(或是拥有脚本中所有对象的同一个用户)。通过指定 `-O`,编写一个任何用户都能存储的脚本,且该脚本会授予该用户拥有所有对象的权限。 - 该选项只对文本格式有意义。针对归档格式,可以在调用gs\_restore时指定选项。 + 该选项只对文本格式有意义。针对归档格式,可以在调用 gs\_restore 时指定选项。 - -s, --schema-only @@ -1391,18 +1394,18 @@ gs_dump [OPTION]... [DBNAME] - -t, --table=TABLE - 指定转储的表(或视图、或序列、或外表)对象列表,可以使用多个-t选项来选择多个表,也可以使用通配符指定多个表对象。 + 指定转储的表(或视图、或序列、或外表)对象列表,可以使用多个 `-t` 选项来选择多个表,也可以使用通配符指定多个表对象。 - 当使用通配符指定多个表对象时,注意给pattern打引号,防止shell扩展通配符。 + 当使用通配符指定多个表对象时,注意给 pattern 打引号,防止 shell 扩展通配符。 - 当使用-t时,-n和-N没有任何效应,这是因为由-t选择的表的转储不受那些选项的影响。 + 当使用 `-t` 时,`-n` 和 `-N` 没有任何效应,这是因为由 `-t` 选择的表的转储不受那些选项的影响。 >![](C:/Users/lijun/Desktop/opengauss/docs/content/zh/docs/Administratorguide/public_sys-resources/icon-note.gif) **说明:** > - >- -t参数选项个数必须小于等于100。 - >- 如果-t参数选项个数大于100,建议使用参数--include-table-file来替换。 - >- 当-t已指定时,gs\_dump不会转储已选表所附着的任何其他数据库对象。因此,无法保证某个指定表的转储结果能够自行成功地储存到一个空数据库中。 - >- -t tablename只转储在默认搜索路径中可见的表。-t '\*.tablename'转储数据库下所有模式下的tablename表。-t schema.table转储特定模式中的表。 + >- -t参数选项个数必须小于等于 100 。 + >- 如果-t参数选项个数大于 100 ,建议使用参数 `--include-table-file` 来替换。 + >- 当-t已指定时,gs\_dump 不会转储已选表所附着的任何其他数据库对象。因此,无法保证某个指定表的转储结果能够自行成功地储存到一个空数据库中。 + >- -t tablename只转储在默认搜索路径中可见的表。-t '\*.tablename'转储数据库下所有模式下的 tablename 表。-t schema.table转储特定模式中的表。 >- -t tablename不会导出表上的触发器信息。 例如: @@ -1411,17 +1414,17 @@ gs_dump [OPTION]... [DBNAME] gs_dump -h host_name -p port_number postgres -f backup/bkp_shl2.sql -t schema1.table1 -t schema2.table2 ``` - 在上面这个例子中,schema1.table1和schema2.table2会被转储。 + 在上面这个例子中,schema1.table1 和 schema2.table2 会被转储。 - --include-table-file=FILENAME - 指定需要dump的表文件。 + 指定需要 dump 的表文件。 - -T, --exclude-table=TABLE - 不转储的表(或视图、或序列、或外表)对象列表,可以使用多个-T选项来选择多个表,也可以使用通配符指定多个表对象。 + 不转储的表(或视图、或序列、或外表)对象列表,可以使用多个 `-T` 选项来选择多个表,也可以使用通配符指定多个表对象。 - 当同时输入-t和-T时,会转储在-t列表中,而不在-T列表中的表对象。 + 当同时输入 `-t` 和 `-T` 时,会转储在 `-t` 列表中,而不在 `-T` 列表中的表对象。 例如: @@ -1429,11 +1432,11 @@ gs_dump [OPTION]... [DBNAME] gs_dump -h host_name -p port_number postgres -f backup/bkp_shl2.sql -T table1 -T table2 ``` - 在上面这个例子中,table1和table2在转储过程中会被排除。 + 在上面这个例子中, table1 和 table2 在转储过程中会被排除。 - --exclude-table-file=FILENAME - 指定不需要dump的表文件。 + 指定不需要 dump 的表文件。 >![](C:/Users/lijun/Desktop/opengauss/docs/content/zh/docs/Administratorguide/public_sys-resources/icon-note.gif) **说明:** >同--include-table-file,其内容格式如下: @@ -1447,13 +1450,13 @@ gs_dump [OPTION]... [DBNAME] - -q, --target - 指定导出兼容其他版本数据库的文本文件,目前支持v1和v5参数。v1参数用于导出v5数据库的数据为兼容v1的文本文件。v5参数用于导出v5数据库的数据为v5格式的文本文件,减少了导入v5时的可能的报错情况。 + 指定导出兼容其他版本数据库的文本文件,目前支持 v1 和 v5 参数。 v1 参数用于导出 v5 数据库的数据为兼容 v1 的文本文件。 v5 参数用于导出 v5 数据库的数据为 v5 格式的文本文件,减少了导入 v5 时的可能的报错情况。 - 在使用v1参数时,建议和--exclude-guc="enable\_cluster\_resize",--exclude-function,--exclude-with等选项共用,否则导入到v1时可能报错。 + 在使用 v1 参数时,建议和 `--exclude-guc="enable_cluster_resize"` ,`--exclude-function`,`--exclude-with` 等选项共用,否则导入到 v1 时可能报错。 - --exclude-guc - 导出的文本文件中,不包括相关guc参数的set命令,目前只支持enable\_cluster\_resize。 + 导出的文本文件中,不包括相关 guc 参数的 set 命令,目前只支持 `enable_cluster_resize`。 - --exclude-function @@ -1461,7 +1464,7 @@ gs_dump [OPTION]... [DBNAME] - --exclude-with - 导出的表定义,末尾不添加WITH\(orientation=row,compression=on)这样的描述。 + 导出的表定义,末尾不添加 WITH\(orientation=row,compression=on)这样的描述。 - --binary-upgrade @@ -1473,11 +1476,11 @@ gs_dump [OPTION]... [DBNAME] - --column-inserts|--attribute-inserts - 以INSERT命令带列名(INSERT INTO表(列、…)值…)方式导出数据。这会导致恢复缓慢。但是由于该选项会针对每行生成一个独立分开的命令,所以在重新加载某行时出现的错误只会导致那行丢失,而非整个表内容。 + 以 INSERT 命令带列名(INSERT INTO表(列、…)值…)方式导出数据。这会导致恢复缓慢。但是由于该选项会针对每行生成一个独立分开的命令,所以在重新加载某行时出现的错误只会导致那行丢失,而非整个表内容。 - --disable-dollar-quoting - 该选项将禁止在函数体前使用美元符号$,并强制使用SQL标准字符串语法对其进行引用。 + 该选项将禁止在函数体前使用美元符号$,并强制使用 SQL 标准字符串语法对其进行引用。 - --disable-triggers @@ -1485,17 +1488,17 @@ gs_dump [OPTION]... [DBNAME] - --exclude-table-data=TABLE - 指定不转储任何匹配表pattern的表这方面的数据。依照针对-t的相同规则理解该pattern。 + 指定不转储任何匹配表 pattern 的表这方面的数据。依照针对 `-t` 的相同规则理解该 pattern 。 - 可多次输入--exclude-table-data来排除匹配任何pattern的表。当用户需要特定表的定义但不需要其中的数据时,这个选项很有帮助。 + 可多次输入 `--exclude-table-data` 来排除匹配任何 pattern 的表。当用户需要特定表的定义但不需要其中的数据时,这个选项很有帮助。 排除数据库中所有表的数据,参见[--schema-only](#zh-cn_topic_0289899246_zh-cn_topic_0287275988_zh-cn_topic_0237152335_zh-cn_topic_0059777770_l35ed3d5a093e42ab8fc945dd3ca80ecd)。 - --inserts - 发出INSERT命令(而非COPY命令)转储数据。这会导致恢复缓慢。 + 发出 INSERT 命令(而非 COPY 命令)转储数据。这会导致恢复缓慢。 - 但是由于该选项会针对每行生成一个独立分开的命令,所以在重新加载某行时出现的错误只会导致那行丢失,而非整个表内容。注意:如果重排列顺序,可能会导致整个恢复失败。列顺序改变时,--column-inserts选项不受影响,虽然会更慢。 + 但是由于该选项会针对每行生成一个独立分开的命令,所以在重新加载某行时出现的错误只会导致那行丢失,而非整个表内容。注意:如果重排列顺序,可能会导致整个恢复失败。列顺序改变时,`--column-inserts` 选项不受影响,虽然会更慢。 - --no-security-labels @@ -1505,7 +1508,7 @@ gs_dump [OPTION]... [DBNAME] 不输出选择表空间的命令。使用该选项,无论默认表空间是哪个,在恢复过程中所有对象都会被创建。 - 该选项只对文本格式有意义。针对归档格式,可以在调用gs\_restore时指定选项。 + 该选项只对文本格式有意义。针对归档格式,可以在调用 gs\_restore 时指定选项。 - --no-unlogged-table-data @@ -1525,11 +1528,11 @@ gs_dump [OPTION]... [DBNAME] - --section=SECTION - 指定已转储的名称区段(pre-data、data和post-data)。 + 指定已转储的名称区段(pre-data、data 和 post-data)。 - --serializable-deferrable - 转储过程中使用可串行化事务,以确保所使用的快照与之后的数据库状态一致;要实现该操作需要在无异常状况的事务流中等待某个点,因为这样才能保证转储成功,避免引起其他事务出现serialization\_failure要重新再做。 + 转储过程中使用可串行化事务,以确保所使用的快照与之后的数据库状态一致;要实现该操作需要在无异常状况的事务流中等待某个点,因为这样才能保证转储成功,避免引起其他事务出现 serialization\_failure 要重新再做。 但是该选项对于灾难恢复没有益处。对于在原始数据库进行升级的时候,加载一个数据库的拷贝作为报告或其他只读加载共享的转储是有帮助的。没有这个选项,转储会反映一个与任何事务最终提交的序列化执行不一致的状态。 @@ -1537,27 +1540,27 @@ gs_dump [OPTION]... [DBNAME] - --use-set-session-authorization - 输出符合SQL标准的SET SESSION AUTHORIZATION命令而不是ALTER OWNER命令来确定对象所有权。这样令转储更加符合标准,但是如果转储文件中的对象的历史有些问题,那么可能不能正确恢复。并且,使用SET SESSION AUTHORIZATION的转储需要数据库系统管理员的权限才能转储成功,而ALTER OWNER需要的权限则低得多。 + 输出符合 SQL 标准的 SET SESSION AUTHORIZATION 命令而不是 ALTER OWNER 命令来确定对象所有权。这样令转储更加符合标准,但是如果转储文件中的对象的历史有些问题,那么可能不能正确恢复。并且,使用 SET SESSION AUTHORIZATION 的转储需要数据库系统管理员的权限才能转储成功,而 ALTER OWNER 需要的权限则低得多。 - --with-encryption=AES128 - 指定转储数据需用AES128进行加密。 + 指定转储数据需用 AES128 进行加密。 - --with-key=KEY - AES128密钥规则如下: +AES128 密钥规则如下: - - 密钥长度为8\~16个字符。 - - 至少包含大写字母(A-Z)、小写字母(a-z)、数字(0-9)、非字母数字字符(限定为\~!@\#$%^&\*\(\)-\_=+\\|\[\{\}\];:,<.\>/?)四类字符中的三类字符。 + - 密钥长度为 8\~16 个字符。 + - 至少包含大写字母(A-Z)、小写字母(a-z)、数字(0-9)、非字母数字字符(限定为 \~!@\#$%^&\*\(\)-\_=+\\|\[\{\}\];:,<.\>/? )四类字符中的三类字符。 >![](C:/Users/lijun/Desktop/opengauss/docs/content/zh/docs/Administratorguide/public_sys-resources/icon-note.gif) **说明:** > - >- 使用gs\_dump工具进行加密导出时,仅支持plain格式导出。通过-F plain导出的数据,需要通过gsql工具进行导入,且如果以加密方式导入,在通过gsql导入时,需要指定--with-key参数。 + >- 使用 gs\_dump 工具进行加密导出时,仅支持 plain 格式导出。通过 `-F plain` 导出的数据,需要通过 gsql 工具进行导入,且如果以加密方式导入,在通过 gsql 导入时,需要指定 `--with-key` 参数。 >- 不支持加密导出存储过程和函数。 - --with-salt=RANDVALUES - gs\_dumpall使用此参数传递随机值。 + gs\_dumpall 使用此参数传递随机值。 - --include-extensions @@ -1565,11 +1568,11 @@ gs_dump [OPTION]... [DBNAME] - --include-depend-objs - 备份结果包含依赖于指定对象的对象信息。该参数需要同-t/--include-table-file参数关联使用才会生效。 + 备份结果包含依赖于指定对象的对象信息。该参数需要同 `-t` / `--include-table-file` 参数关联使用才会生效。 - --exclude-self - 备份结果不包含指定对象自身的信息。该参数需要同-t/--include-table-file参数关联使用才会生效。 + 备份结果不包含指定对象自身的信息。该参数需要同 `-t` / `--include-table-file` 参数关联使用才会生效。 - --dont-overwrite-file @@ -1577,9 +1580,9 @@ gs_dump [OPTION]... [DBNAME] 例如: - 设想这样一种情景,即当前目录下backup.sql已存在。如果在输入命令中输入-f backup.sql选项时,当前目录恰好也生成backup.sql,文件就会被重写。 + 设想这样一种情景,即当前目录下 backup.sql 已存在。如果在输入命令中输入 `-f backup.sql` 选项时,当前目录恰好也生成backup.sql,文件就会被重写。 - 如果备份文件已存在,且输入--dont-overwrite-file选项,则会报告附带‘转储文件已经存在’信息的错误。 + 如果备份文件已存在,且输入 `--dont-overwrite-file` 选项,则会报告附带‘转储文件已经存在’信息的错误。 ``` gs_dump -p port_number postgres -f backup.sql -F plain --dont-overwrite-file @@ -1588,21 +1591,21 @@ gs_dump [OPTION]... [DBNAME] >![](C:/Users/lijun/Desktop/opengauss/docs/content/zh/docs/Administratorguide/public_sys-resources/icon-note.gif) **说明:** > ->- -s/--schema-only和-a/--data-only不能同时使用。 ->- -c/--clean和-a/--data-only不能同时使用。 ->- --inserts/--column-inserts和-o/--oids不能同时使用,因为INSERT命令不能设置OIDS。 ->- --role和--rolepassword必须一起使用。 ->- --binary-upgrade-usermap和--binary-upgrade必须一起使用。 ->- --include-depend-objs/--exclude-self需要同-t/--include-table-file参数关联使用才会生效 ->- --exclude-self必须同--include-depend-objs一起使用。 +>- `-s`/`--schema-only` 和 `-a` / `--data-only` 不能同时使用。 +>- `-c`/`--clean` 和 `-a`/`--data-only` 不能同时使用。 +>- `--inserts`/ `--column-inserts` 和 `-o`/`--oids` 不能同时使用,因为 INSERT 命令不能设置 OIDS 。 +>- `--role` 和 `--rolepassword` 必须一起使用。 +>- `--binary-upgrade-usermap` 和 `--binary-upgrade` 必须一起使用。 +>- `--include-depend-objs`/`--exclude-self` 需要同 `-t`/`--include-table-file` 参数关联使用才会生效 +>- `--exclude-self` 必须同 `--include-depend-objs` 一起使用。 连接参数: - -h, --host=HOSTNAME - 指定主机名称。如果数值以斜杠开头,则被用作到Unix域套接字的路径。缺省从PGHOST环境变量中获取(如果已设置),否则,尝试一个Unix域套接字连接。 + 指定主机名称。如果数值以斜杠开头,则被用作到 Unix 域套接字的路径。缺省从 PGHOST 环境变量中获取(如果已设置),否则,尝试一个 Unix 域套接字连接。 - 该参数只针对openGauss外,对openGauss内本机只能用127.0.0.1。 + 该参数只针对 openGauss 外,对 openGauss 内本机只能用 `127.0.0.1`。 例如:主机名 @@ -1610,7 +1613,7 @@ gs_dump [OPTION]... [DBNAME] - -p, --port=PORT - 指定主机端口。在开启线程池情况下,建议使用 pooler port,即主机端口+1。 + 指定主机端口。在开启线程池情况下,建议使用 pooler port ,即主机端口 + 1。 环境变量:PGPORT @@ -1628,11 +1631,11 @@ gs_dump [OPTION]... [DBNAME] - -W, --password=PASSWORD - 指定用户连接的密码。如果主机的认证策略是trust,则不会对系统管理员进行密码验证,即无需输入-W选项;如果没有-W选项,并且不是系统管理员,“Dump Restore工具”会提示用户输入密码。 + 指定用户连接的密码。如果主机的认证策略是 trust ,则不会对系统管理员进行密码验证,即无需输入 `-W` 选项;如果没有 `-W` 选项,并且不是系统管理员,“Dump Restore 工具”会提示用户输入密码。 - --role=ROLENAME - 指定创建转储使用的角色名。选择该选项,会使gs\_dump连接数据库后,发起一个SET ROLE角色名命令。当所授权用户(由-U指定)没有gs\_dump要求的权限时,该选项会起到作用,即切换到具备相应权限的角色。某些安装操作规定不允许直接以超系统管理员身份登录,而使用该选项能够在不违反该规定的情况下完成转储。 + 指定创建转储使用的角色名。选择该选项,会使 gs\_dump 连接数据库后,发起一个 SET ROLE 角色名命令。当所授权用户(由 `-U` 指定)没有 gs\_dump 要求的权限时,该选项会起到作用,即切换到具备相应权限的角色。某些安装操作规定不允许直接以超系统管理员身份登录,而使用该选项能够在不违反该规定的情况下完成转储。 - --rolepassword=ROLEPASSWORD @@ -1641,26 +1644,26 @@ gs_dump [OPTION]... [DBNAME] #### 说明 -如果openGauss有任何本地数据要添加到template1数据库,请谨慎将gs\_dump的输出恢复到一个真正的空数据库中,否则可能会因为被添加对象的定义被复制,出现错误。要创建一个无本地添加的空数据库,需从template0而非template1复制,例如: +如果 openGauss 有任何本地数据要添加到 template1 数据库,请谨慎将 gs\_dump 的输出恢复到一个真正的空数据库中,否则可能会因为被添加对象的定义被复制,出现错误。要创建一个无本地添加的空数据库,需从 template0 而非 template1 复制,例如: ``` CREATE DATABASE foo WITH TEMPLATE template0; ``` -tar归档形式的文件大小不得超过8GB(tar文件格式的固有限制)。tar文档整体大小和任何其他输出格式没有限制,操作系统可能对此有要求。 +tar 归档形式的文件大小不得超过 8GB(tar 文件格式的固有限制)。 tar 文档整体大小和任何其他输出格式没有限制,操作系统可能对此有要求。 -由gs\_dump生成的转储文件不包含优化程序用来做执行计划决定的统计数据。因此,最好从某转储文件恢复之后运行ANALYZE以确保最佳效果。转储文件不包含任何ALTER DATABASE…SET命令,这些设置由gs\_dumpall转储,还有数据库用户和其他完成安装设置。 +由 gs\_dump 生成的转储文件不包含优化程序用来做执行计划决定的统计数据。因此,最好从某转储文件恢复之后运行 ANALYZE 以确保最佳效果。转储文件不包含任何 ALTER DATABASE…SET 命令,这些设置由 gs\_dumpall 转储,还有数据库用户和其他完成安装设置。 #### 示例 -使用gs\_dump转储数据库为SQL文本文件或其它格式的操作,如下所示。 +使用 gs\_dump 转储数据库为 SQL 文本文件或其它格式的操作,如下所示。 -示例中“Bigdata@123”表示数据库用户密码;“backup/MPPDB\_backup.sql”表示导出的文件,其中backup表示相对于当前目录的相对目录;“37300”表示数据库服务器端口;“postgres”表示要访问的数据库名。 +示例中“Bigdata@123”表示数据库用户密码;“backup/MPPDB\_backup.sql”表示导出的文件,其中 backup 表示相对于当前目录的相对目录;“37300”表示数据库服务器端口;“postgres”表示要访问的数据库名。 >![](C:/Users/lijun/Desktop/opengauss/docs/content/zh/docs/Administratorguide/public_sys-resources/icon-note.gif) **说明:** >导出操作时,请确保该目录存在并且当前的操作系统用户对其具有读写权限。 -示例1:执行gs\_dump,导出postgres数据库全量信息,导出的MPPDB\_backup.sql文件格式为纯文本格式。 +示例1:执行 gs\_dump,导出 postgres 数据库全量信息,导出的 MPPDB\_backup.sql 文件格式为纯文本格式。 ``` gs_dump -U omm -W Bigdata@123 -f backup/MPPDB_backup.sql -p 37300 postgres -F p @@ -1670,9 +1673,9 @@ gs_dump[port='37300'][postgres][2018-06-27 09:49:17]: dump database postgres suc gs_dump[port='37300'][postgres][2018-06-27 09:49:17]: total time: 1274 ms ``` -使用gsql程序从纯文本导出文件中导入数据。 +使用 gsql 程序从纯文本导出文件中导入数据。 -示例2:执行gs\_dump,导出postgres数据库全量信息,导出的MPPDB\_backup.tar文件格式为tar格式。 +示例2:执行gs\_dump,导出 postgres 数据库全量信息,导出的 MPPDB\_backup.tar 文件格式为 tar 格式。 ``` gs_dump -U omm -W Bigdata@123 -f backup/MPPDB_backup.tar -p 37300 postgres -F t @@ -1682,7 +1685,7 @@ gs_dump[port='37300'][postgres][2018-06-27 10:02:53]: dump database postgres suc gs_dump[port='37300'][postgres][2018-06-27 10:02:53]: total time: 50086 ms ``` -示例3:执行gs\_dump,导出postgres数据库全量信息,导出的MPPDB\_backup.dmp文件格式为自定义归档格式。 +示例3:执行 gs\_dump,导出 postgres 数据库全量信息,导出的 MPPDB\_backup.dmp 文件格式为自定义归档格式。 ``` gs_dump -U omm -W Bigdata@123 -f backup/MPPDB_backup.dmp -p 37300 postgres -F c @@ -1692,7 +1695,7 @@ gs_dump[port='37300'][postgres][2018-06-27 10:06:03]: dump database postgres suc gs_dump[port='37300'][postgres][2018-06-27 10:06:03]: total time: 36620 ms ``` -示例4:执行gs\_dump,导出postgres数据库全量信息,导出的MPPDB\_backup文件格式为目录格式。 +示例4:执行 gs\_dump,导出 postgres 数据库全量信息,导出的 MPPDB\_backup 文件格式为目录格式。 ``` gs_dump -U omm -W Bigdata@123 -f backup/MPPDB_backup -p 37300 postgres -F d @@ -1702,7 +1705,7 @@ gs_dump[port='37300'][postgres][2018-06-27 10:16:23]: dump database postgres suc gs_dump[port='37300'][postgres][2018-06-27 10:16:23]: total time: 33977 ms ``` -示例5:执行gs\_dump,导出postgres数据库信息,但不导出/home/MPPDB\_temp.sql中指定的表信息。导出的MPPDB\_backup.sql文件格式为纯文本格式。 +示例5:执行 gs\_dump,导出 postgres 数据库信息,但不导出 /home/MPPDB\_temp.sql 中指定的表信息。导出的 MPPDB\_backup.sql 文件格式为纯文本格式。 ``` gs_dump -U omm -W Bigdata@123 -p 37300 postgres --exclude-table-file=/home/MPPDB_temp.sql -f backup/MPPDB_backup.sql @@ -1712,9 +1715,9 @@ gs_dump[port='37300'][postgres][2018-06-27 10:37:22]: dump database postgres suc gs_dump[port='37300'][postgres][2018-06-27 10:37:22]: total time: 37017 ms ``` -示例6:执行gs\_dump,仅导出依赖于指定表testtable的视图信息。然后创建新的testtable表,再恢复依赖其上的视图。 +示例6:执行 gs\_dump,仅导出依赖于指定表 testtable 的视图信息。然后创建新的 testtable 表,再恢复依赖其上的视图。 -- 备份仅依赖于testtable的视图。 +- 备份仅依赖于 testtable 的视图。 ``` gs_dump -s -p 37300 postgres -t PUBLIC.testtable --include-depend-objs --exclude-self -f backup/MPPDB_backup.sql -F p @@ -1724,19 +1727,19 @@ gs_dump[port='37300'][postgres][2018-06-27 10:37:22]: total time: 37017 ms gs_dump[port='37300'][postgres][2018-06-15 14:12:54]: total time: 327 ms ``` -- 修改testtable名称。 +- 修改 testtable 名称。 ``` gsql -p 37300 postgres -r -c "ALTER TABLE PUBLIC.testtable RENAME TO testtable_bak;" ``` -- 创建新的testtable表。 +- 创建新的 testtable 表。 ``` - CREATE TABLE PUBLIC.testtable(a int, b int, c int); + CREATE TABLE PUBLIC.testtable(a int, b int , c int); ``` -- 还原依赖于testtable的视图。 +- 还原依赖于 testtable 的视图。 ``` gsql -p 37300 postgres -r -f backup/MPPDB_backup.sql @@ -1748,28 +1751,28 @@ gs_dump[port='37300'][postgres][2018-06-27 10:37:22]: total time: 37017 ms #### 背景信息 -gs\_dumpall是openGauss用于导出所有数据库相关信息工具,它可以导出openGauss数据库的所有数据,包括默认数据库postgres的数据、自定义数据库的数据以及openGauss所有数据库公共的全局对象。 +gs\_dumpall 是 openGauss 用于导出所有数据库相关信息工具,它可以导出 openGauss 数据库的所有数据,包括默认数据库 postgres 的数据、自定义数据库的数据以及 openGauss 所有数据库公共的全局对象。 -gs\_dumpall工具由操作系统用户omm执行。 +gs\_dumpall 工具由操作系统用户 omm 执行。 -gs\_dumpall工具在进行数据导出时,其他用户可以访问openGauss数据库(读或写)。 +gs\_dumpall 工具在进行数据导出时,其他用户可以访问 openGauss 数据库(读或写)。 -gs\_dumpall工具支持导出完整一致的数据。例如,T1时刻启动gs\_dumpall导出openGauss数据库,那么导出数据结果将会是T1时刻该openGauss数据库的数据状态,T1时刻之后对openGauss的修改不会被导出。 +gs\_dumpall 工具支持导出完整一致的数据。例如, T1 时刻启动 gs\_dumpall 导出 openGauss 数据库,那么导出数据结果将会是 T1 时刻该 openGauss 数据库的数据状态, T1 时刻之后对 openGauss 的修改不会被导出。 -gs\_dumpall时生成列不会被转储。 +gs\_dumpall 时生成列不会被转储。 -gs\_dumpall在导出openGauss所有数据库时分为两部分: +gs\_dumpall 在导出 openGauss 所有数据库时分为两部分: -- gs\_dumpall自身对所有数据库公共的全局对象进行导出,包括有关数据库用户和组、表空间以及属性(例如,适用于数据库整体的访问权限)信息。 -- gs\_dumpall通过调用gs\_dump来完成openGauss中各数据库的SQL脚本文件导出,该脚本文件包含将数据库恢复为其保存时的状态所需要的全部SQL语句。 +- gs\_dumpall 自身对所有数据库公共的全局对象进行导出,包括有关数据库用户和组、表空间以及属性(例如,适用于数据库整体的访问权限)信息。 +- gs\_dumpall 通过调用 gs\_dump 来完成 openGauss 中各数据库的 SQL 脚本文件导出,该脚本文件包含将数据库恢复为其保存时的状态所需要的全部 SQL 语句。 -以上两部分导出的结果为纯文本格式的SQL脚本文件,使用gsql运行该脚本文件可以恢复openGauss数据库。 +以上两部分导出的结果为纯文本格式的 SQL 脚本文件,使用 gsql 运行该脚本文件可以恢复 openGauss 数据库。 #### 注意事项 - 禁止修改导出的文件和内容,否则可能无法恢复成功。 -- 为了保证数据一致性和完整性,gs\_dumpall会对需要转储的表设置共享锁。如果某张表在别的事务中设置了共享锁,gs\_dumpall会等待此表的锁释放后锁定此表。如果无法在指定时间内锁定某张表,转储会失败。用户可以通过指定--lock-wait-timeout选项,自定义等待锁超时时间。 -- 由于gs\_dumpall读取所有数据库中的表,因此必须以openGauss管理员身份进行连接,才能导出完整文件。在使用gsql执行脚本文件导入时,同样需要管理员权限,以便添加用户和组以及创建数据库。 +- 为了保证数据一致性和完整性,gs\_dumpall 会对需要转储的表设置共享锁。如果某张表在别的事务中设置了共享锁,gs\_dumpall 会等待此表的锁释放后锁定此表。如果无法在指定时间内锁定某张表,转储会失败。用户可以通过指定 `--lock-wait-timeout` 选项,自定义等待锁超时时间。 +- 由于 gs\_dumpall 读取所有数据库中的表,因此必须以 openGauss 管理员身份进行连接,才能导出完整文件。在使用 gsql 执行脚本文件导入时,同样需要管理员权限,以便添加用户和组以及创建数据库。 #### 语法 @@ -1787,19 +1790,19 @@ gs_dumpall [OPTION]... - -v, --verbose - 指定verbose模式。该选项将导致gs\_dumpall向转储文件输出详细的对象注解和启动/停止次数,向标准错误流输出处理信息。 + 指定 verbose 模式。该选项将导致 gs\_dumpall 向转储文件输出详细的对象注解和启动/停止次数,向标准错误流输出处理信息。 - -V, --version - 打印gs\_dumpall版本,然后退出。 + 打印 gs\_dumpall 版本,然后退出。 - --lock-wait-timeout=TIMEOUT - 请勿在转储刚开始时一直等待以获取共享表锁。如果无法在指定时间内锁定某个表,就选择失败。可以以任何符合SET statement\_timeout的格式指定超时时间。 + 请勿在转储刚开始时一直等待以获取共享表锁。如果无法在指定时间内锁定某个表,就选择失败。可以以任何符合 SET statement\_timeout 的格式指定超时时间。 - -?, --help - 显示gs\_dumpall命令行参数帮助,然后退出。 + 显示 gs\_dumpall 命令行参数帮助,然后退出。 转储参数: @@ -1810,7 +1813,7 @@ gs_dumpall [OPTION]... - -c, --clean - 在重新创建数据库之前,执行SQL语句清理(删除)这些数据库。针对角色和表空间的转储命令已添加。 + 在重新创建数据库之前,执行 SQL 语句清理(删除)这些数据库。针对角色和表空间的转储命令已添加。 - -g, --globals-only @@ -1818,11 +1821,11 @@ gs_dumpall [OPTION]... - -o, --oids - 转储每个表的对象标识符(OIDs),作为表的一部分数据。该选项用于应用以某种方式参照了OID列的情况。如果不是以上这种情况,请勿使用该选项。 + 转储每个表的对象标识符(OIDs),作为表的一部分数据。该选项用于应用以某种方式参照了 OID 列的情况。如果不是以上这种情况,请勿使用该选项。 - -O, --no-owner - 不输出设置对象的归属这样的命令,以匹配原始数据库。默认情况下,gs\_dumpall会发出ALTER OWNER或SET SESSION AUTHORIZATION语句设置所创建的模式元素的所属。如果脚本正在运行,该语句不会执行成功,除非是由系统管理员触发(或是拥有脚本中所有对象的同一个用户)。通过指定-O,编写一个任何用户都能存储的脚本,且该脚本会授予该用户拥有所有对象的权限。 + 不输出设置对象的归属这样的命令,以匹配原始数据库。默认情况下,gs\_dumpall 会发出 ALTER OWNER 或 SET SESSION AUTHORIZATION 语句设置所创建的模式元素的所属。如果脚本正在运行,该语句不会执行成功,除非是由系统管理员触发(或是拥有脚本中所有对象的同一个用户)。通过指定 `-O`,编写一个任何用户都能存储的脚本,且该脚本会授予该用户拥有所有对象的权限。 - -r, --roles-only @@ -1846,11 +1849,11 @@ gs_dumpall [OPTION]... - --column-inserts|--attribute-inserts - 以INSERT命令带列名(INSERT INTO表(列、…)值…)方式导出数据。这会导致恢复缓慢。但是由于该选项会针对每行生成一个独立分开的命令,所以在重新加载某行时出现的错误只会导致那行丢失,而非整个表内容。 + 以 INSERT 命令带列名(INSERT INTO 表(列、…)值…)方式导出数据。这会导致恢复缓慢。但是由于该选项会针对每行生成一个独立分开的命令,所以在重新加载某行时出现的错误只会导致那行丢失,而非整个表内容。 - --disable-dollar-quoting - 该选项将禁止在函数体前使用美元符号$,并强制使用SQL标准字符串语法对其进行引用。 + 该选项将禁止在函数体前使用美元符号 `$`,并强制使用 SQL 标准字符串语法对其进行引用。 - --disable-triggers @@ -1858,7 +1861,7 @@ gs_dumpall [OPTION]... - --inserts - 发出INSERT命令(而非COPY命令)转储数据。这会导致恢复缓慢。注意:如果重排列顺序,可能会导致恢复整个失败。--column-inserts选项更加安全,虽然可能更慢些。 + 发出 INSERT 命令(而非 COPY 命令)转储数据。这会导致恢复缓慢。注意:如果重排列顺序,可能会导致恢复整个失败。`--column-inserts` 选项更加安全,虽然可能更慢些。 - --no-security-labels @@ -1886,22 +1889,22 @@ gs_dumpall [OPTION]... - --use-set-session-authorization - 输出符合SQL标准的SET SESSION AUTHORIZATION命令而不是ALTER OWNER命令来确定对象所有权。这样令转储更加符合标准,但是如果转储文件中的对象的历史有些问题,那么可能不能正确恢复。并且,使用SET SESSION AUTHORIZATION的转储需要数据库系统管理员的权限才能转储成功,而ALTER OWNER需要的权限则低得多。 + 输出符合 SQL 标准的 SET SESSION AUTHORIZATION 命令而不是 ALTER OWNER 命令来确定对象所有权。这样令转储更加符合标准,但是如果转储文件中的对象的历史有些问题,那么可能不能正确恢复。并且,使用 SET SESSION AUTHORIZATION 的转储需要数据库系统管理员的权限才能转储成功,而 ALTER OWNER 需要的权限则低得多。 - --with-encryption=AES128 - 指定转储数据需用AES128进行加密。 + 指定转储数据需用 AES128 进行加密。 - --with-key=KEY - AES128密钥规则如下: +AES128 密钥规则如下: - - 密钥长度为8\~16个字符。 - - 至少包含大写字母(A-Z),小写字母(a-z),数字(0-9),非字母数字字符(限定为\~!@\#$%^&\*\(\)-\_=+\\|\[\{\}\];:,<.\>/?)四类字符中的三类字符。 + - 密钥长度为 8 \~ 16 个字符。 + - 至少包含大写字母(A-Z),小写字母(a-z),数字(0-9),非字母数字字符(限定为 \~!@\#$%^&\*\(\)-\_=+\\|\[\{\}\];:,<.\>/? )四类字符中的三类字符。 - --include-extensions - 如果include-extensions参数被设置,将备份所有的CREATE EXTENSION语句。 + 如果 `include-extensions` 参数被设置,将备份所有的 CREATE EXTENSION 语句。 - --include-templatedb @@ -1917,7 +1920,7 @@ gs_dumpall [OPTION]... - --non-lock-table - 该参数仅供OM工具使用。 + 该参数仅供 OM 工具使用。 - --tablespaces-postfix @@ -1925,41 +1928,41 @@ gs_dumpall [OPTION]... - --parallel-jobs - 指定备份进程并发数,取值范围为1\~1000。 + 指定备份进程并发数,取值范围为 1 \~ 1000。 >![](C:/Users/lijun/Desktop/opengauss/docs/content/zh/docs/Administratorguide/public_sys-resources/icon-note.gif) **说明:** > ->- -g/--globals-only和-r/--roles-only不能同时使用。 ->- -g/--globals-only和-t/--tablespaces-only不能同时使用。 ->- -r/--roles-only和-t/--tablespaces-only不能同时使用。 ->- -s/--schema-only和-a/--data-only不能同时使用。 ->- -r/--roles-only和-a/--data-only不能同时使用。 ->- -t/--tablespaces-only和-a/--data-only不能同时使用。 ->- -g/--globals-only和-a/--data-only不能同时使用。 ->- --tablespaces-postfix和--binary-upgrade必须一起使用。 ->- --binary-upgrade-usermap和--binary-upgrade必须一起使用。 ->- --parallel-jobs和-f/--file必须一起使用。 +>- `-g`/`--globals-only`和`-r`/`--roles-only`不能同时使用。 +>- `-g`/`--globals-only`和`-t`/`--tablespaces-only`不能同时使用。 +>- `-r`/`--roles-only`和`-t`/`--tablespaces-only`不能同时使用。 +>- `-s`/`--schema-only`和`-a`/`--data-only`不能同时使用。 +>- `-r`/`--roles-only`和`-a`/`--data-only`不能同时使用。 +>- `-t`/`--tablespaces-only`和`-a`/`--data-only`不能同时使用。 +>- `-g`/`--globals-only`和`-a`/`--data-only`不能同时使用。 +>- `--tablespaces-postfix`和`--binary-upgrade`必须一起使用。 +>- `--binary-upgrade-usermap`和`--binary-upgrade`必须一起使用。 +>- `--parallel-jobs`和`-f`/`--file`必须一起使用。 连接参数: - -h, --host - 指定主机的名称。如果取值是以斜线开头,它将用作Unix域套接字的目录。默认值取自PGHOST环境变量;如果没有设置,将启动某个Unix域套接字建立连接。 + 指定主机的名称。如果取值是以斜线开头,它将用作 Unix 域套接字的目录。默认值取自 PGHOST 环境变量;如果没有设置,将启动某个 Unix 域套接字建立连接。 - 该参数只针对openGauss外,对openGauss内本机只能用127.0.0.1。 + 该参数只针对 openGauss 外,对 openGauss 内本机只能用127.0.0.1。 环境变量:PGHOST - -l, --database - 指定所连接的转储全局对象的数据库名称,并去寻找还有其他哪些数据库需要被转储。如果没有指定,会使用postgres数据库,如果postgres数据库不存在,会使用template1。 + 指定所连接的转储全局对象的数据库名称,并去寻找还有其他哪些数据库需要被转储。如果没有指定,会使用 postgres 数据库,如果 postgres 数据库不存在,会使用 template1 。 - -p, --port - 指定服务器所侦听的TCP端口或本地Unix域套接字后缀,以确保连接。默认值设置为PGPORT环境变量。 + 指定服务器所侦听的 TCP 端口或本地 Unix 域套接字后缀,以确保连接。默认值设置为 PGPORT 环境变量。 - 在开启线程池情况下,建议使用 pooler port,即侦听端口+1。 + 在开启线程池情况下,建议使用 pooler port ,即侦听端口 + 1。 环境变量:PGPORT @@ -1975,11 +1978,11 @@ gs_dumpall [OPTION]... - -W, --password - 指定用户连接的密码。如果主机的认证策略是trust,则不会对系统管理员进行密码验证,即无需输入-W选项;如果没有-W选项,并且不是系统管理员,“Dump Restore工具”会提示用户输入密码。 + 指定用户连接的密码。如果主机的认证策略是 trust ,则不会对系统管理员进行密码验证,即无需输入 `-W` 选项;如果没有 `-W` 选项,并且不是系统管理员,“Dump Restore 工具”会提示用户输入密码。 - --role - 指定创建转储使用的角色名。选择该选项,会使gs\_dumpall连接数据库后,发起一个SET ROLE角色名命令。当所授权用户(由-U指定)没有gs\_dumpall要求的权限时,该选项会起到作用,即切换到具备相应权限的角色。某些安装操作规定不允许直接以系统管理员身份登录,而使用该选项能够在不违反该规定的情况下完成转储。 + 指定创建转储使用的角色名。选择该选项,会使 gs\_dumpall 连接数据库后,发起一个 SET ROLE 角色名命令。当所授权用户(由 `-U` 指定)没有 gs\_dumpall 要求的权限时,该选项会起到作用,即切换到具备相应权限的角色。某些安装操作规定不允许直接以系统管理员身份登录,而使用该选项能够在不违反该规定的情况下完成转储。 - --rolepassword @@ -1988,18 +1991,18 @@ gs_dumpall [OPTION]... #### 说明 -由于gs\_dumpall内部调用gs\_dump,所以一些诊断信息参见gs\_dump。 +由于 gs\_dumpall 内部调用 gs\_dump,所以一些诊断信息参见 gs\_dump。 -一旦恢复,最好在每个数据库上运行ANALYZE,优化程序提供有用的统计数据。 +一旦恢复,最好在每个数据库上运行 ANALYZE ,优化程序提供有用的统计数据。 -gs\_dumpall恢复前需要所有必要的表空间目录才能退出;否则,对于处在非默认位置的数据库,数据库创建会失败。 +gs\_dumpall 恢复前需要所有必要的表空间目录才能退出;否则,对于处在非默认位置的数据库,数据库创建会失败。 #### 示例 -使用gs\_dumpall一次导出openGauss的所有数据库。 +使用 gs\_dumpall 一次导出 openGauss 的所有数据库。 >![](C:/Users/lijun/Desktop/opengauss/docs/content/zh/docs/Administratorguide/public_sys-resources/icon-note.gif) **说明:** ->gs\_dumpall仅支持纯文本格式导出。所以只能使用gsql恢复gs\_dumpall导出的转储内容。 +>gs\_dumpall 仅支持纯文本格式导出。所以只能使用 gsql 恢复 gs\_dumpall 导出的转储内容。 ``` gs_dumpall -f backup/bkp2.sql -p 37300 @@ -2017,9 +2020,9 @@ gs_dumpall[port='37300'][2018-06-27 09:55:46]: total time: 56088 ms #### 背景信息 -gs\_restore是openGauss提供的针对gs\_dump导出数据的导入工具。通过此工具可由gs\_dump生成的导出文件进行导入。 +gs\_restore 是 openGauss 提供的针对 gs\_dump 导出数据的导入工具。通过此工具可由 gs\_dump 生成的导出文件进行导入。 -gs\_restore工具由操作系统用户omm执行。 +gs\_restore 工具由操作系统用户 omm 执行。 主要功能包含: @@ -2029,7 +2032,7 @@ gs\_restore工具由操作系统用户omm执行。 - 导入到脚本文件 - 如果未指定导入数据库,则创建包含重建数据库所必须的SQL语句脚本并写入到文件或者标准输出。等效于直接使用gs\_dump导出为纯文本格式。 + 如果未指定导入数据库,则创建包含重建数据库所必须的 SQL 语句脚本并写入到文件或者标准输出。等效于直接使用 gs\_dump 导出为纯文本格式。 #### 命令格式 @@ -2041,8 +2044,8 @@ gs_restore [OPTION]... FILE >![](C:/Users/lijun/Desktop/opengauss/docs/content/zh/docs/Administratorguide/public_sys-resources/icon-note.gif) **说明:** > >- FILE没有短选项或长选项。用来指定归档文件所处的位置。 ->- 作为前提条件,需输入dbname或-l选项。不允许用户同时输入dbname和-l选项。 ->- gs\_restore默认是以追加的方式进行数据导入。为避免多次导入造成数据异常,在进行导入时,建议使用“-c”参数,在重新创建数据库对象前,清理(删除)已存在于将要还原的数据库中的数据库对象。 +>- 作为前提条件,需输入 dbname 或 `-l` 选项。不允许用户同时输入 dbname 和 `-l` 选项。 +>- gs\_restore 默认是以追加的方式进行数据导入。为避免多次导入造成数据异常,在进行导入时,建议使用 `-c` 参数,在重新创建数据库对象前,清理(删除)已存在于将要还原的数据库中的数据库对象。 >- 日志打印无开关,若需隐藏日志,请将日志重定向到日志文件。若恢复表数据时,数据量很大,会分批恢复,因此会多次出现“表数据已完成导入”的日志。 #### 参数说明 @@ -2051,11 +2054,11 @@ gs_restore [OPTION]... FILE - -d, --dbname=NAME - 连接数据库dbname并直接导入到该数据库中。 + 连接数据库 dbname 并直接导入到该数据库中。 - -f, --file=FILENAME - 指定生成脚本的输出文件,或使用-l时列表的输出文件。 + 指定生成脚本的输出文件,或使用 `-l` 时列表的输出文件。 默认是标准输出。 @@ -2064,36 +2067,36 @@ gs_restore [OPTION]... FILE - -F, --format=c|d|t - 指定归档格式。由于gs\_restore会自动决定格式,因此不需要指定格式。 + 指定归档格式。gs\_restore 会自动决定格式,因此不需要指定格式。 取值范围: - - c/custom:该归档形式为gs\_dump的自定义格式。 + - c/custom:该归档形式为 gs\_dump 的自定义格式。 - d/directory:该归档形式是一个目录归档形式。 - - t/tar:该归档形式是一个tar归档形式。 + - t/tar:该归档形式是一个 tar 归档形式。 - -l, --list - 列出归档形式内容。这一操作的输出可用作-L选项的输入。注意如果像-n或-t的过滤选项与-l使用,过滤选项将会限制列举的项目(即归档形式内容)。 + 列出归档形式内容。这一操作的输出可用作 `-L` 选项的输入。注意如果像 `-n` 或 `-t` 的过滤选项与-l使用,过滤选项将会限制列举的项目(即归档形式内容)。 - -v, --verbose - 指定verbose模式。 + 指定 verbose 模式。 - #### -V, --version - 打印gs\_restore版本,然后退出。 + 打印 gs\_restore 版本,然后退出。 - -?, --help - 显示gs\_restore命令行参数帮助,然后退出。 + 显示 gs\_restore 命令行参数帮助,然后退出。 导入参数: - -a, --data-only - 只导入数据,不导入模式(数据定义)。gs\_restore的导入是以追加方式进行的。 + 只导入数据,不导入模式(数据定义)。gs\_restore 的导入是以追加方式进行的。 - -c, --clean @@ -2101,15 +2104,15 @@ gs_restore [OPTION]... FILE - -C, --create - 导入数据库之前会先使用CREATE DATABASE创建数据库。(指定该选项后,-d指定的数据库仅用以执行CREATE DATABASE命令,所有数据依然会导入到创建的数据库中。) + 导入数据库之前会先使用 CREATE DATABASE 创建数据库。(指定该选项后,`-d` 指定的数据库仅用以执行 CREATE DATABASE 命令,所有数据依然会导入到创建的数据库中。) - -e, --exit-on-error - 当发送SQL语句到数据库时如果出现错误,请退出。默认状态下会继续,且在导入后会显示一系列错误信息。 + 当发送 SQL 语句到数据库时如果出现错误,请退出。默认状态下会继续,且在导入后会显示一系列错误信息。 - -I, --index=NAME - 只导入已列举的index的定义。允许导入多个index。如果多次输入-I index导入多个index。 + 只导入已列举的 index 的定义。允许导入多个 index 。如果多次输入`-I index`导入多个 index 。 例如: @@ -2117,23 +2120,23 @@ gs_restore [OPTION]... FILE gs_restore -h host_name -p port_number -d postgres -I Index1 -I Index2 backup/MPPDB_backup.tar ``` - 在上面这个例子中,Index1和Index2会被导入。 + 在上面这个例子中, Index1 和 Index2 会被导入。 - -j, --jobs=NUM - 运行gs\_restore最耗时的部分(如加载数据、创建index或创建约束)使用并发任务。该选项能大幅缩短导入时间,即将一个大型数据库导入到某一多处理器的服务器上。 + 运行 gs\_restore 最耗时的部分(如加载数据、创建 index 或创建约束)使用并发任务。该选项能大幅缩短导入时间,即将一个大型数据库导入到某一多处理器的服务器上。 每个任务可能是一个进程或一个线程,这由操作系统决定;每个任务与服务器进行单独连接。 - 该选项的最优值取决于服务器的硬件设置、客户端以及网络。还包括这些因素,如CPU核数量、硬盘设置。建议是从增加服务器上的CPU核数量入手,更大的值(服务器上CPU核数量)在很多情况下也能导致数据文件更快的被导入。当然,过高的值会由于超负荷反而导致性能降低。 + 该选项的最优值取决于服务器的硬件设置、客户端以及网络。还包括这些因素,如 CPU 核数量、硬盘设置。建议是从增加服务器上的 CPU 核数量入手,更大的值(服务器上 CPU 核数量)在很多情况下也能导致数据文件更快的被导入。当然,过高的值会由于超负荷反而导致性能降低。 - 该选项只支持自定义归档格式。输入文件必须是常规文件(不能是像pipe的文件)。如果是通过脚本文件,而非直接连接数据库服务器,该选项可忽略。而且,多任务不能与--single-transaction选项一起使用。 + 该选项只支持自定义归档格式。输入文件必须是常规文件(不能是像 pipe 的文件)。如果是通过脚本文件,而非直接连接数据库服务器,该选项可忽略。而且,多任务不能与 `--single-transaction` 选项一起使用。 - -L, --use-list=FILENAME - 只导入列举在list-file中的那些归档形式元素,导入顺序以它们在文件中的顺序为准。注意如果像-n或-t的过滤选项与-L使用,它们将会进一步限制导入的项目。 + 只导入列举在 list-file 中的那些归档形式元素,导入顺序以它们在文件中的顺序为准。注意如果像 `-n` 或 `-t` 的过滤选项与 `-L` 使用,它们将会进一步限制导入的项目。 - 一般情况下,list-file是通过编辑前面提到的某个-l参数的输出创建的。文件行的位置可更改或直接删除,也可使用分号(;)在行的开始注出。 + 一般情况下,`list-file` 是通过编辑前面提到的某个-l参数的输出创建的。文件行的位置可更改或直接删除,也可使用分号`;`在行的开始注出。 - -n, --schema=NAME @@ -2141,7 +2144,7 @@ gs_restore [OPTION]... FILE 该选项可与-t选项一起用以导入某个指定的表。 - 多次输入-n _schemaname_可以导入多个模式。 + 多次输入 `-n [schemaname]` 可以导入多个模式。 例如: @@ -2149,17 +2152,17 @@ gs_restore [OPTION]... FILE gs_restore -h host_name -p port_number -d postgres -n sch1 -n sch2 backup/MPPDB_backup.tar ``` - 在上面这个例子中,sch1和sch2会被导入。 + 在上面这个例子中, sch1 和 sch2 会被导入。 - -O, --no-owner - 不输出设置对象的归属这样的命令,以匹配原始数据库。默认情况下,gs\_restore会发出ALTER OWNER或SET SESSION AUTHORIZATION语句设置所创建的模式元素的所属。除非是由系统管理员(或是拥有脚本中所有对象的同一个用户)进行数据库首次连接的操作,否则语句会失败。使用-O选项,任何用户名都可用于首次连接,且该用户拥有所有已创建的对象。 + 不输出设置对象的归属这样的命令,以匹配原始数据库。默认情况下,gs\_restore 会发出 ALTER OWNER 或 SET SESSION AUTHORIZATION 语句设置所创建的模式元素的所属。除非是由系统管理员(或是拥有脚本中所有对象的同一个用户)进行数据库首次连接的操作,否则语句会失败。使用 `-O` 选项,任何用户名都可用于首次连接,且该用户拥有所有已创建的对象。 - -P, --function=NAME\(args\) 只导入已列举的函数。请按照函数所在转储文件中的目录,准确拼写函数名称和参数。 - 当-P单独使用时,表示导入文件中所有'function-name\(args\)'函数;当-P同-n一起使用时,表示导入指定模式下的'function-name\(args\)'函数;多次输入-P,而仅指定一次-n,表示所有导入的函数默认都是位于-n模式下的。 + 当-P单独使用时,表示导入文件中所有'function-name\(args\)'函数;当 `-P` 同 `-n` 一起使用时,表示导入指定模式下的'function-name\(args\)'函数;多次输入 `-P`,而仅指定一次 `-n`,表示所有导入的函数默认都是位于 `-n`模式下的。 可以多次输入-n schema-name -P 'function-name\(args\)'同时导入多个指定模式下的函数。 @@ -2169,7 +2172,7 @@ gs_restore [OPTION]... FILE gs_restore -h host_name -p port_number -d postgres -n test1 -P 'Func1(integer)' -n test2 -P 'Func2(integer)' backup/MPPDB_backup.tar ``` - 在上面这个例子中,test1模式下的函数Func1\(i integer\)和test2模式下的函数Func2\(j integer\)会被一起导入。 + 在上面这个例子中, test1 模式下的函数Func1\(i integer\)和 test2 模式下的函数Func2\(j integer\)会被一起导入。 - -s, --schema-only @@ -2181,30 +2184,30 @@ gs_restore [OPTION]... FILE - -t, --table=NAME - 只导入已列举的表定义、数据或定义和数据。该选项与-n选项同时使用时,用来指定某个模式下的表对象。-n参数不输入时,默认为PUBLIC模式。多次输入-n -t 可以导入指定模式下的多个表。 + 只导入已列举的表定义、数据或定义和数据。该选项与`-n`选项同时使用时,用来指定某个模式下的表对象。`-n`参数不输入时,默认为 PUBLIC 模式。多次输入 -n -t 可以导入指定模式下的多个表。 例如: - 导入PUBLIC模式下的table1 + 导入 PUBLIC 模式下的 table1 ``` gs_restore -h host_name -p port_number -d postgres -t table1 backup/MPPDB_backup.tar ``` - 导入test1模式下的test1和test2模式下test2 + 导入 test1 模式下的 test1 和 test2 模式下 test2 ``` gs_restore -h host_name -p port_number -d postgres -n test1 -t test1 -n test2 -t test2 backup/MPPDB_backup.tar ``` - 导入PUBLIC模式下的table1和test1 模式下test1 + 导入 PUBLIC 模式下的 table1 和 test1 模式下 test1 ``` gs_restore -h host_name -p port_number -d postgres -n PUBLIC -t table1 -n test1 -t table1 backup/MPPDB_backup.tar ``` >![](C:/Users/lijun/Desktop/opengauss/docs/content/zh/docs/Administratorguide/public_sys-resources/icon-note.gif) **说明:** - >-t不支持schema\_name.table\_name的输入格式。 + >-t不支持 schema\_name.table\_name 的输入格式。 - -T, --trigger=NAME @@ -2212,13 +2215,13 @@ gs_restore [OPTION]... FILE - -x, --no-privileges/--no-acl - 防止导入访问权限(grant/revoke命令)。 + 防止导入访问权限(grant/revoke 命令)。 - -1, --single-transaction - 执行导入作为一个单独事务(即把命令包围在BEGIN/COMMIT中)。 + 执行导入作为一个单独事务(即把命令包围在 BEGIN/COMMIT 中)。 - 该选项确保要么所有命令成功完成,要么没有改变应用。该选项意为--exit-on-error。 + 该选项确保要么所有命令成功完成,要么没有改变应用。该选项意为 `--exit-on-error`。 - --disable-triggers @@ -2228,7 +2231,7 @@ gs_restore [OPTION]... FILE 默认状态下,即使创建表的命令失败(如表已经存在),表数据仍会被导入。使用该选项,像这种表的数据会被跳过。如果目标数据库已包含想要的表内容,这种行为会有帮助。 - 该选项只有在直接导入到某数据库中时有效,不针对生成SQL脚本文件输出。 + 该选项只有在直接导入到某数据库中时有效,不针对生成 SQL 脚本文件输出。 - --no-security-labels @@ -2240,46 +2243,46 @@ gs_restore [OPTION]... FILE - --section=SECTION - 导入已列举的区段(如pre-data、data或post-data)。 + 导入已列举的区段(如 pre-data、data 或 post-data)。 - --use-set-session-authorization 该选项用来进行文本格式的备份。 - 输出SET SESSION AUTHORIZATION命令,而非ALTER OWNER命令,用以决定对象归属。该选项使转储更加兼容标准,但通过参考转储中对象的记录,导入过程可能会有问题。使用SET SESSION AUTHORIZATION的转储要求必须是系统管理员,同时在导入前还需参考“SET SESSION AUTHORIZATION”,手工对导出文件的密码进行修改验证,只有这样才能进行正确的导入操作,相比之下,ALTER OWNER对权限要求较低。 + 输出 SET SESSION AUTHORIZATION 命令,而非 ALTER OWNER 命令,用以决定对象归属。该选项使转储更加兼容标准,但通过参考转储中对象的记录,导入过程可能会有问题。使用 SET SESSION AUTHORIZATION 的转储要求必须是系统管理员,同时在导入前还需参考“SET SESSION AUTHORIZATION”,手工对导出文件的密码进行修改验证,只有这样才能进行正确的导入操作,相比之下, ALTER OWNER 对权限要求较低。 >![](C:/Users/lijun/Desktop/opengauss/docs/content/zh/docs/Administratorguide/public_sys-resources/icon-notice.gif) **须知:** > ->- 如果安装过程中有任何本地数据要添加到template1数据库,请谨慎将gs\_restore的输出载入到一个真正的空数据库中;否则可能会因为被添加对象的定义被复制,而出现错误。要创建一个无本地添加的空数据库,需从template0而非template1复制,例如: +>- 如果安装过程中有任何本地数据要添加到 template1 数据库,请谨慎将 gs\_restore 的输出载入到一个真正的空数据库中;否则可能会因为被添加对象的定义被复制,而出现错误。要创建一个无本地添加的空数据库,需从 template0 而非 template1 复制,例如: > >``` >CREATE DATABASE foo WITH TEMPLATE template0; >``` > ->- gs\_restore不能选择性地导入大对象;例如只能导入那些指定表的对象。如果某个归档形式包含大对象,那所有大对象都会被导入或一个都不会被导入,如果它们通过-L、-t或其他选项被排除。 +>- gs\_restore 不能选择性地导入大对象;例如只能导入那些指定表的对象。如果某个归档形式包含大对象,那所有大对象都会被导入或一个都不会被导入,如果它们通过-L、-t或其他选项被排除。 >![](C:/Users/lijun/Desktop/opengauss/docs/content/zh/docs/Administratorguide/public_sys-resources/icon-note.gif) **说明:** ->1.-d/--dbname 和 -f/--file 不能同时使用; +>1.`-d`/`--dbname` 和 `-f`/`--file` 不能同时使用; > ->2. -s/--schema-only 和 -a/--data-only不能同时使用; ->3. -c/--clean 和 -a/--data-only不能同时使用; ->4. 使用--single-transaction时,-j/--jobs必须为单任务; ->5. --role 和 --rolepassword必须一起使用。 +>2. `-s`/`--schema-only` 和 `-a`/`--data-only`不能同时使用; +>3. `-c`/`--clean` 和 `-a`/`--data-only`不能同时使用; +>4. 使用 `--single-transaction` 时,`-j`/ `--jobs` 必须为单任务; +>5. --role 和 --rolepassword` 必须一起使用。 连接参数: - -h, --host=HOSTNAME - 指定的主机名称。如果取值是以斜线开头,他将用作Unix域套接字的目录。默认值取自PGHOST环境变量;如果没有设置,将启动某个Unix域套接字建立连接。 + 指定的主机名称。如果取值是以斜线开头,他将用作 Unix 域套接字的目录。默认值取自 PGHOST 环境变量;如果没有设置,将启动某个 Unix 域套接字建立连接。 - 该参数只针对openGauss外,对openGauss内本机只能用127.0.0.1。 + 该参数只针对 openGauss 外,对 openGauss 内本机只能用127.0.0.1。 - -p, --port=PORT - 指定服务器所侦听的TCP端口或本地Unix域套接字后缀,以确保连接。默认值设置为PGPORT环境变量。 + 指定服务器所侦听的 TCP 端口或本地 Unix 域套接字后缀,以确保连接。默认值设置为 PGPORT 环境变量。 - 在开启线程池情况下,建议使用 pooler port,即侦听端口+1。 + 在开启线程池情况下,建议使用 pooler port ,即侦听端口 + 1。 - -U, --username=NAME @@ -2291,11 +2294,11 @@ gs_restore [OPTION]... FILE - -W, --password=PASSWORD - 指定用户连接的密码。如果主机的认证策略是trust,则不会对系统管理员进行密码验证,即无需输入-W参数;如果没有-W参数,并且不是系统管理员,“gs\_restore”会提示用户输入密码。 + 指定用户连接的密码。如果主机的认证策略是 trust ,则不会对系统管理员进行密码验证,即无需输入 `-W` 参数;如果没有 `-W` 参数,并且不是系统管理员,“gs\_restore”会提示用户输入密码。 - --role=ROLENAME - 指定导入操作使用的角色名。选择该参数,会使gs\_restore连接数据库后,发起一个SET ROLE角色名命令。当所授权用户(由-U指定)没有gs\_restore要求的权限时,该参数会起到作用,即切换到具备相应权限的角色。某些安装操作规定不允许直接以初始用户身份登录,而使用该参数能够在不违反该规定的情况下完成导入。 + 指定导入操作使用的角色名。选择该参数,会使 gs\_restore 连接数据库后,发起一个 SET ROLE 角色名命令。当所授权用户(由 `-U` 指定)没有 gs\_restore 要求的权限时,该参数会起到作用,即切换到具备相应权限的角色。某些安装操作规定不允许直接以初始用户身份登录,而使用该参数能够在不违反该规定的情况下完成导入。 - --rolepassword=ROLEPASSWORD @@ -2304,7 +2307,7 @@ gs_restore [OPTION]... FILE #### 示例 -特例:执行gsql程序,使用如下选项导入由gs\_dump/gs\_dumpall生成导出文件夹(纯文本格式)的MPPDB\_backup.sql文件到postgres数据库。 +特例:执行 gsql 程序,使用如下选项导入由 gs\_dump/gs\_dumpall 生成导出文件夹(纯文本格式)的 MPPDB\_backup.sql 文件到 postgres 数据库。 ``` gsql -d postgres -p 15400 -W Bigdata@123 -f /home/omm/test/MPPDB_backup.sql @@ -2330,9 +2333,9 @@ GRANT total time: 30476 ms ``` -gs\_restore用来导入由gs\_dump生成的导出文件。 +gs\_restore 用来导入由 gs\_dump 生成的导出文件。 -示例1:执行gs\_restore,将导出的MPPDB\_backup.dmp文件(自定义归档格式)导入到postgres数据库。 +示例 1:执行 gs\_restore,将导出的 MPPDB\_backup.dmp 文件(自定义归档格式)导入到 postgres 数据库。 ``` gs_restore -W Bigdata@123 backup/MPPDB_backup.dmp -p 15400 -d postgres @@ -2340,7 +2343,7 @@ gs_restore: restore operation successful gs_restore: total time: 13053 ms ``` -示例2:执行gs\_restore,将导出的MPPDB\_backup.tar文件(tar格式)导入到postgres数据库。 +示例 2:执行 gs\_restore,将导出的 MPPDB\_backup.tar 文件(tar 格式)导入到 postgres 数据库。 ``` gs_restore backup/MPPDB_backup.tar -p 15400 -d postgres @@ -2348,7 +2351,7 @@ gs_restore[2017-07-21 19:16:26]: restore operation successful gs_restore[2017-07-21 19:16:26]: total time: 21203 ms ``` -示例3:执行gs\_restore,将导出的MPPDB\_backup文件(目录格式)导入到postgres数据库。 +示例3:执行 gs\_restore,将导出的 MPPDB\_backup 文件(目录格式)导入到 postgres 数据库。 ``` gs_restore backup/MPPDB_backup -p 15400 -d postgres @@ -2356,7 +2359,7 @@ gs_restore[2017-07-21 19:16:26]: restore operation successful gs_restore[2017-07-21 19:16:26]: total time: 21003 ms ``` -示例4:执行gs\_restore,使用自定义归档格式的MPPDB\_backup.dmp文件来进行如下导入操作。 导入PUBLIC模式下所有对象的定义和数据。在导入时会先删除已经存在的对象,如果原对象存在跨模式的依赖则需手工强制干预。 +示例4:执行 gs\_restore,使用自定义归档格式的 MPPDB\_backup.dmp 文件来进行如下导入操作。 导入 PUBLIC 模式下所有对象的定义和数据。在导入时会先删除已经存在的对象,如果原对象存在跨模式的依赖则需手工强制干预。 ``` gs_restore backup/MPPDB_backup.dmp -p 15400 -d postgres -e -c -n PUBLIC @@ -2376,7 +2379,7 @@ gs_restore[2017-07-21 19:16:26]: restore operation successful gs_restore[2017-07-21 19:16:26]: total time: 2203 ms ``` -示例5:执行gs\_restore,使用自定义归档格式的MPPDB\_backup.dmp文件来进行如下导入操作。只导入PUBLIC模式下表table1的定义。 +示例5:执行 gs\_restore,使用自定义归档格式的 MPPDB\_backup.dmp 文件来进行如下导入操作。只导入 PUBLIC 模式下表 table1 的定义。 ``` gs_restore backup/MPPDB_backup.dmp -p 15400 -d postgres -e -c -s -n PUBLIC -t table1 @@ -2384,7 +2387,7 @@ gs_restore[2017-07-21 19:16:26]: restore operation successful gs_restore[2017-07-21 19:16:26]: total time: 21000 ms ``` -示例6:执行gs\_restore,使用自定义归档格式的MPPDB\_backup.dmp文件来进行如下导入操作。只导入PUBLIC模式下表table1的数据。 +示例6:执行 gs\_restore,使用自定义归档格式的 MPPDB\_backup.dmp 文件来进行如下导入操作。只导入 PUBLIC 模式下表 table1 的数据。 ``` gs_restore backup/MPPDB_backup.dmp -p 15400 -d postgres -e -a -n PUBLIC -t table1 @@ -2398,13 +2401,13 @@ gs_restore[2017-07-21 19:16:26]: total time: 20203 ms #### 背景信息 -openGauss部署成功后,在数据库运行的过程中,会遇到各种问题及异常状态。openGauss提供了gs\_backup工具帮助openGauss备份、恢复重要数据、显示帮助信息和版本号信息。 +openGauss 部署成功后,在数据库运行的过程中,会遇到各种问题及异常状态。 openGauss 提供了 gs\_backup 工具帮助 openGauss 备份、恢复重要数据、显示帮助信息和版本号信息。 #### 前提条件 -- 可以正常连接openGauss数据库。 +- 可以正常连接 openGauss 数据库。 - 在进行还原时,需要保证各节点备份目录中存在备份文件。 -- 需以操作系统用户omm执行gs\_backup命令。 +- 需以操作系统用户 omm 执行 gs\_backup 命令。 #### 语法 @@ -2451,15 +2454,15 @@ gs\_backup参数可以分为如下几类: - --parameter - 备份参数文件,不指定--parameter、--binary、--all参数时默认只备份参数文件。 + 备份参数文件,不指定 `--parameter`、`--binary`、`--all` 参数时默认只备份参数文件。 - --binary - 备份app目录下的二进制文件。 + 备份 app 目录下的二进制文件。 - --all - 备份app目录下的二进制文件、pg\_hba.conf和postgsql.conf文件。 + 备份 app 目录下的二进制文件、pg\_hba.conf 和 postgsql.conf 文件。 - -l @@ -2482,7 +2485,7 @@ gs\_backup参数可以分为如下几类: - --parameter - 恢复参数文件,不指定--parameter、--binary、--all参数时默认只恢复参数文件。 + 恢复参数文件,不指定`--parameter`、`--binary`、`--all`参数时默认只恢复参数文件。 - --binary @@ -2500,7 +2503,7 @@ gs\_backup参数可以分为如下几类: - --force - 节点的静态文件丢失后强行restore,仅限--all 或者--binary一起使用时才生效。 + 节点的静态文件丢失后强行 restore ,仅限 `--all` 或者 `--binary` 一起使用时才生效。 - 其他参数: @@ -2517,13 +2520,13 @@ gs\_backup参数可以分为如下几类: 指定操作类型。 - 取值范围:backup 或者 restore。 + 取值范围:backup 或者 restore 。 #### 示例 -- 使用gs\_backup脚本备份数据库主机。 +- 使用 gs\_backup 脚本备份数据库主机。 ``` gs_backup -t backup --backup-dir=/opt/software/gaussdb/backup_dir -h plat1 --parameter @@ -2535,7 +2538,7 @@ gs\_backup参数可以分为如下几类: Successfully backed up openGauss. ``` -- 使用gs\_backup脚本恢复数据库主机。 +- 使用 gs\_backup 脚本恢复数据库主机。 ``` gs_backup -t restore --backup-dir=/opt/software/gaussdb/backup_dir -h plat1 --parameter @@ -2549,7 +2552,7 @@ gs\_backup参数可以分为如下几类: ## 闪回恢复 -闪回恢复功能是数据库恢复技术的一环,可以有选择性的撤销一个已提交事务的影响,将数据从人为不正确的操作中进行恢复。在采用闪回技术之前,只能通过备份恢复、PITR等手段找回已提交的数据库修改,恢复时长需要数分钟甚至数小时。采用闪回技术后,恢复已提交的数据库修改前的数据,只需要秒级,而且恢复时间和数据库大小无关。 +闪回恢复功能是数据库恢复技术的一环,可以有选择性的撤销一个已提交事务的影响,将数据从人为不正确的操作中进行恢复。在采用闪回技术之前,只能通过备份恢复、PITR 等手段找回已提交的数据库修改,恢复时长需要数分钟甚至数小时。采用闪回技术后,恢复已提交的数据库修改前的数据,只需要秒级,而且恢复时间和数据库大小无关。 >![](C:/Users/lijun/Desktop/opengauss/docs/content/zh/docs/Administratorguide/public_sys-resources/icon-note.gif) **说明:** >USTORE引擎暂不支持闪回DROP/TRUNCATE。 @@ -2560,13 +2563,13 @@ gs\_backup参数可以分为如下几类: - **[闪回DROP/TRUNCATE](#闪回DROP/TRUNCATE)** -闪回恢复功能是数据库恢复技术的一环,可以有选择性的撤销一个已提交事务的影响,将数据从人为不正确的操作中进行恢复。在采用闪回技术之前,只能通过备份恢复、PITR等手段找回已提交的数据库修改,恢复时长需要数分钟甚至数小时。采用闪回技术后,恢复已提交的数据库修改前的数据,只需要秒级,而且恢复时间和数据库大小无关。 +闪回恢复功能是数据库恢复技术的一环,可以有选择性的撤销一个已提交事务的影响,将数据从人为不正确的操作中进行恢复。在采用闪回技术之前,只能通过备份恢复、PITR 等手段找回已提交的数据库修改,恢复时长需要数分钟甚至数小时。采用闪回技术后,恢复已提交的数据库修改前的数据,只需要秒级,而且恢复时间和数据库大小无关。 ### 闪回查询 #### 背景信息 -闪回查询可以查询过去某个时间点表的某个snapshot数据,这一特性可用于查看和逻辑重建意外删除或更改的受损数据。闪回查询基于MVCC多版本机制,通过检索查询旧版本,获取指定老版本数据。 +闪回查询可以查询过去某个时间点表的某个 snapshot 数据,这一特性可用于查看和逻辑重建意外删除或更改的受损数据。闪回查询基于 MVCC 多版本机制,通过检索查询旧版本,获取指定老版本数据。 #### 语法 @@ -2581,16 +2584,16 @@ gs\_backup参数可以分为如下几类: |from_item [ NATURAL ] join_type from_item [ ON join_condition | USING ( join_column [, ...] ) ]} ``` -语法树中“TIMECAPSULE \{TIMESTAMP | CSN\} expression”为闪回功能新增表达方式,其中TIMECAPSULE表示使用闪回功能,TIMESTAMP以及CSN表示闪回功能使用具体时间点信息或使用CSN(commit sequence number)信息。 +语法树中“TIMECAPSULE \{TIMESTAMP | CSN\} expression”为闪回功能新增表达方式,其中 TIMECAPSULE 表示使用闪回功能, TIMESTAMP 以及 CSN 表示闪回功能使用具体时间点信息或使用 CSN(commit sequence number)信息。 #### 参数说明 - TIMESTAMP - - 指要查询某个表在TIMESTAMP这个时间点上的数据,TIMESTAMP指一个具体的历史时间。 + - 指要查询某个表在 TIMESTAMP 这个时间点上的数据, TIMESTAMP 指一个具体的历史时间。 - CSN - - 指要查询整个数据库逻辑提交序下某个CSN点的数据,CSN指一个具体逻辑提交时间点,数据库中的CSN为写一致性点,每个CSN代表整个数据库的一个一致性点,查询某个CSN下的数据代表SQL查询数据库在该一致性点的相关数据。 + - 指要查询整个数据库逻辑提交序下某个 CSN 点的数据, CSN 指一个具体逻辑提交时间点,数据库中的 CSN 为写一致性点,每个 CSN 代表整个数据库的一个一致性点,查询某个 CSN 下的数据代表 SQL 查询数据库在该一致性点的相关数据。 #### 使用示例 @@ -2625,7 +2628,7 @@ gs\_backup参数可以分为如下几类: #### 背景信息 -闪回表可以将表恢复至特定时间点,当逻辑损坏仅限于一个或一组表,而不是整个数据库时,此特性可以快速恢复表的数据。闪回表基于MVCC多版本机制,通过删除指定时间点和该时间点之后的增量数据,并找回指定时间点和当前时间点删除的数据,实现表级数据还原。 +闪回表可以将表恢复至特定时间点,当逻辑损坏仅限于一个或一组表,而不是整个数据库时,此特性可以快速恢复表的数据。闪回表基于 MVCC 多版本机制,通过删除指定时间点和该时间点之后的增量数据,并找回指定时间点和当前时间点删除的数据,实现表级数据还原。 #### 语法 @@ -2644,13 +2647,13 @@ TIMECAPSULE TABLE t1 TO CSN 9617; #### 背景信息 -- 闪回DROP:可以恢复意外删除的表,从回收站(recycle bin)中恢复被删除的表及其附属结构如索引、表约束等。闪回drop是基于回收站机制,通过还原回收站中记录的表的物理文件,实现已drop表的恢复。 -- 闪回TRUNCATE:可以恢复误操作或意外被进行truncate的表,从回收站中恢复被truncate的表及索引的物理数据。闪回truncate基于回收站机制,通过还原回收站中记录的表的物理文件,实现已truncate表的恢复。 +- 闪回 DROP:可以恢复意外删除的表,从回收站(recycle bin)中恢复被删除的表及其附属结构如索引、表约束等。闪回 drop 是基于回收站机制,通过还原回收站中记录的表的物理文件,实现已 drop 表的恢复。 +- 闪回 TRUNCATE:可以恢复误操作或意外被进行 truncate 的表,从回收站中恢复被 truncate 的表及索引的物理数据。闪回 truncate 基于回收站机制,通过还原回收站中记录的表的物理文件,实现已 truncate 表的恢复。 #### 前提条件 -- 开启enable\_recyclebin参数,启用回收站。 -- recyclebin\_retention参数用于设置回收站对象保留时间,超过该时间的回收站对象将被自动清理。 +- 开启 `enable\_recyclebin` 参数,启用回收站。 +- `recyclebin\_retention` 参数用于设置回收站对象保留时间,超过该时间的回收站对象将被自动清理。 #### 相关语法 @@ -2694,7 +2697,7 @@ TIMECAPSULE TABLE t1 TO CSN 9617; #### 参数说明 - DROP/TRUNCATE TABLE table\_name PURGE - - 默认将表数据放入回收站中,PURGE直接清理。 + - 默认将表数据放入回收站中, PURGE 直接清理。 - PURGE RECYCLEBIN @@ -2707,15 +2710,15 @@ TIMECAPSULE TABLE t1 TO CSN 9617; 可以指定原始用户指定的表的名称,或对象删除时数据库分配的系统生成名称。 - - 回收站中系统生成的对象名称是唯一的。因此,如果指定系统生成名称,那么数据库检索指定的对象。使用“select \* from pg\_recyclebin;”语句查看回收站中的内容。 + - 回收站中系统生成的对象名称是唯一的。因此,如果指定系统生成名称,那么数据库检索指定的对象。使用 `select * from pg\recyclebin;` 语句查看回收站中的内容。 - 如果指定了用户指定的名称,且如果回收站中包含多个该名称的对象,然后数据库检索回收站中最近移动的对象。如果想要检索更早版本的表,你可以这样做: - 指定你想要检索的表的系统生成名称。 - - 执行TIMECAPSULE TABLE ... TO BEFORE DROP语句,直到你要检索的表。 + - 执行 `TIMECAPSULE TABLE ... TO BEFORE DROP` 语句,直到你要检索的表。 - - 恢复DROP表时,只恢复基表名,其他子对象名均保持回收站对象名。用户可根据需要,执行DDL命令手工调整子对象名。 - - 回收站对象不支持DML、DCL、DDL等写操作,不支持DQL查询操作(后续支持)。 + - 恢复 DROP 表时,只恢复基表名,其他子对象名均保持回收站对象名。用户可根据需要,执行 DDL 命令手工调整子对象名。 + - 回收站对象不支持 DML、DCL、DDL 等写操作,不支持 DQL 查询操作(后续支持)。 - **RENAME TO** @@ -2723,7 +2726,7 @@ TIMECAPSULE TABLE t1 TO CSN 9617; - **TO BEFORE TRUNCATE** - 闪回到TRUNCATE之前。 + 闪回到 TRUNCATE 之前。 #### 语法示例