From b4902003af9264c99b5968c680c2a9c08dd113b1 Mon Sep 17 00:00:00 2001 From: TinyBag Date: Fri, 27 Sep 2024 10:54:13 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=88=E5=B9=B6commit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...07\347\250\213\346\224\257\346\214\201.md" | 2 + ...73\350\276\221\345\244\215\345\210\266.md" | 14 +- .../docs/ToolandCommandReference/gs_dump.md | 374 ++++++++++-------- .../ToolandCommandReference/gs_dumpall.md | 158 +++++--- .../ToolandCommandReference/gs_restore.md | 170 ++++---- ...07\347\250\213\346\224\257\346\214\201.md" | 2 + .../docs/ToolandCommandReference/gs_dump.md | 28 +- .../ToolandCommandReference/gs_dumpall.md | 24 +- .../ToolandCommandReference/gs_restore.md | 19 + 9 files changed, 482 insertions(+), 309 deletions(-) diff --git "a/content/docs-lite/zh/docs/AboutopenGauss/\345\207\275\346\225\260\345\217\212\345\255\230\345\202\250\350\277\207\347\250\213\346\224\257\346\214\201.md" "b/content/docs-lite/zh/docs/AboutopenGauss/\345\207\275\346\225\260\345\217\212\345\255\230\345\202\250\350\277\207\347\250\213\346\224\257\346\214\201.md" index c77d70240..182ed13c6 100644 --- "a/content/docs-lite/zh/docs/AboutopenGauss/\345\207\275\346\225\260\345\217\212\345\255\230\345\202\250\350\277\207\347\250\213\346\224\257\346\214\201.md" +++ "b/content/docs-lite/zh/docs/AboutopenGauss/\345\207\275\346\225\260\345\217\212\345\255\230\345\202\250\350\277\207\347\250\213\346\224\257\346\214\201.md" @@ -30,6 +30,8 @@ openGauss支持SQL标准中的函数及存储过程,其中存储过程兼容 支持管道函数。 +支持在包package、匿名块、存储过程、函数中使用record类型创建一个游标的type类型。 + ## 特性约束 不支持嵌套数组的数组类型成员直接调用集合函数。 diff --git "a/content/docs-lite/zh/docs/AboutopenGauss/\351\200\273\350\276\221\345\244\215\345\210\266.md" "b/content/docs-lite/zh/docs/AboutopenGauss/\351\200\273\350\276\221\345\244\215\345\210\266.md" index d8541fa89..89b011989 100644 --- "a/content/docs-lite/zh/docs/AboutopenGauss/\351\200\273\350\276\221\345\244\215\345\210\266.md" +++ "b/content/docs-lite/zh/docs/AboutopenGauss/\351\200\273\350\276\221\345\244\215\345\210\266.md" @@ -21,8 +21,18 @@ DN通过物理日志反解析为逻辑日志,DRS等逻辑复制工具从DN抽 - openGauss逻辑解码新增全量+增量抽取日志的方案。 - openGauss逻辑解码新增备机支持逻辑解码。 - openGauss 6.0.0-RC1逻辑复制支持如下DDL操作: - - CREATE/DROP TABLE|TABLE PARTITION - - CREATE/DROP INDEX + - CREATE/DROP/ALTER/TRUNCATE/RENAME TABLE | TABLE PARTITION | TABLE SUBPARTITION + - CREATE/ALTER/DROP INDEX + - CREATE/ALTER/DROP VIEW + - CREATE/ALTER/DROP/REFRESH [INCREMENTAL] MATERIALIZED VIEW + - CREATE/ALTER/DROP TYPE + - CREATE/ALTER/DROP FUNCTION + - CREATE/ALTER/DROP PROCEDURE + - CREATE/ALTER/DROP TRIGGER + - CREATE/DROP PACKAGE + - CREATE/DROP SCHEMA + - CREATE/DROP SEQUENCE + - COMMENT/GRANT/REVOKE ## 特性约束 diff --git a/content/docs-lite/zh/docs/ToolandCommandReference/gs_dump.md b/content/docs-lite/zh/docs/ToolandCommandReference/gs_dump.md index 06bec6400..24a4d8124 100644 --- a/content/docs-lite/zh/docs/ToolandCommandReference/gs_dump.md +++ b/content/docs-lite/zh/docs/ToolandCommandReference/gs_dump.md @@ -1,21 +1,25 @@ -# gs\_dump +# gs\_dump -## 背景信息 +## 背景信息 -gs\_dump是openGauss用于导出数据库相关信息的工具,用户可以自定义导出一个数据库或其中的对象(模式、表、视图等)。支持导出的数据库可以是默认数据库postgres,也可以是自定义数据库。 +gs\_dump是openGauss用于导出数据库相关信息的工具,用户可以自定义导出一个数据库或其中的对象(模式、表、视图等),回收站对象除外。支持导出的数据库可以是默认数据库postgres,也可以是自定义数据库。 -gs\_dump工具在进行数据导出时,其他用户可以访问数据库(读或写)。 +gs\_dump工具由安装openGauss数据库的操作系统用户执行。 + +gs\_dump工具在进行数据导出时,其他用户可以访问openGauss数据库(读或写)。 gs\_dump工具支持导出完整一致的数据。例如,T1时刻启动gs\_dump导出A数据库,那么导出数据结果将会是T1时刻A数据库的数据状态,T1时刻之后对A数据库的修改不会被导出。 -gs\_dump时生成列不会被转储。 +gs\_dump工具在进行数据导出时生成的列不会被转储。 -gs\_dump支持导出兼容v1数据库的文本格式文件。 +gs\_dump支持导出兼容v1版本数据库的文本格式文件。 gs\_dump支持将数据库信息导出至纯文本格式的SQL脚本文件或其他归档文件中。 -- 纯文本格式的SQL脚本文件:包含将数据库恢复为其保存时的状态所需的SQL语句。通过[gsql](gsql.md)运行该SQL脚本文件,可以恢复数据库。即使在其他主机和其他数据库产品上,只要对SQL脚本文件稍作修改,也可以用来重建数据库。 -- 归档格式文件:包含将数据库恢复为其保存时的状态所需的数据,可以是tar格式、目录归档格式或自定义归档格式,详见[表1](#zh-cn_topic_0058967678_t17db29a12e7342cfbf02b2f6e50ff1a5)。 +工具运行产生的日志位于$GAUSSLOG/bin/gs\_dump目录下,每个日志最大16MB,最多保留50个。如果环境变量GAUSSLOG没有配置,则不会产生日志文件。 + +- 纯文本格式的SQL脚本文件:包含将数据库恢复为其保存时的状态所需的SQL语句。通过gsql运行该SQL脚本文件,可以恢复数据库。即使在其他主机和其他数据库产品上,只要对SQL脚本文件稍作修改,也可以用来重建数据库。 +- 归档格式文件:包含将数据库恢复为其保存时的状态所需的数据,可以是tar格式、目录归档格式或自定义归档格式,详见[表1](#zh-cn_topic_0237152335_zh-cn_topic_0058967678_t17db29a12e7342cfbf02b2f6e50ff1a5)。该导出结果必须与[gs\_restore](gs_restore.md)配合使用来恢复数据库,gs\_restore工具在导入时,系统允许用户选择需要导入的内容,甚至可以在导入之前对等待导入的内容进行排序。 gs\_dump工具支持MySQL兼容性。(仅限于3.0.0,3.1.0,3.1.1的MySQL兼容性需求) @@ -26,108 +30,112 @@ gs\_dump工具支持使用过程中打印进度。首先在对数据库的全局 >- 导出物化视图时,不支持导出物化视图中的数据。 >- 临时表不支持导入导出。 -## 主要功能 +## 主要功能 -gs\_dump可以创建四种不同的导出文件格式,通过**\[**-F或者--format=**\]**选项指定,具体如[表1](#zh-cn_topic_0058967678_t17db29a12e7342cfbf02b2f6e50ff1a5)所示。 +gs\_dump可以创建四种不同的导出文件格式,通过“-F”或者“--format=”选项指定,具体如[表1](#zh-cn_topic_0237152335_zh-cn_topic_0058967678_t17db29a12e7342cfbf02b2f6e50ff1a5)所示。 **表 1** 导出文件格式 - -

格式名称

+ + - - - - - - - - - - - - - - - - - - - - - -

格式名称

-F的参数值

+

-F的参数值

说明

+

说明

建议

+

建议

对应导入工具

+

对应导入工具

纯文本格式

+

纯文本格式

p

+

p

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

+

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

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

+

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

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

+

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

自定义归档格式

+

自定义归档格式

c

+

c

一种二进制文件。支持从导出文件中恢复所有或所选数据库对象。

+

一种二进制文件。支持从导出文件中恢复所有或所选数据库对象。

中型或大型数据库,推荐自定义归档格式。

+

中型或大型数据库,推荐自定义归档格式。

使用gs_restore可以选择要从自定义归档/目录归档/tar归档导出文件中导入相应的数据库对象。

+

使用gs_restore可以选择要从自定义归档/目录归档/tar归档导出文件中导入相应的数据库对象。

目录归档格式

+

目录归档格式

d

+

d

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

+

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

-

+

-

tar归档格式

+

tar归档格式

t

+

t

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

+

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

-

+

-

->![](public_sys-resources/icon-note.gif) **说明:** ->可以使用gs\_dump程序将文件压缩为目录归档或自定义归档导出文件,减少导出文件的大小。生成目录归档或自定义归档导出文件时,默认进行中等级别的压缩。gs\_dump程序无法压缩已归档导出文件。 +![](public_sys-resources/icon-note.png) **说明:** +可以使用gs\_dump程序将文件压缩为目录归档或自定义归档导出文件,减少导出文件的大小。生成目录归档或自定义归档导出文件时,默认进行中等级别的压缩。gs\_dump程序无法压缩已归档导出文件。 + +## 注意事项 -## 注意事项 +- gs_dump仅用于主库(Primary),不支持导出备库(Standby)和级联备(Cascade Standby)的数据。 -- gs_dump仅用于主库(Primary),不支持导出备库(Standby)和级联备(Cascade Standby)的数据。 -- 禁止修改-F c/d/t 格式导出的文件和内容,否则可能无法恢复成功。对于-F p 格式导出的文件,如有需要,可根据需要谨慎编辑导出文件。 -- 为了保证数据一致性和完整性,gs\_dump会对需要转储的表设置共享锁。如果表在别的事务中设置了共享锁,gs\_dump会等待锁释放后锁定表。如果无法在指定时间内锁定某个表,转储会失败。用户可以通过指定--lock-wait-timeout选项,自定义等待锁超时时间。 -- 当数据库有时序表时暂时不支持使用gs\_dump进行导出。 -- 不支持加密导出存储过程和函数。 +- 禁止修改-F c/d/t 格式导出的文件和内容,否则可能无法恢复成功。对于-F p 格式导出的文件,如有需要,可根据需要谨慎编辑导出文件。 -## 语法 +- 为了保证数据一致性和完整性,gs\_dump会对需要转储的表设置共享锁。如果表在别的事务中设置了共享锁,gs\_dump会等待锁释放后锁定表。如果无法在指定时间内锁定某个表,转储会失败。用户可以通过指定--lock-wait-timeout选项,自定义等待锁超时时间。 +- 不支持加密导出存储过程和函数。 + +## 语法 ``` gs_dump [OPTION]... [DBNAME] ``` ->![](public_sys-resources/icon-note.gif) **说明:** ->“dbname”前面不需要加短或长选项。“dbname”指定要连接的数据库。 ->例如: ->不需要-d,直接指定“dbname”。 ->``` ->gs_dump -p port_number postgres -f dump1.sql ->``` ->或者 ->``` ->export PGDATABASE=postgres ->``` ->``` -> gs_dump -p port_number -f dump1.sql ->``` ->环境变量:PGDATABASE - -## 参数说明 +![](public_sys-resources/icon-note.png) **说明:** +“DBNAME”前面不需要加短或长选项。“DBNAME”指定要连接的数据库。 +例如: +不需要-d,直接指定“DBNAME”。 + +``` +gs_dump -p port_number postgres -f dump1.sql +``` +或者 +``` +export PGDATABASE=postgres +``` +``` + gs_dump -p port_number -f dump1.sql +``` +环境变量: PGDATABASE + + + +## 参数说明 通用参数: - -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 @@ -157,7 +165,7 @@ gs_dump [OPTION]... [DBNAME] - 1表示压缩比最小,处理速度最快。 - 9表示压缩比最大,处理速度最慢。 - 针对自定义归档格式,该选项指定单个表数据片段的压缩,默认方式是以中等级别进行压缩。tar归档格式和纯文本格式目前不支持压缩。 + 针对自定义归档格式,该选项指定单个表数据片段的压缩,默认方式是以中等级别进行压缩。纯文本格式或tar归档格式目前不支持压缩。 - --lock-wait-timeout=TIMEOUT @@ -172,7 +180,7 @@ gs_dump [OPTION]... [DBNAME] - -a, --data-only - 只输出数据,不输出模式\(数据定义\)。转储表数据、大对象和序列值。 + 只输出数据,不输出模式(数据定义)。转储表数据、大对象和序列值。 - -b, --blobs @@ -182,11 +190,11 @@ gs_dump [OPTION]... [DBNAME] 在将创建数据库对象的指令输出到备份文件之前,先将清理(删除)数据库对象的指令输出到备份文件中。(如果目标数据库中没有任何对象,gs\_restore工具可能会输出一些提示性的错误信息) - 该选项只对文本格式有意义。针对归档格式,可以在调用gs\_restore时指定选项。 + 该选项只对文本格式有意义。针对归档格式,可以调用gs\_restore时指定选项。 - -C, --create - 备份文件以创建数据库和连接到创建的数据库的命令开始。(如果命令脚本是这种方式执行,无所谓在运行脚本之前连接的是哪个数据库。) + 备份文件以创建数据库和连接到创建的数据库的命令开始。(如果命令脚本是这种方式执行,可以先指定任意数据库用于执行创建数据库的命令,数据不会恢复到指定的数据库中,而是恢复到创建的数据库中。) 该选项只对文本格式有意义。针对归档格式,可以在调用gs\_restore时指定选项。 @@ -198,9 +206,11 @@ gs_dump [OPTION]... [DBNAME] 只转储与模式名称匹配的模式,此选项包括模式本身和所有它包含的对象。如果该选项没有指定,所有在目标数据库中的非系统模式将会被转储。写入多个-n选项来选择多个模式。此外,根据gsql的\\d命令所使用的相同规则,模式参数可被理解成一个pattern,所以多个模式也可以通过在该pattern中写入通配符来选择。使用通配符时,注意给pattern打引号,防止shell扩展通配符。 - >![](public_sys-resources/icon-note.gif) **说明:** - >- 当-n已指定时,gs\_dump不会转储已选模式所附着的任何其他数据库对象。因此,无法保证某个指定模式的转储结果能够自行成功地储存到一个空数据库中。 - >- 当-n指定时,非模式对象不会被转储。 + ![](public_sys-resources/icon-note.png) **说明:** + + - 当-n已指定时,gs\_dump不会转储已选模式所附着的任何其他数据库对象。因此,无法保证某个指定模式的转储结果能够自行成功地储存到一个空数据库中。 + + - 当-n指定时,非模式对象不会被转储。 转储支持多个模式的转储。多次输入-n schemaname转储多个模式。 @@ -214,7 +224,7 @@ gs_dump [OPTION]... [DBNAME] - -N, --exclude-schema=SCHEMA - 不转储任何与模式pattern匹配的模式。Pattern将参照针对-n的相同规则来理解。可以通过输入多次-N,不转储与任何pattern匹配的模式。 + 不转储任何与模式pattern匹配的模式。pattern将参照针对-n的相同规则来理解。可以通过输入多次-N,不转储与任何pattern匹配的模式。 当同时输入-n和-N时,会转储与至少一个-n选项匹配、与-N选项不匹配的模式。如果有-N没有-n,则不转储常规转储中与-N匹配的模式。 @@ -232,7 +242,7 @@ gs_dump [OPTION]... [DBNAME] - -o, --oids - 转储每个表的对象标识符(OIDs),作为表的一部分数据。该选项用于应用以某种方式(例如:外键约束方式)参照了OID列的情况。如果不是以上这种情况,请勿使用该选项。 + 转储每个表的对象标识符(OIDs),作为表的一部分数据。该选项用于应用以某种方式参照了OID列的情况。如果不是以上这种情况,请勿使用该选项。 - -O, --no-owner @@ -240,7 +250,7 @@ gs_dump [OPTION]... [DBNAME] 该选项只对文本格式有意义。针对归档格式,可以在调用gs\_restore时指定选项。 -- -s, --schema-only +- -s, --schema-only 只转储对象定义(模式),而非数据。 @@ -256,14 +266,21 @@ gs_dump [OPTION]... [DBNAME] 当使用-t时,-n和-N没有任何效应,这是因为由-t选择的表的转储不受那些选项的影响。 - >![](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 tablename不会导出表上的触发器信息。 + ![](public_sys-resources/icon-note.png) **说明:** + - -t参数选项个数必须小于等于100。 + + - 如果-t参数选项个数大于100,建议使用参数--include-table-file来替换。 + + - 当-t已指定时,gs\_dump不会转储已选表所附着的任何其他数据库对象。因此,无法保证某个指定表的转储结果能够自行成功地储存到一个空数据库中。 + + - -t tablename只转储在默认搜索路径中可见的表。-t \*.tablename转储数据库下所有模式下的tablename表。-t schema.table转储特定模式中的表。 + + - -t tablename不会导出表上的触发器信息。 + + - 对于表名中包含大写字母的表,在使用-t参数指定导出时需对表名添加\"来导出。如对于表"abC",导出需指定-t \"abC\";如对于表schema."abC",导出需指定-t schema.\"abC\"。 + + - >- 对于表名中包含大写字母的表,在使用-t参数指定导出时需对表名添加\"来导出。如对于表"abC",导出需指定-t \"abC\";如对于表schema."abC",导出需指定-t schema.\"abC\"。 例如: @@ -279,7 +296,7 @@ gs_dump [OPTION]... [DBNAME] - -T, --exclude-table=TABLE - 不转储的表(或视图、或序列、或外表)对象列表,可以使用多个-t选项来选择多个表,也可以使用通配符指定多个表对象。 + 不转储的表(或视图、或序列、或外表)对象列表,可以使用多个-T选项来选择多个表,也可以使用通配符指定多个表对象。 当同时输入-t和-T时,会转储在-t列表中,而不在-T列表中的表对象。 @@ -295,33 +312,33 @@ gs_dump [OPTION]... [DBNAME] 指定不需要dump的表文件。 - >![](public_sys-resources/icon-note.gif) **说明:** - >同--include-table-file,其内容格式如下: - >schema1.table1 - >schema2.table2 - >...... + ![](public_sys-resources/icon-note.png) **说明:** + 同--include-table-file,其内容格式如下: + schema1.table1 + schema2.table2 + ...... -- -x, --no-privileges|--no-acl +- -x, --no-privileges|--no-acl - 防止转储访问权限(授权/撤销命令)。 + 防止转储访问权限(授权/撤销命令)。 -- -q, --target +- -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时可能报错。 -- -g, --exclude-guc +-g --exclude-guc - 该参数为扩展预留接口,不建议使用。 + 该参数为扩展预留接口,不建议使用。 -- --exclude-function +- --exclude-function - 不导出函数和存储过程。 + 不导出函数和存储过程。 -- --exclude-with +- --exclude-with - 导出的表定义,末尾不添加WITH\(orientation=row,compression=on)这样的描述。 + 导出的表定义,末尾不添加WITH\(orientation=row,compression=on)这样的描述。 - --binary-upgrade @@ -331,7 +348,7 @@ gs_dump [OPTION]... [DBNAME] 该参数为扩展预留接口,不建议使用。 -- --column-inserts/--attribute-inserts +- --column-inserts|--attribute-inserts 以INSERT命令带列名(INSERT INTO表(列、…)值…)方式导出数据。这会导致恢复缓慢。但是由于该选项会针对每行生成一个独立分开的命令,所以在重新加载某行时出现的错误只会导致那行丢失,而非整个表内容。 @@ -339,10 +356,6 @@ gs_dump [OPTION]... [DBNAME] 该选项将禁止在函数体前使用美元符号$,并强制使用SQL标准字符串语法对其进行引用。 -- --include-alter-table - - dump后的表删除列。 - - --disable-triggers 该参数为扩展预留接口,不建议使用。 @@ -353,18 +366,30 @@ gs_dump [OPTION]... [DBNAME] 可多次输入--exclude-table-data来排除匹配任何pattern的表。当用户需要特定表的定义但不需要其中的数据时,这个选项很有帮助。 - 排除数据库中所有表的数据,参见[--schema-only](#zh-cn_topic_0059777770_l35ed3d5a093e42ab8fc945dd3ca80ecd)。 + 排除数据库中所有表的数据,参见[--schema-only](#zh-cn_topic_0237152335_zh-cn_topic_0059777770_l35ed3d5a093e42ab8fc945dd3ca80ecd)。 - --inserts - 发出INSERT命令(而非COPY命令)时转储数据。这会导致恢复缓慢。 + 发出INSERT命令(而非COPY命令)转储数据。这会导致恢复缓慢。 + + 但是由于该选项会针对每行生成一个独立分开的命令,所以在重新加载某行时出现的错误只会导致那行丢失,而非整个表内容。注意:如果重排列顺序,可能会导致整个恢复失败。列顺序改变时,--column-inserts选项不受影响,虽然会更慢。 - 但是由于该选项会针对每行生成一个独立分开的命令,所以在重新加载某行时出现的错误只会导致那行丢失,而非整个表内容。注意如果重排列顺序,可能会导致恢复整个失败。列顺序改变时,--column-inserts选项不受影响,虽然会更慢。 +- --no-publications + + 不转储发布。 - --no-security-labels 该参数为扩展预留接口,不建议使用。 +- --no-subscriptions + + 不转储订阅。 + + ![](public_sys-resources/icon-note.png) **说明:** + + - 当不指定该选项时会转储订阅,但是转储订阅需要有管理员用户权限,所以如果是以普通用户执行gs_dump时,如果不指定该选项,会提示“WARNING: subscriptions not dumped because current user is not a superuser”。 + - --no-tablespaces 不输出选择表空间的命令。使用该选项,无论默认表空间是哪个,在恢复过程中所有对象都会被创建。 @@ -379,13 +404,17 @@ gs_dump [OPTION]... [DBNAME] 该参数仅供软件间接口调用。 +- --include-alter-table + + 转储表删除列。该选项会记录列的删除。 + - --quote-all-identifiers 强制对所有标识符加引号。为了向后续版本迁移,且其中可能涉及引入额外关键词,在转储相应数据库时该选项会有帮助。此选项在兼容B库中强制开启。 - --section=SECTION - 指定已转储的名称区段(pre-data、data、和post-data)。 + 指定已转储的名称区段(pre-data、data和post-data)。 - --serializable-deferrable @@ -399,25 +428,38 @@ gs_dump [OPTION]... [DBNAME] 输出符合SQL标准的SET SESSION AUTHORIZATION命令而不是ALTER OWNER命令来确定对象所有权。这样令转储更加符合标准,但是如果转储文件中的对象的历史有些问题,那么可能不能正确恢复。并且,使用SET SESSION AUTHORIZATION的转储需要数据库系统管理员的权限才能转储成功,而ALTER OWNER需要的权限则低得多。 -- --with-encryption=AES128 +- --with-encryption=AES128/SM4 - 指定转储数据需用AES128进行加密。 + 指定转储数据使用的加密方式,支持AES128和SM4算法。加密导出仅支持导出格式为纯文本(-F p)。 + + ![](public_sys-resources/icon-note.png) **说明:** + + - 该选项必须与--with-key和--with-salt同时使用。 + + - AES128加密算法使用的是CBC模式,SM4加密算法使用的是CTR模式。 + + - 当使用三未信安的加密算法时,必须使用--with-userpin指定创建密钥时的KMS用户信息。 - --with-key=KEY - AES128密钥规则如下: + 密钥名称或者密钥索引。 + + AES128密钥长度规则如下: + + - 密钥长度为8~16字符。 + - 至少包含大写字母(A-Z)、小写字母(a-z)、数字(0-9)、非字母数字字符(限定为~!@#$%^&*()-_=+\|[]{};:,<.>/?)四类字符中的三类字符。 + + ![](public_sys-resources/icon-note.png) **说明:** - - 密钥长度为8\~16个字符。 - - 至少包含大写字母(A-Z),小写字母(a-z),数字(0-9),非字母数字字符(限定为\~!@\#$%^&\*\(\)-\_=+\\|\[\{\}\];:,<.\>/?)四类字符中的三类字符。 + - 使用gs_dump工具进行加密导出时,仅支持plain格式导出。通过-F plain导出的数据,需要通过gsql工具进行导入,且如果以加密方式导入,在通过gsql导入时,需要指定--with-key参数。 - >![](public_sys-resources/icon-note.gif) **说明:** - >不支持加密导出存储过程和函数。 + - 不支持加密导出存储过程和函数。 - --with-salt=RANDVALUES - gs\_dumpall使用此参数传递随机值。 + gs_dumpall使用此参数传递随机值。 -- --include-extensions +- --include-Extension 在转储中包含扩展。 @@ -435,7 +477,7 @@ gs_dump [OPTION]... [DBNAME] - --dont-overwrite-file - 文本、tar、以及自定义格式情况下会重写现有文件。这对目录格式不适用。 + 文本、tar以及自定义格式情况下会重写现有文件。这对目录格式不适用。 例如: @@ -448,17 +490,21 @@ gs_dump [OPTION]... [DBNAME] ``` ->![](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一起使用。 ->- --with-encryption=AES128仅支持-F p/plain。 ->- --with-key=KEY仅支持-F p/plain。 ->- --with-salt=RANDVALUES由gs\_dumpall调用,不需要用户手动输入。 +![](public_sys-resources/icon-note.png) **说明:** + +- -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一起使用。 连接参数: @@ -466,7 +512,7 @@ gs_dump [OPTION]... [DBNAME] 指定主机名称。如果数值以斜杠开头,则被用作到Unix域套接字的路径。缺省从PGHOST环境变量中获取(如果已设置),否则,尝试一个Unix域套接字连接。 - 该参数只针对数据库外,对数据库内本机只能用127.0.0.1。 + 该参数只针对openGauss外,对openGauss内本机只能用127.0.0.1。 例如:主机名 @@ -482,6 +528,8 @@ gs_dump [OPTION]... [DBNAME] 指定所连接主机的用户名。 + 不指定连接主机的用户名时,用户默认系统管理员。 + 环境变量:PGUSER - -w, --no-password @@ -501,9 +549,9 @@ gs_dump [OPTION]... [DBNAME] 指定角色名的密码。 -## 说明 +## 说明 -如果某数据库有任何本地数据要添加到template1数据库,请谨慎将gs\_dump的输出恢复到一个真正的空数据库中,否则可能会因为被添加对象的定义被复制,出现错误。要创建一个无本地添加的空数据库,需从template0而非template1复制,例如: +如果openGauss有任何本地数据要添加到template1数据库,请谨慎将gs\_dump的输出恢复到一个真正的空数据库中,否则可能会因为被添加对象的定义被复制,出现错误。要创建一个无本地添加的空数据库,需从template0而非template1复制,例如: ``` CREATE DATABASE foo WITH TEMPLATE template0; @@ -511,22 +559,21 @@ CREATE DATABASE foo WITH TEMPLATE template0; tar归档形式的文件大小不得超过8GB(tar文件格式的固有限制)。tar文档整体大小和任何其他输出格式没有限制,操作系统可能对此有要求。 -由gs\_dump生成的转储文件不包含优化程序用来做执行计划决定的统计数据。因此,建议从某转储文件恢复之后运行ANALYZE以确保最佳效果。转储文件不包含任何ALTER DATABASE…SET命令,这些设置由gs\_dumpall转储,还有数据库用户和其他完成安装设置。 +由gs\_dump生成的转储文件不包含优化程序用来做执行计划决定的统计数据。因此,最好从某转储文件恢复之后运行ANALYZE以确保最佳效果。转储文件不包含任何ALTER DATABASE…SET命令,这些设置由gs\_dumpall转储,还有数据库用户和其他完成安装设置。 -## 示例 +## 示例 使用gs\_dump转储数据库为SQL文本文件或其它格式的操作,如下所示。 -示例中“backup/MPPDB\_backup.sql”表示导出的文件,其中backup表示相对于当前目录的相对目录;“37300”表示数据库服务器端口;“postgres”表示要访问的数据库名。 +示例中“Bigdata@123”表示数据库用户密码;“backup/MPPDB\_backup.sql”表示导出的文件,其中backup表示相对于当前目录的相对目录;“37300”表示数据库服务器端口;“postgres”表示要访问的数据库名。 ->![](public_sys-resources/icon-note.gif) **说明:** ->导出操作时,请确保该目录存在并且当前的操作系统用户对其具有读写权限。 +![](public_sys-resources/icon-note.png) **说明:** +导出操作时,请确保该目录存在并且当前的操作系统用户对其具有读写权限。 示例1:执行gs\_dump,导出postgres数据库全量信息,导出的MPPDB\_backup.sql文件格式为纯文本格式。 ``` -gs_dump -U omm -f backup/MPPDB_backup.sql -p 37300 postgres -F p - +gs_dump -U omm -W Bigdata@123 -f backup/MPPDB_backup.sql -p 37300 postgres -F p gs_dump[port='37300'][postgres][2018-06-27 09:49:17]: The total objects number is 356. gs_dump[port='37300'][postgres][2018-06-27 09:49:17]: [100.00%] 356 objects have been dumped. gs_dump[port='37300'][postgres][2018-06-27 09:49:17]: dump database postgres successfully @@ -538,8 +585,7 @@ gs_dump[port='37300'][postgres][2018-06-27 09:49:17]: total time: 1274 ms 示例2:执行gs\_dump,导出postgres数据库全量信息,导出的MPPDB\_backup.tar文件格式为tar格式。 ``` -gs_dump -U omm -f backup/MPPDB_backup.tar -p 37300 postgres -F t - +gs_dump -U omm -W Bigdata@123 -f backup/MPPDB_backup.tar -p 37300 postgres -F t gs_dump[port='37300'][postgres][2018-06-27 10:02:24]: The total objects number is 1369. gs_dump[port='37300'][postgres][2018-06-27 10:02:53]: [100.00%] 1369 objects have been dumped. gs_dump[port='37300'][postgres][2018-06-27 10:02:53]: dump database postgres successfully @@ -549,8 +595,7 @@ gs_dump[port='37300'][postgres][2018-06-27 10:02:53]: total time: 50086 ms 示例3:执行gs\_dump,导出postgres数据库全量信息,导出的MPPDB\_backup.dmp文件格式为自定义归档格式。 ``` -gs_dump -U omm -f backup/MPPDB_backup.dmp -p 37300 postgres -F c - +gs_dump -U omm -W Bigdata@123 -f backup/MPPDB_backup.dmp -p 37300 postgres -F c gs_dump[port='37300'][postgres][2018-06-27 10:05:40]: The total objects number is 1369. gs_dump[port='37300'][postgres][2018-06-27 10:06:03]: [100.00%] 1369 objects have been dumped. gs_dump[port='37300'][postgres][2018-06-27 10:06:03]: dump database postgres successfully @@ -560,8 +605,7 @@ gs_dump[port='37300'][postgres][2018-06-27 10:06:03]: total time: 36620 ms 示例4:执行gs\_dump,导出postgres数据库全量信息,导出的MPPDB\_backup文件格式为目录格式。 ``` -gs_dump -U omm -f backup/MPPDB_backup -p 37300 postgres -F d - +gs_dump -U omm -W Bigdata@123 -f backup/MPPDB_backup -p 37300 postgres -F d gs_dump[port='37300'][postgres][2018-06-27 10:16:04]: The total objects number is 1369. gs_dump[port='37300'][postgres][2018-06-27 10:16:23]: [100.00%] 1369 objects have been dumped. gs_dump[port='37300'][postgres][2018-06-27 10:16:23]: dump database postgres successfully @@ -571,8 +615,7 @@ 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文件格式为纯文本格式。 ``` -gs_dump -U omm -p 37300 postgres --exclude-table-file=/home/MPPDB_temp.sql -f backup/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 gs_dump[port='37300'][postgres][2018-06-27 10:37:01]: The total objects number is 1367. gs_dump[port='37300'][postgres][2018-06-27 10:37:22]: [100.00%] 1367 objects have been dumped. gs_dump[port='37300'][postgres][2018-06-27 10:37:22]: dump database postgres successfully @@ -581,36 +624,35 @@ gs_dump[port='37300'][postgres][2018-06-27 10:37:22]: total time: 37017 ms 示例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 - -gs_dump[port='37300'][postgres][2018-06-15 14:12:54]: The total objects number is 331. -gs_dump[port='37300'][postgres][2018-06-15 14:12:54]: [100.00%] 331 objects have been dumped. -gs_dump[port='37300'][postgres][2018-06-15 14:12:54]: dump database postgres successfully -gs_dump[port='37300'][postgres][2018-06-15 14:12:54]: total time: 327 ms -``` + ``` + gs_dump -s -p 37300 postgres -t PUBLIC.testtable --include-depend-objs --exclude-self -f backup/MPPDB_backup.sql -F p + gs_dump[port='37300'][postgres][2018-06-15 14:12:54]: The total objects number is 331. + gs_dump[port='37300'][postgres][2018-06-15 14:12:54]: [100.00%] 331 objects have been dumped. + gs_dump[port='37300'][postgres][2018-06-15 14:12:54]: dump database postgres successfully + 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;" -``` + ``` + 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 -``` + ``` + gsql -p 37300 postgres -r -f backup/MPPDB_backup.sql + ``` -## 相关命令 -[gs\_dumpall](gs_dumpall.md) +## 相关命令 +[gs\_dumpall](gs_dumpall.md),[gs\_restore](gs_restore.md) diff --git a/content/docs-lite/zh/docs/ToolandCommandReference/gs_dumpall.md b/content/docs-lite/zh/docs/ToolandCommandReference/gs_dumpall.md index 0fa447f7d..59f00491f 100644 --- a/content/docs-lite/zh/docs/ToolandCommandReference/gs_dumpall.md +++ b/content/docs-lite/zh/docs/ToolandCommandReference/gs_dumpall.md @@ -1,47 +1,50 @@ -# gs\_dumpall +# gs\_dumpall -## 背景信息 +## 背景信息 -gs\_dumpall是openGauss用于导出所有数据库相关信息工具,它可以导出数据库的所有数据,包括默认数据库postgres的数据、自定义数据库的数据、以及所有数据库公共的全局对象。 +gs\_dumpall是openGauss用于导出所有数据库相关信息工具,它可以导出openGauss数据库的所有数据,包括默认数据库postgres的数据、自定义数据库的数据以及openGauss所有数据库公共的全局对象。 -gs\_dumpall工具在进行数据导出时,其他用户可以访问数据库(读或写)。 +gs\_dumpall工具由操作系统用户omm执行。 -gs\_dumpall工具支持导出完整一致的数据。例如,T1时刻启动gs\_dumpall导出整个数据库,那么导出数据结果将会是T1时刻该数据库的数据状态,T1时刻之后对数据库的修改不会被导出。 +gs\_dumpall工具在进行数据导出时,其他用户可以访问openGauss数据库(读或写)。 -gs\_dumpall时生成列不会被转储。 +gs\_dumpall工具支持导出完整一致的数据。例如,T1时刻启动gs\_dumpall导出openGauss数据库,那么导出数据结果将会是T1时刻该openGauss数据库的数据状态,T1时刻之后对openGauss的修改不会被导出。 -gs\_dumpall在导出所有数据库时分为两部分: +gs\_dumpall工具在进行数据导出时生成的列不会被转储。 -- gs\_dumpall自身对所有数据库公共的全局对象进行导出,包括有关数据库用户和组,表空间以及属性(例如,适用于数据库整体的访问权限)信息。 -- gs\_dumpall通过调用gs\_dump来完成数据库中各数据库的SQL脚本文件导出,该脚本文件包含将数据库恢复为其保存时的状态所需要的全部SQL语句。 +gs\_dumpall在导出openGauss所有数据库时分为两部分: -以上两部分导出的结果为纯文本格式的SQL脚本文件,使用[gsql](gsql.md)运行该脚本文件可以恢复数据库。 +- gs\_dumpall自身对所有数据库公共的全局对象进行导出,包括有关数据库用户和组、表空间以及属性(例如,适用于数据库整体的访问权限)信息。 +- gs\_dumpall通过调用gs\_dump来完成openGauss中各数据库的SQL脚本文件导出,该脚本文件包含将数据库恢复为其保存时的状态所需要的全部SQL语句。 + +以上两部分导出的结果为纯文本格式的SQL脚本文件,使用gsql运行该脚本文件可以恢复openGauss数据库。 gs\_dumpall工具支持MySQL兼容性。(仅限于3.0.0,3.1.0,3.1.1的MySQL兼容性需求) gs\_dumpall工具支持使用过程中打印进度。会依次对每个数据库进行转存,每个数据库的流程中都与使用gs\_dump时的进度打印相同。首先在对数据库的全局扫描阶段会打印扫描流程进行到具体哪一步。在转存数据阶段会根据已经完成的对象数比上总对象数打印进度。 +工具运行产生的日志位于$GAUSSLOG/bin/gs\_dumpall目录下,每个日志最大16MB,最多保留50个。如果环境变量GAUSSLOG没有配置,则不会产生日志文件。 + >![](public_sys-resources/icon-notice.png) **须知:** >- show create procedure/function等show create语句的database collation和collation connection与数据库的lc_collate相同,由于InitSession会重新初始化lc_collate参数,lc_collate有时会被初始化为C,所以show create procedure/function等show create语句的database collation和collation connection这两个列的值不稳定。 >- 临时表不支持导入导出。 -## 注意事项 +## 注意事项 - gs_dumpall仅用于主库(Primary),不支持导出备库(Standby)和级联备(Cascade Standby)的数据。 - 禁止修改导出的文件和内容,否则可能无法恢复成功。 - 为了保证数据一致性和完整性,gs\_dumpall会对需要转储的表设置共享锁。如果某张表在别的事务中设置了共享锁,gs\_dumpall会等待此表的锁释放后锁定此表。如果无法在指定时间内锁定某张表,转储会失败。用户可以通过指定--lock-wait-timeout选项,自定义等待锁超时时间。 -- 由于gs\_dumpall读取所有数据库中的表,因此必须以数据库管理员身份进行连接,才能导出完整文件。在使用gsql执行脚本文件导入时,同样需要管理员权限,以便添加用户和组,以及创建数据库。 -- 当数据库有时序表时暂时不支持使用gs\_dumpall进行导出。 +- 由于gs\_dumpall读取所有数据库中的表,因此必须以openGauss管理员身份进行连接,才能导出完整文件。在使用gsql执行脚本文件导入时,同样需要管理员权限,以便添加用户和组以及创建数据库。 -## 语法 +## 语法 ``` gs_dumpall [OPTION]... ``` -## 参数说明 +## 参数说明 -通用参数: +### 通用参数: - -f, --filename=FILENAME @@ -63,8 +66,7 @@ gs_dumpall [OPTION]... 显示gs\_dumpall命令行参数帮助,然后退出。 - -转储参数: +### 转储参数: - -a, --data-only @@ -80,7 +82,7 @@ gs_dumpall [OPTION]... - -o, --oids - 转储每个表的对象标识符(OIDs),作为表的一部分数据。该选项用于应用以某种方式(例如:外键约束方式)参照了OID列的情况。如果不是以上这种情况,请勿使用该选项。 + 转储每个表的对象标识符(OIDs),作为表的一部分数据。该选项用于应用以某种方式参照了OID列的情况。如果不是以上这种情况,请勿使用该选项。 - -O, --no-owner @@ -106,7 +108,7 @@ gs_dumpall [OPTION]... 防止转储访问权限(授权/撤销命令)。 -- --column-inserts/--attribute-inserts +- --column-inserts|--attribute-inserts 以INSERT命令带列名(INSERT INTO表(列、…)值…)方式导出数据。这会导致恢复缓慢。但是由于该选项会针对每行生成一个独立分开的命令,所以在重新加载某行时出现的错误只会导致那行丢失,而非整个表内容。 @@ -120,12 +122,26 @@ gs_dumpall [OPTION]... - --inserts - 发出INSERT命令(而非COPY命令)时转储数据。这会导致恢复缓慢。注意如果重排列顺序,可能会导致恢复整个失败。--column-inserts选项更加安全,虽然可能更慢些。 + 发出INSERT命令(而非COPY命令)转储数据。这会导致恢复缓慢。注意:如果重排列顺序,可能会导致恢复整个失败。--column-inserts选项更加安全,虽然可能更慢些。 + +- --no-publications + + 不转储发布。 - --no-security-labels 该参数为扩展预留接口,不建议使用。 +- --no-subscriptions + + 不转储订阅。 + + + + > ![](public_sys-resources/icon-note.png) **说明:** + > + > 当不指定该选项时会转储订阅,但是转储订阅需要有管理员用户权限,所以如果是以普通用户执行gs_dump时,如果不指定该选项,会提示“WARNING: subscriptions not dumped because current user is not a superuser”。 + - --no-tablespaces 请勿输出创建表空间的命令,也请勿针对对象选择表空间。使用该选项,无论默认表空间是哪个,在恢复过程中所有对象都会被创建。 @@ -150,32 +166,46 @@ gs_dumpall [OPTION]... 输出符合SQL标准的SET SESSION AUTHORIZATION命令而不是ALTER OWNER命令来确定对象所有权。这样令转储更加符合标准,但是如果转储文件中的对象的历史有些问题,那么可能不能正确恢复。并且,使用SET SESSION AUTHORIZATION的转储需要数据库系统管理员的权限才能转储成功,而ALTER OWNER需要的权限则低得多。 -- --with-encryption=AES128 +- --with-encryption=AES128/SWS-KMS-SM4/TAS-KMS-SM4 + + 指定转储数据使用的加密方式(算法)。支持AES128/SWS-KMS-SM4/TAS-KMS-SM4。 + + ![](public_sys-resources/icon-note.png) **说明:** + + - 该选项必须与--with-key同时使用。 + + - 当加密方式为SWS-KMS-SM4时,必须与--with-userpin同时使用。 + +- --with-key=KEY + + 密钥名称或者密钥索引。 - 指定转储数据需用AES128进行加密。 + - AES128密钥长度规则如下: -- --with-key=KEY + - 密钥长度为8~16字符。 + - 至少包含大写字母(A-Z)、小写字母(a-z)、数字(0-9)、非字母数字字符(限定为~!@#$%^&*()-_=+\|[]{};:,<.>/?)四类字符中的三类字符。 + - 加密算法为TAS-KMS-SM4时,--with-key指定的是江南天安KMS上创建的密钥索引,Vastbase限制其索引范围必须是1 ~ 2048。 + - 加密算法为SWS-KMS-SM4时,--with-key指定的是三未信安KMS上创建的密钥名称。 - AES128密钥规则如下: +- with-userpin=username:password - - 密钥长度为8\~16个字符。 - - 至少包含大写字母(A-Z),小写字母(a-z),数字(0-9),非字母数字字符(限定为\~!@\#$%^&\*\(\)-\_=+\\|\[\{\}\];:,<.\>/?)四类字符中的三类字符。 + 连接seckms加密服务器的username:password信息。 -- --include-extensions +- --include-Extension - 如果include-extensions参数被设置,将备份所有的CREATE EXTENSION语句。 + 如果--include-Extension参数被设置,将备份所有的CREATE Extension语句。 - --include-templatedb 转储过程中包含模板库。 -- --binary-upgrade +- --binary-upgrade - 该参数为扩展预留接口,不建议使用。 + 该参数为扩展预留接口,不建议使用。 -- --binary-upgrade-usermap="USER1=USER2" +- --binary-upgrade-usermap="USER1=USER2" - 该参数为扩展预留接口,不建议使用。 + 该参数为扩展预留接口,不建议使用。 - --non-lock-table @@ -188,31 +218,41 @@ gs_dumpall [OPTION]... - --parallel-jobs 指定备份进程并发数,取值范围为1\~1000。 - -- --pipeline + +- --pipeline 使用管道传输密码,禁止在终端使用。 ->![](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必须一起使用。 +![](public_sys-resources/icon-note.png) **说明:** + +- -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=HOSTNAME 指定主机的名称。如果取值是以斜线开头,它将用作Unix域套接字的目录。默认值取自PGHOST环境变量;如果没有设置,将启动某个Unix域套接字建立连接。 - 该参数只针对数据库外,对数据库内本机只能用127.0.0.1。 + 该参数只针对openGauss外,对openGauss内本机只能用127.0.0.1。 环境变量:PGHOST @@ -251,32 +291,32 @@ gs_dumpall [OPTION]... 指定具体角色用户的角色密码。 -## 说明 +## 说明 + +由于gs\_dumpall内部调用gs\_dump,所以一些诊断信息参见[gs\_dump](gs_dump.md)。 + +一旦恢复,最好在每个数据库上运行ANALYZE,优化程序提供有用的统计数据。 -- 由于gs\_dumpall内部调用gs\_dump,所以一些诊断信息参见[gs\_dump](gs_dump.md)。 -- 一旦恢复,建议在每个数据库上运行ANALYZE,优化程序提供有用的统计数据。 -- gs\_dumpall恢复前需要所有必要的表空间目录为空;否则,对于处在非默认位置的数据库,数据库创建会失败。 +gs\_dumpall恢复前需要所有必要的表空间目录为空;否则,对于处在非默认位置的数据库,数据库创建会失败。 -## 示例 +## 示例 -使用gs\_dumpall一次导出数据库的所有数据库。 +使用gs\_dumpall一次导出openGauss的所有数据库。 ->![](public_sys-resources/icon-note.gif) **说明:** +>![](public_sys-resources/icon-note.png) **说明:** >gs\_dumpall仅支持纯文本格式导出。所以只能使用gsql恢复gs\_dumpall导出的转储内容。 ``` gs_dumpall -f backup/bkp2.sql -p 37300 -Password: gs_dump[port='37300'][dbname='postgres'][2018-06-27 09:55:09]: The total objects number is 2371. gs_dump[port='37300'][dbname='postgres'][2018-06-27 09:55:35]: [100.00%] 2371 objects have been dumped. gs_dump[port='37300'][dbname='postgres'][2018-06-27 09:55:46]: dump database dbname='postgres' successfully gs_dump[port='37300'][dbname='postgres'][2018-06-27 09:55:46]: total time: 55567 ms gs_dumpall[port='37300'][2018-06-27 09:55:46]: dumpall operation successful gs_dumpall[port='37300'][2018-06-27 09:55:46]: total time: 56088 ms -其中:backup/bkp2.sql表示导出的文件,37300表示数据库服务器端口。 ``` -## 相关命令 +## 相关命令 -[gs\_dump](gs_dump.md) +[gs\_dump](gs_dump.md),[gs\_restore](gs_restore.md) diff --git a/content/docs-lite/zh/docs/ToolandCommandReference/gs_restore.md b/content/docs-lite/zh/docs/ToolandCommandReference/gs_restore.md index 6118acd20..c9fbf8204 100644 --- a/content/docs-lite/zh/docs/ToolandCommandReference/gs_restore.md +++ b/content/docs-lite/zh/docs/ToolandCommandReference/gs_restore.md @@ -1,13 +1,17 @@ -# gs\_restore +# gs\_restore -## 背景信息 +## 背景信息 -gs\_restore是openGauss提供的针对gs\_dump导出数据的导入工具。通过此工具可将gs\_dump导出生成的文件进行导入。 +gs\_restore是openGauss提供的针对gs\_dump导出数据的导入工具。通过此工具可将由gs\_dump生成的导出文件进行导入。 + +gs\_restore工具由操作系统用户omm执行。 gs\_restore工具支持MySQL兼容性。(仅限于3.0.0,3.1.0,3.1.1的MySQL兼容性需求) gs\_restore工具目前支持进度打印,会根据已经恢复的对象数比上需要恢复的总对象数打印进度。 +工具运行产生的日志位于$GAUSSLOG/bin/gs\_restore目录下,每个日志最大16MB,最多保留50个。如果环境变量GAUSSLOG没有配置,则不会产生日志文件。 + >![](public_sys-resources/icon-notice.png) **须知:** >- show create procedure/function等show create语句的database collation和collation connection与数据库的lc_collate相同,由于InitSession会重新初始化lc_collate参数,lc_collate有时会被初始化为C,所以show create procedure/function等show create语句的database collation和collation connection这两个列的值不稳定。 >- 临时表不支持导入导出。 @@ -23,20 +27,25 @@ gs\_restore工具目前支持进度打印,会根据已经恢复的对象数比 如果未指定导入数据库,则创建包含重建数据库所必须的SQL语句脚本并写入到文件或者标准输出。等效于直接使用gs\_dump导出为纯文本格式。 -## 命令格式 +## 命令格式 ``` gs_restore [OPTION]... FILE ``` ->![](public_sys-resources/icon-note.gif) **说明:** ->- FILE没有短选项或长选项。用来指定归档文件所处的位置。 ->- 作为前提条件,需输入dbname或-l选项。不允许用户同时输入dbname和-l选项。 ->- gs\_restore默认是以追加的方式进行数据导入。为避免多次导入造成数据异常,在进行导入时,建议选择使用"-c" 和"-e"参数。"-c"表示在重新创建数据库对象前,清理(删除)已存在于将要还原的数据库中的数据库对象;"-e"表示当发送SQL语句到数据库时如果出现错误请退出,默认状态下会继续,且在导入后会显示一系列错误信息。 +![](public_sys-resources/icon-note.png) **说明:** + +- FILE没有短选项或长选项。用来指定归档文件所处的位置。 + +- 作为前提条件,需输入dbname或-l选项。不允许用户同时输入dbname和-l选项。 -## 参数说明 +- gs\_restore默认是以追加的方式进行数据导入。为避免多次导入造成数据异常,在进行导入时,建议使用“-c” 参数,在重新创建数据库对象前,清理(删除)已存在于将要还原的数据库中的数据库对象。 -通用参数: +- 日志打印无开关,若需隐藏日志,请将日志重定向到日志文件。若恢复表数据时,数据量很大,会分批恢复,因此会多次出现“表数据已完成导入”的日志。 + +## 参数说明 + +### 通用参数: - -d, --dbname=NAME @@ -48,7 +57,8 @@ gs_restore [OPTION]... FILE 默认是标准输出。 - >![](public_sys-resources/icon-note.gif) **说明:** + >![](public_sys-resources/icon-note.png) **说明:** + >-f不能同-d一起使用。 - -F, --format=c|d|t @@ -57,7 +67,7 @@ gs_restore [OPTION]... FILE 取值范围: - - c/custom:该归档形式为gs\_dump的自定义格式。 + - c/custom:该归档形式为[gs\_dump](gs_dump.md)的自定义格式。 - d/directory:该归档形式是一个目录归档形式。 - t/tar:该归档形式是一个tar归档形式。 @@ -77,10 +87,9 @@ gs_restore [OPTION]... FILE 显示gs\_restore命令行参数帮助,然后退出。 +### 导入参数: -导入参数: - -- -a, -data-only +- -a, --data-only 只导入数据,不导入模式(数据定义)。gs\_restore的导入是以追加方式进行的。 @@ -90,7 +99,7 @@ gs_restore [OPTION]... FILE - -C, --create - 导入数据库之前会先使用CREATE DATABASE创建数据库(指定该选项后,-d指定的数据库仅用以执行CREATE DATABASE命令,所有数据依然会导入到创建的数据库中)。 + 导入到数据库之前会先使用CREATE DATABASE创建数据库(指定该选项后,-d指定的数据库仅用以执行CREATE DATABASE命令,所有数据将被导入到创建的数据库中)。 - -e, --exit-on-error @@ -110,11 +119,11 @@ gs_restore [OPTION]... FILE - -j, --jobs=NUM - 运行gs\_restore最耗时的部分(如加载数据、创建index、或创建约束)使用并发任务。该选项能大幅缩短导入时间,即将一个大型数据库导入到某一多处理器的服务器上。 + 运行gs\_restore最耗时的部分(如加载数据、创建index或创建约束)使用并发任务。该选项能大幅缩短导入时间,即将一个大型数据库导入到某一多处理器的服务器上。 每个任务可能是一个进程或一个线程,这由操作系统决定。每个任务与服务器进行单独连接。 - 该选项的最优值取决于服务器的硬件设置、客户端、以及网络。还包括这些因素,如CPU核数量、硬盘设置。建议是从增加服务器上的CPU核数量入手,更大的值(服务器上CPU核数量)在很多情况下也能导致数据文件更快的被导入。当然,过高的值会由于超负荷反而导致性能降低。 + 该选项的最优值取决于服务器的硬件设置、客户端以及网络。还包括这些因素,如CPU核数量、硬盘设置。建议是从增加服务器上的CPU核数量入手,更大的值(服务器上CPU核数量)在很多情况下也能导致数据文件更快的被导入。当然,过高的值会由于超负荷反而导致性能降低。 该选项只支持自定义归档格式。输入文件必须是常规文件(不能是像pipe的文件)。如果是通过脚本文件,而非直接连接数据库服务器,该选项可忽略。而且,多任务不能与--single-transaction选项一起使用。 @@ -122,7 +131,7 @@ gs_restore [OPTION]... FILE 只导入列举在list-file中的那些归档形式元素,导入顺序以它们在文件中的顺序为准。注意如果像-n或-t的过滤选项与-L使用,它们将会进一步限制导入的项目。 - 一般情况下,list-file是通过编辑前面提到的某个-l参数的输出创建的。文件行的位置可更改或直接删除行,也可使用分号(;)在行的开始注出。见下文的举例。 + 一般情况下,list-file是通过编辑前面提到的某个-l参数的输出创建的。文件行的位置可更改或直接删除,也可使用分号(;)在行的开始注出。 - -n, --schema=NAME @@ -155,7 +164,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 + 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\)会被一起导入。 @@ -168,34 +177,33 @@ gs_restore [OPTION]... FILE 该参数为扩展预留接口,不建议使用。 -- -t, --table=NAME +- -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 - ``` + ``` + 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 - ``` + ``` + 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 模式下table1 - ``` - gs_restore -h host_name -p port_number -d postgres -n PUBLIC -t table1 -n test1 -t table1 backup/MPPDB_backup.tar - ``` + ``` + gs_restore -h host_name -p port_number -d postgres -n PUBLIC -t table1 -n test1 -t table1 backup/MPPDB_backup.tar + ``` - >![](public_sys-resources/icon-notice.gif) **须知:** - >- --t不支持schema_name.table_name的输入格式,指定此格式不会报错,但不会生效。 - >- 当-t已指定时,gs\_restore不会导入已选表所附着的任何其他数据库对象。因此,无法保证某个指定表的转储结果能够自行成功地导入到一个空数据库中。 - >- -t tablename不会导入表上的触发器信息。 + ![](public_sys-resources/icon-note.png) **说明:** + + -t不支持schema_name.table_name的输入格式,指定此格式不会报错,但不会生效。 - -T, --trigger=NAME @@ -203,7 +211,7 @@ gs_restore [OPTION]... FILE - -x, --no-privileges/--no-acl - 防止导入访问权限(grant/revoke命令)。 + 防止导入访问权限(GRANT/REVOKE命令)。 - -1, --single-transaction @@ -221,50 +229,78 @@ gs_restore [OPTION]... FILE 该选项只有在直接导入到某数据库中时有效,不针对生成SQL脚本文件输出。 +- --no-publications + + 不导入发布。 + - --no-security-labels 该参数为扩展预留接口,不建议使用。 +- --no-subscriptions + + 不导入订阅。 + - --no-tablespaces 不输出选择表空间的命令。使用该选项,无论默认表空间是哪个,在导入过程中所有对象都会被创建。 - --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对权限要求较低。 -- --pipeline +- --pipeline 使用管道传输密码,禁止在终端使用。 +- --with-decryption=AES128/SM4 + + 还原数据时采用AES128或SM4硬件加密方式解密。 + + 若导出时使用--with-encryption指定了加密方式,则恢复时需要指定此参数并采用同样的方式进行解密。 + + ![](public_sys-resources/icon-notice.png) **说明:** + +- --with-key=KEY + + 硬件加密设备内部的密钥索引。 ->![](public_sys-resources/icon-notice.gif) **须知:** +- --with-salt=RANDVALUES + + 用于解密的随机盐值。 + + - 必须为16个字符的字符串。 + - 恢复时指定的盐值必须与加密导出时指定的盐值相同。 + +> ![](public_sys-resources/icon-notice.png) **须知:** >- 如果安装过程中有任何本地数据要添加到template1数据库,请谨慎将gs\_restore的输出载入到一个真正的空数据库中;否则可能会因为被添加对象的定义被复制,而出现错误。要创建一个无本地添加的空数据库,需从template0而非template1复制,例如: ->``` ->CREATE DATABASE foo WITH TEMPLATE template0; ->``` + ``` + CREATE DATABASE foo WITH TEMPLATE template0; + ``` >- gs_restore不能选择性地导入大对象;例如只能导入那些指定表的对象。如果某个归档形式包含大对象,那所有大对象都会被导入。如果此归档对象通过-L、-t或其他选项被排除,那么所有大对象一个都不会被导入。 ->![](public_sys-resources/icon-note.gif) **说明:** ->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必须一起使用。 +> ![](public_sys-resources/icon-note.png) **说明:** +>- -d/--dbname 和 -f/--file 不能同时使用。 +>- -s/--schema-only 和 -a/--data-only不能同时使用。 +>- -c/--clean 和 -a/--data-only不能同时使用。 +>- 使用--single-transaction时,-j/--jobs必须为单任务。 +>- --role 和 --rolepassword必须一起使用。 + + -连接参数: +### 连接参数: - -h, --host=HOSTNAME 指定的主机名称。如果取值是以斜线开头,他将用作Unix域套接字的目录。默认值取自PGHOST环境变量;如果没有设置,将启动某个Unix域套接字建立连接。 - 该参数只针对数据库外,对数据库内本机只能用127.0.0.1。 + 该参数只针对openGauss外,对openGauss内本机只能用127.0.0.1。 环境变量:PGHOST @@ -299,13 +335,12 @@ gs_restore [OPTION]... FILE 指定具体角色用户的角色密码。 -## 示例 +## 示例 特例:执行gsql程序,使用如下选项导入由gs\_dump/gs\_dumpall生成导出文件夹(纯文本格式)的MPPDB\_backup.sql文件到postgres数据库。 ``` -gsql -d postgres -p 8000 -f /home/omm/test/MPPDB_backup.sql -Password: +gsql -d postgres -p 15400 -W Bigdata@123 -f /home/omm/test/MPPDB_backup.sql SET SET SET @@ -326,7 +361,6 @@ REVOKE GRANT GRANT total time: 30476 ms -示例中“-f”后的是导出的文件,“8000”表示数据库服务器端口;“postgres”表示要访问的数据库名。 ``` gs\_restore用来导入由gs\_dump生成的导出文件。 @@ -334,15 +368,15 @@ gs\_restore用来导入由gs\_dump生成的导出文件。 示例1:执行gs\_restore,将导出的MPPDB\_backup.dmp文件(自定义归档格式)导入到postgres数据库。 ``` -gs_restore backup/MPPDB_backup.dmp -p 8000 -d postgres +gs_restore -W Bigdata@123 backup/MPPDB_backup.dmp -p 15400 -d postgres restore operation successful -total time: 13053 ms + total time: 13053 ms ``` 示例2:执行gs\_restore,将导出的MPPDB\_backup.tar文件(tar格式)导入到postgres数据库。 ``` -gs_restore backup/MPPDB_backup.tar -p 8000 -d postgres +gs_restore backup/MPPDB_backup.tar -p 15400 -d postgres restore operation successful total time: 21203 ms ``` @@ -350,7 +384,7 @@ total time: 21203 ms 示例3:执行gs\_restore,将导出的MPPDB\_backup文件(目录格式)导入到postgres数据库。 ``` -gs_restore backup/MPPDB_backup -p 8000 -d postgres +gs_restore backup/MPPDB_backup -p 15400 -d postgres restore operation successful total time: 21003 ms ``` @@ -358,7 +392,7 @@ total time: 21003 ms 示例4:执行gs\_restore,使用自定义归档格式的MPPDB\_backup.dmp文件来进行如下导入操作。 导入PUBLIC模式下所有对象的定义和数据。在导入时会先删除已经存在的对象,如果原对象存在跨模式的依赖则需手工强制干预。 ``` -gs_restore backup/MPPDB_backup.dmp -p 8000 -d postgres -e -c -n PUBLIC +gs_restore backup/MPPDB_backup.dmp -p 15400 -d postgres -e -c -n PUBLIC Error while PROCESSING TOC: Error from TOC entry 313; 1259 337399 TABLE table1 gaussdba could not execute query: ERROR: cannot drop table table1 because other objects depend on it @@ -370,7 +404,7 @@ HINT: Use DROP ... CASCADE to drop the dependent objects too. 手工删除依赖,导入完成后再重新创建。 ``` -gs_restore backup/MPPDB_backup.dmp -p 8000 -d postgres -e -c -n PUBLIC +gs_restore backup/MPPDB_backup.dmp -p 15400 -d postgres -e -c -n PUBLIC restore operation successful total time: 2203 ms ``` @@ -378,7 +412,7 @@ total time: 2203 ms 示例5:执行gs\_restore,使用自定义归档格式的MPPDB\_backup.dmp文件来进行如下导入操作。只导入PUBLIC模式下表table1的定义。 ``` -gs_restore backup/MPPDB_backup.dmp -p 8000 -d postgres -e -c -s -n PUBLIC -t table1 +gs_restore backup/MPPDB_backup.dmp -p 15400 -d postgres -e -c -s -n PUBLIC -t table1 restore operation successful total time: 21000 ms ``` @@ -386,12 +420,12 @@ total time: 21000 ms 示例6:执行gs\_restore,使用自定义归档格式的MPPDB\_backup.dmp文件来进行如下导入操作。只导入PUBLIC模式下表table1的数据。 ``` -gs_restore backup/MPPDB_backup.dmp -p 8000 -d postgres -e -a -n PUBLIC -t table1 +gs_restore backup/MPPDB_backup.dmp -p 15400 -d postgres -e -a -n PUBLIC -t table1 restore operation successful total time: 20203 ms ``` -## 相关命令 +## 相关命令 [gs\_dump](gs_dump.md),[gs\_dumpall](gs_dumpall.md) diff --git "a/content/zh/docs/AboutopenGauss/\345\207\275\346\225\260\345\217\212\345\255\230\345\202\250\350\277\207\347\250\213\346\224\257\346\214\201.md" "b/content/zh/docs/AboutopenGauss/\345\207\275\346\225\260\345\217\212\345\255\230\345\202\250\350\277\207\347\250\213\346\224\257\346\214\201.md" index 0b5beec04..75fcf8d2f 100644 --- "a/content/zh/docs/AboutopenGauss/\345\207\275\346\225\260\345\217\212\345\255\230\345\202\250\350\277\207\347\250\213\346\224\257\346\214\201.md" +++ "b/content/zh/docs/AboutopenGauss/\345\207\275\346\225\260\345\217\212\345\255\230\345\202\250\350\277\207\347\250\213\346\224\257\346\214\201.md" @@ -36,6 +36,8 @@ openGauss支持SQL标准中的函数及存储过程,其中存储过程兼容 支持管道函数。 +支持在包package、匿名块、存储过程、函数中使用record类型创建一个游标的type类型。 + ## 特性约束 不支持嵌套数组的数组类型成员直接调用集合函数。 diff --git a/content/zh/docs/ToolandCommandReference/gs_dump.md b/content/zh/docs/ToolandCommandReference/gs_dump.md index d9179d333..24a4d8124 100644 --- a/content/zh/docs/ToolandCommandReference/gs_dump.md +++ b/content/zh/docs/ToolandCommandReference/gs_dump.md @@ -428,22 +428,32 @@ export PGDATABASE=postgres 输出符合SQL标准的SET SESSION AUTHORIZATION命令而不是ALTER OWNER命令来确定对象所有权。这样令转储更加符合标准,但是如果转储文件中的对象的历史有些问题,那么可能不能正确恢复。并且,使用SET SESSION AUTHORIZATION的转储需要数据库系统管理员的权限才能转储成功,而ALTER OWNER需要的权限则低得多。 -- --with-encryption=AES128 +- --with-encryption=AES128/SM4 - 指定转储数据需用AES128进行加密。 + 指定转储数据使用的加密方式,支持AES128和SM4算法。加密导出仅支持导出格式为纯文本(-F p)。 -- --with-key=KEY + ![](public_sys-resources/icon-note.png) **说明:** + + - 该选项必须与--with-key和--with-salt同时使用。 + + - AES128加密算法使用的是CBC模式,SM4加密算法使用的是CTR模式。 + + - 当使用三未信安的加密算法时,必须使用--with-userpin指定创建密钥时的KMS用户信息。 - AES128密钥长度规则如下: +- --with-key=KEY - - 密钥长度为8~16字符。 - - 至少包含大写字母(A-Z)、小写字母(a-z)、数字(0-9)、非字母数字字符(限定为~!@#$%^&*()-_=+\|[]{};:,<.>/?)四类字符中的三类字符。 + 密钥名称或者密钥索引。 - ![](public_sys-resources/icon-note.png) **说明:** + AES128密钥长度规则如下: + + - 密钥长度为8~16字符。 + - 至少包含大写字母(A-Z)、小写字母(a-z)、数字(0-9)、非字母数字字符(限定为~!@#$%^&*()-_=+\|[]{};:,<.>/?)四类字符中的三类字符。 + + ![](public_sys-resources/icon-note.png) **说明:** - - 使用gs_dump工具进行加密导出时,仅支持plain格式导出。通过-F plain导出的数据,需要通过gsql工具进行导入,且如果以加密方式导入,在通过gsql导入时,需要指定--with-key参数。 + - 使用gs_dump工具进行加密导出时,仅支持plain格式导出。通过-F plain导出的数据,需要通过gsql工具进行导入,且如果以加密方式导入,在通过gsql导入时,需要指定--with-key参数。 - - 不支持加密导出存储过程和函数。 + - 不支持加密导出存储过程和函数。 - --with-salt=RANDVALUES diff --git a/content/zh/docs/ToolandCommandReference/gs_dumpall.md b/content/zh/docs/ToolandCommandReference/gs_dumpall.md index 65724939a..59f00491f 100644 --- a/content/zh/docs/ToolandCommandReference/gs_dumpall.md +++ b/content/zh/docs/ToolandCommandReference/gs_dumpall.md @@ -166,16 +166,30 @@ gs_dumpall [OPTION]... 输出符合SQL标准的SET SESSION AUTHORIZATION命令而不是ALTER OWNER命令来确定对象所有权。这样令转储更加符合标准,但是如果转储文件中的对象的历史有些问题,那么可能不能正确恢复。并且,使用SET SESSION AUTHORIZATION的转储需要数据库系统管理员的权限才能转储成功,而ALTER OWNER需要的权限则低得多。 -- --with-encryption=AES128 +- --with-encryption=AES128/SWS-KMS-SM4/TAS-KMS-SM4 - 指定转储数据需用AES128进行加密。 + 指定转储数据使用的加密方式(算法)。支持AES128/SWS-KMS-SM4/TAS-KMS-SM4。 + + ![](public_sys-resources/icon-note.png) **说明:** + + - 该选项必须与--with-key同时使用。 + + - 当加密方式为SWS-KMS-SM4时,必须与--with-userpin同时使用。 - --with-key=KEY - AES128密钥长度规则如下: + 密钥名称或者密钥索引。 + + - AES128密钥长度规则如下: + + - 密钥长度为8~16字符。 + - 至少包含大写字母(A-Z)、小写字母(a-z)、数字(0-9)、非字母数字字符(限定为~!@#$%^&*()-_=+\|[]{};:,<.>/?)四类字符中的三类字符。 + - 加密算法为TAS-KMS-SM4时,--with-key指定的是江南天安KMS上创建的密钥索引,Vastbase限制其索引范围必须是1 ~ 2048。 + - 加密算法为SWS-KMS-SM4时,--with-key指定的是三未信安KMS上创建的密钥名称。 + +- with-userpin=username:password - - 密钥长度为8~16字符。 - - 至少包含大写字母(A-Z)、小写字母(a-z)、数字(0-9)、非字母数字字符(限定为~!@#$%^&*()-_=+\|[]{};:,<.>/?)四类字符中的三类字符。 + 连接seckms加密服务器的username:password信息。 - --include-Extension diff --git a/content/zh/docs/ToolandCommandReference/gs_restore.md b/content/zh/docs/ToolandCommandReference/gs_restore.md index 2ab5158c4..c9fbf8204 100644 --- a/content/zh/docs/ToolandCommandReference/gs_restore.md +++ b/content/zh/docs/ToolandCommandReference/gs_restore.md @@ -259,6 +259,25 @@ gs_restore [OPTION]... FILE 使用管道传输密码,禁止在终端使用。 +- --with-decryption=AES128/SM4 + + 还原数据时采用AES128或SM4硬件加密方式解密。 + + 若导出时使用--with-encryption指定了加密方式,则恢复时需要指定此参数并采用同样的方式进行解密。 + + ![](public_sys-resources/icon-notice.png) **说明:** + +- --with-key=KEY + + 硬件加密设备内部的密钥索引。 + +- --with-salt=RANDVALUES + + 用于解密的随机盐值。 + + - 必须为16个字符的字符串。 + - 恢复时指定的盐值必须与加密导出时指定的盐值相同。 + > ![](public_sys-resources/icon-notice.png) **须知:** >- 如果安装过程中有任何本地数据要添加到template1数据库,请谨慎将gs\_restore的输出载入到一个真正的空数据库中;否则可能会因为被添加对象的定义被复制,而出现错误。要创建一个无本地添加的空数据库,需从template0而非template1复制,例如: ``` -- Gitee