返回首页

gbase数据、南大通用产品文档:GBase8c

更新日期:2024年09月11日

参数说明
通用参数

-f, --file=FILENAME
将输出发送至指定文件或目录。
如果省略该参数,
则使用标准输出。
如果输出格式为
(-F
c/-F d/-F t)时,必须指定-f 参数。如果-f 的参数值含有目录,要求当前用户对该目录具有读
写权限,并且不能指定已有目录。

-F, --format=c|d|t|p
选择输出格式。格式如下:

p|plain:输出一个文本SQL 脚本文件(默认)。

c|custom:输出一个自定义格式的归档,并且以目录形式输出,作为gs_restore 输
入信息。该格式是最灵活的输出格式,因为能手动选择,而且能在恢复过程中将归
档项重新排序。该格式默认状态下会被压缩。

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

t|tar:
输出一个tar 格式的归档形式,作为gs_restore 输入信息。tar 格式与目录格式
兼容;tar 格式归档形式在提取过程中会生成一个有效的目录格式归档形式。但是,
tar 格式不支持压缩且对于单独表有8GB 的大小限制。此外,表数据项的相应排序
在恢复过程中不能更改。

GBase 8c 工具参考手册
南大通用数据技术股份有限公司
131
输出一个tar 格式的归档形式,也可以作为gsql 输入信息。

-v, --verbose
指定verbose 模式。
该选项将导致gs_dump 向转储文件输出详细的对象注解和启动/停止
次数,向标准错误流输出处理信息。

-V, --version
打印gs_dump 版本,然后退出。

-Z, --compress=0-9
指定使用的压缩比级别。
取值范围:0~9

0 表示无压缩。

1 表示压缩比最小,处理速度最快。

9 表示压缩比最大,处理速度最慢。
针对自定义归档格式,
该选项指定单个表数据片段的压缩,
默认方式是以中等级别进行
压缩。纯文本格式或tar 归档格式目前不支持压缩。

--lock-wait-timeout=TIMEOUT
请勿在转储刚开始时一直等待以获取共享表锁。
如果无法在指定时间内锁定某个表,

选择失败。可以以任何符合SET statement_timeout 的格式指定超时时间。

-?, --help
显示gs_dump 命令行参数帮助,然后退出。
转储参数

-a, --data-only
只输出数据,不输出模式(数据定义)。转储表数据、大对象和序列值。

-b, --blobs

GBase 8c 工具参考手册
南大通用数据技术股份有限公司
132
该参数为扩展预留接口,不建议使用。

-c, --clean
在将创建数据库对象的指令输出到备份文件之前,先将清理(删除)
数据库对象的指令
输出到备份文件中。(如果目标数据库中没有任何对象,gs_restore 工具可能会输出一些提
示性的错误信息)
该选项只对文本格式有意义。针对归档格式,可以调用gs_restore 时指定选项。

-C, --create
备份文件以创建数据库和连接到创建的数据库的命令开始。
(如果命令脚本是这种方式
执行,
可以先指定任意数据库用于执行创建数据库的命令,
数据不会恢复到指定的数据库中,
而是恢复到创建的数据库中。)
该选项只对文本格式有意义。针对归档格式,可以在调用gs_restore 时指定选项。

-E, --encoding=ENCODING
以指定的字符集编码创建转储。默认情况下,以数据库编码创建转储。
(得到相同结果
的另一个办法是将环境变量“PGCLIENTENCODING”设置为所需的转储编码。)

-n, --schema=SCHEMA
只转储与模式名称匹配的模式,
此选项包括模式本身和所有它包含的对象。
如果该选项
没有指定,所有在目标数据库中的非系统模式将会被转储。写入多个-n 选项来选择多个模
式。此外,根据gsql 的\d 命令所使用的相同规则,模式参数可被理解成一个pattern,所以
多个模式也可以通过在该pattern 中写入通配符来选择。使用通配符时,注意给pattern 打引
号,防止shell 扩展通配符。

当-n 已指定时,gs_dump 不会转储已选模式所附着的任何其他数据库对象。因此,
无法保证某个指定模式的转储结果能够自行成功地储存到一个空数据库中。

当-n 指定时,非模式对象不会被转储。

GBase 8c 工具参考手册
南大通用数据技术股份有限公司
133

转储支持多个模式的转储。多次输入-n schemaname 转储多个模式。
例如:
[gbase@gbasehost ~]$ gs_dump -h 192.168.5.124 -p 5432 postgres -f
/home/gbase/data/backup/bkp_shl2.sql -n sch1 -n sch2
在上面这个例子中,sch1 和sch2 会被转储。

-N, --exclude-schema=SCHEMA
不转储任何与模式pattern 匹配的模式。pattern 将参照针对-n 的相同规则来理解。可以
通过输入多次-N,不转储与任何pattern 匹配的模式。
当同时输入-n 和-N 时,会转储与至少一个-n 选项匹配、与-N 选项不匹配的模式。如果
有-N 没有-n,则不转储常规转储中与-N 匹配的模式。
转储过程支持排除多个模式。
在转储过程中,输入-N exclude schema name 排除多个模式。
例如:
[gbase@gbasehost ~]$ gs_dump -h 192.168.5.124 -p 5432 postgres -f
/home/gbase/data/backup/bkp_shl2.sql -N sch1 -N sch2
在上面这个例子中,sch1 和sch2 在转储过程中会被排除。

-o, --oids
转储每个表的对象标识符(OIDs),作为表的一部分数据。该选项用于应用以某种方
式参照了OID 列的情况。如果不是以上这种情况,请勿使用该选项。

-O, --no-owner
不输出设置对象的归属这样的命令,以匹配原始数据库。默认情况下,gs_dump 会发出
ALTER OWNER 或SET SESSION AUTHORIZATION 语句设置所创建的数据库对象的归属。
如果脚本正在运行,该语句不会执行成功,除非是由系统管理员触发(或是拥有脚本中所有
对象的同一个用户)。通过指定-O,编写一个任何用户都能存储的脚本,且该脚本会授予该
用户拥有所有对象的权限。

GBase 8c 工具参考手册
南大通用数据技术股份有限公司
134
该选项只对文本格式有意义。针对归档格式,可以在调用gs_restore 时指定选项。

-s, --schema-only
只转储对象定义(模式),而非数据。

-S, --sysadmin=NAME
该参数为扩展预留接口,不建议使用。

-t, --table=TABLE
指定转储的表(或视图、或序列、或外表)对象列表,可以使用多个-t 选项来选择多个
表,也可以使用通配符指定多个表对象。
当使用通配符指定多个表对象时,注意给pattern 打引号,防止shell 扩展通配符。
当使用-t 时,-n 和-N 没有任何效应,这是因为由-t 选择的表的转储不受那些选项的影
响。

-t 参数选项个数必须小于等于100。

如果-t 参数选项个数大于100,建议使用参数--include-table-file 来替换。

当-t 已指定时,gs_dump 不会转储已选表所附着的任何其他数据库对象。因此,无
法保证某个指定表的转储结果能够自行成功地储存到一个空数据库中。

-t tablename 只转储在默认搜索路径中可见的表。-t '*.tablename'转储数据库下所有
模式下的tablename 表。-t schema.table 转储特定模式中的表。

-t tablename 不会导出表上的触发器信息。
例如:
[gbase@gbasehost ~]$ gs_dump -h 192.168.5.124 -p 5432 postgres -f
/home/gbase/data/backup/bkp_shl2.sql -t schema1.table1 -t schema2.table2
在上面这个例子中,schema1.table1 和schema2.table2 会被转储。

--include-table-file=FILENAME

GBase 8c 工具参考手册
南大通用数据技术股份有限公司
135
指定需要dump 的表文件。

-T, --exclude-table=TABLE
不转储的表(或视图、或序列、或外表)对象列表,可以使用多个-T 选项来选择多个
表,也可以使用通配符指定多个表对象。
当同时输入-t 和-T 时,会转储在-t 列表中,而不在-T 列表中的表对象。
例如:
[gbase@gbasehost ~]$ gs_dump -h 192.168.5.124 -p 5432 postgres -f
/home/gbase/data/backup/bkp_shl2.sql -T table1 -T table2
在上面这个例子中,table1 和table2 在转储过程中会被排除。

--exclude-table-file=FILENAME
指定不需要dump 的表文件。

与--include-table-file 参数格式相同,其内容格式如:schema1.table1 schema2.table2

-x, --no-privileges|--no-acl
防止转储访问权限(授权/撤销命令)。

-q, --target
指定导出兼容其他版本数据库的文本文件,目前支持v1 和v5 参数。v1 参数用于导出
v5 数据库的数据为兼容v1 的文本文件。
v5 参数用于导出v5 数据库的数据为v5 格式的文本
文件,减少了导入v5 时的可能的报错情况。
在使用v1 参数时,建议和--exclude-guc=“enable_cluster_resize”、--exclude-function、
--exclude-with 等选项共用,否则导入到v1 时可能报错。

--exclude-guc
导出的文本文件中,
不包括相关guc 参数的set 命令,
目前只支持enable_cluster_resize。

--exclude-function

GBase 8c 工具参考手册
南大通用数据技术股份有限公司
136
不导出函数和存储过程。

--exclude-with
导出的表定义,末尾不添加WITH(orientation=row,compression=on)这样的描述。

--binary-upgrade
该参数为扩展预留接口,不建议使用。

--binary-upgrade-usermap=“USER1=USER2”
该参数为扩展预留接口,不建议使用。

--column-inserts|--attribute-inserts
以INSERT 命令带列名(INSERT INTO 表(列、…)值…)方式导出数据。这会导致
恢复缓慢。
但是由于该选项会针对每行生成一个独立分开的命令,
所以在重新加载某行时出
现的错误只会导致那行丢失,而非整个表内容。

--disable-dollar-quoting
该选项将禁止在函数体前使用美元符号$,
并强制使用SQL 标准字符串语法对其进行引
用。

--disable-triggers
该参数为扩展预留接口,不建议使用。

--exclude-table-data=TABLE
指定不转储任何匹配表pattern 的表这方面的数据。依照针对-t 的相同规则理解该
pattern。
可多次输入--exclude-table-data 来排除匹配任何pattern 的表。当用户需要特定表的定义
但不需要其中的数据时,这个选项很有帮助。
排除数据库中所有表的数据,参见--schema-only 参数。

--inserts

GBase 8c 工具参考手册
南大通用数据技术股份有限公司
137
发出INSERT 命令(而非COPY 命令)转储数据。这会导致恢复缓慢。
但是由于该选项会针对每行生成一个独立分开的命令,
所以在重新加载某行时出现的错
误只会导致那行丢失,
而非整个表内容。
注意:
如果重排列顺序,
可能会导致整个恢复失败。
列顺序改变时,--column-inserts 选项不受影响,虽然会更慢。

--no-publications
不转储发布。

--no-security-labels
该参数为扩展预留接口,不建议使用。

--no-subscriptions
不转储订阅。

--no-tablespaces
不输出选择表空间的命令。使用该选项,
无论默认表空间是哪个,在恢复过程中所有对
象都会被创建。
该选项只对文本格式有意义。针对归档格式,可以在调用gs_restore 时指定选项。

--no-unlogged-table-data
该参数为扩展预留接口,不建议使用。

--non-lock-table
该参数为扩展预留接口,不建议使用。

--include-alter-table
转储表删除列。该选项会记录列的删除。

--quote-all-identifiers
强制对所有标识符加引号。为了向后续版本迁移,
且其中可能涉及引入额外关键词,在
转储相应数据库时该选项会有帮助。

GBase 8c 工具参考手册
南大通用数据技术股份有限公司
138

--section=SECTION
指定已转储的名称区段(pre-data、data 和post-data)。

--serializable-deferrable
转储过程中使用可串行化事务,
以确保所使用的快照与之后的数据库状态一致;
要实现
该操作需要在无异常状况的事务流中等待某个点,
因为这样才能保证转储成功,
避免引起其
他事务出现serialization_failure 要重新再做。
但是该选项对于灾难恢复没有益处。
对于在原始数据库进行升级的时候,
加载一个数据
库的拷贝作为报告或其他只读加载共享的转储是有帮助的。
没有这个选项,
转储会反映一个
与任何事务最终提交的序列化执行不一致的状态。
如果当gs_dump 启动时,读写事务仍处于非活动状态,即便使用该选项也不会对其产
生影响。如果读写事务处于活动状态,转储的开始时间可能会延迟一段不确定的时间。

--use-set-session-authorization
输出符合SQL 标准的SET SESSION AUTHORIZATION 命令而不是ALTER OWNER 命
令来确定对象所有权。
这样令转储更加符合标准,
但是如果转储文件中的对象的历史有些问
题,那么可能不能正确恢复。并且,使用SET SESSION AUTHORIZATION 的转储需要数据
库系统管理员的权限才能转储成功,而ALTER OWNER 需要的权限则低得多。

--with-encryption=AES128
指定转储数据需用AES128 进行加密。

--with-key=KEY
AES128 密钥长度规则如下:

密钥长度为8~16 字符。

至少包含大写字母(A-Z)、小写字母(a-z)、数字(0-9)、非字母数字字符(限
定为~!@#$%^&*()-_=+|[]{};:,<.>/?)四类字符中的三类字符。

GBase 8c 工具参考手册
南大通用数据技术股份有限公司
139

使用gs_dump 工具进行加密导出时,
仅支持plain 格式导出。
通过-F plain 导出的数
据,需要通过gsql 工具进行导入,且如果以加密方式导入,在通过gsql 导入时,
需要指定--with-key 参数。
不支持加密导出存储过程和函数。

--with-salt=RANDVALUES
gs_dumpall 使用此参数传递随机值。

--include-extension
在转储中包含扩展。

--include-depend-objs
备份结果包含依赖于指定对象的对象信息。该参数需要同-t/--include-table-file 参数关联
使用才会生效。

--exclude-self
备份结果不包含指定对象自身的信息。该参数需要同-t/--include-table-file 参数关联使用
才会生效。

--pipeline
使用管道传输密码,禁止在终端使用。

--dont-overwrite-file
文本、tar 以及自定义格式情况下会重写现有文件。这对目录格式不适用。
例如:
设想这样一种情景,即当前目录下backup.sql 已存在。如果在输入命令中输入-f
backup.sql 选项时,当前目录恰好也生成backup.sql,文件就会被重写。
如果备份文件已存在,且输入--dont-overwrite-file 选项,则会报告附带“转储文件已经
存在信息”的错误。

GBase 8c 工具参考手册
南大通用数据技术股份有限公司
140
[gbase@gbasehost ~]$ gs_dump -p 5432 postgres -f /home/gbase/data/backup.sql -F
plain --dont-overwrite-file

-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 域套接字连接。
该参数只针对GBase 8c 外,对GBase 8c 内本机只能用127.0.0.1。
环境变量:PGHOST

-p, --port=PORT
指定主机端口。在开启线程池情况下,建议使用pooler port,即主机端口+1。
环境变量:PGPORT

-U, --username=NAME
指定所连接主机的用户名。
不指定连接主机的用户名时,用户默认系统管理员。

GBase 8c 工具参考手册
南大通用数据技术股份有限公司
141
环境变量:PGUSER

-w, --no-password
不出现输入密码提示。
如果主机要求密码认证并且密码没有通过其它形式给出,
则连接
尝试将会失败。该选项在批量工作和不存在用户输入密码的脚本中很有帮助。

-W, --password=PASSWORD
指定用户连接的密码。
如果主机的认证策略是trust,
则不会对系统管理员进行密码验证,
即无需输入-W 选项;
如果没有-W 选项,并且不是系统管理员,“Dump Restore 工具”会提示
用户输入密码。

--role=ROLENAME
指定创建转储使用的角色名。
选择该选项,
会使gs_dump 连接数据库后,
发起一个SET
ROLE 角色名命令。当所授权用户(由-U 指定)没有gs_dump 要求的权限时,该选项会起
到作用,
即切换到具备相应权限的角色。
某些安装操作规定不允许直接以超系统管理员身份
登录,而使用该选项能够在不违反该规定的情况下完成转储。

--rolepassword=ROLEPASSWORD
指定角色名的密码。

下面几个部分显示多个客户机/服务器连接的正确的 sqlhosts 条目。可以假定已正确准备
了网络配置文件 hosts 和 services(即使没有明确提到这些文件)。包括以下示例:
• 使用网络连接

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 60 -
• 使用多种连接类型
• 访问多个数据库服务器
共享内存和本地回送连接的示例可以在共享内存和本地回送连接的说明中找到。

网络连接
下图显示的配置中,客户机应用程序位于主机 river 上,而数据库服务器位于主机 valley
上。
图: 网络客户机/服务器配置示例



在这两台计算机上定义了 valley_ds 数据库服务器的 sqlhosts 条目。
两个计算机在同一个 TCP/IP 网络上,但是主机 river 对于其网络编程接口使用套接字,
而主机 valley 对于其网络编程接口使用 TLI。nettype 字段必须反映 sqlhosts 所在计算
机使用的网络编程接口类型。在此示例中,主机 river 上 valley_ds 数据库服务器的
nettype 字段是 onsoctcp,而主机 valley 上 valley_ds 数据库服务器的 nettype 字段是
ontlitcp。

多种连接类型
数据库服务器的单个实例可以提供多种类型的连接。下图说明了此类配置。数据库服务器
位于主机 river 上。由于共享内存速度快,所以客户机 A 通过共享内存连接连接到数据
库服务器。客户机 B 必须使用网络连接,因为客户机和服务器在不同的计算机上。
当您希望数据库服务器接受多种类型的连接时,您必须进行下列操作:
• 在 onconfig 文件中添加 DBSERVERNAME 和 DBSERVERALIASES 条目。
• 针对每个数据库服务器/连接类型对,添加 sqlhosts 条目。
对于下图中的配置,数据库服务器有两个数据库服务器名称:river_net 和 river_shm。
onconfig 文件包含以下条目:

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 61 -
DBSERVERNAME river_net
DBSERVERALIASES river_shm
图: 使用多种连接类型的 UNIX™ 客户机/服务器配置的示例


客户机应用程序使用的数据库服务器名称可用于确定使用的连接类型。客户机 A 使用以
下语句连接到数据库服务器:
CONNECT TO '@river_shm'
在 sqlhosts 文件中,与名称 river_shm 关联的 nettype 指定共享内存连接,因此该连
接是共享内存连接。
客户机 B 可使用以下语句连接到数据库服务器:
CONNECT TO '@river_net'
在 sqlhosts 文件中,与 river_net 相关联的 nettype 值指定网络 (TCP/IP) 连接,因
此客户机 B 使用网络连接。

访问多个数据库服务器
下图显示了主机 river 上两个数据库服务器的配置。当一台计算机上有多个数据库服务
器处于活动状态时,称为多处驻留。
图: UNIX™ 上的多个数据库服务器


GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 62 -

对于前面示例中的配置,您必须准备两个 onconfig 文件,一个用于数据库服务器 A,另
一个用于数据库服务器 B。sqlhosts 文件包含这两个数据库服务器的连接信息。
数据库服务器 A 的 onconfig 文件包含以下行:
DBSERVERNAME riverA_shm
数据库服务器 B 的 onconfig 文件包含以下行:
DBSERVERNAME riverB_soc

28 11:35 C00007.seg.1.B

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
981
-rw------- 1 gbase gbase
245K 9 月
28 11:35 C00008.seg.1.B
-rw------- 1 gbase gbase
978K 9 月
28 11:35 C00009.seg.1.B
-rw------- 1 gbase gbase
394K 9 月
28 11:35 C00010.seg.1.B
-rw------- 1 gbase gbase
199K 9 月
28 11:35 C00011.seg.1.B
-rw------- 1 gbase gbase
978K 9 月
28 11:35 C00012.seg.1.B
-rw------- 1 gbase gbase
891K 9 月
28 11:35 C00013.seg.1.B
-rw------- 1 gbase gbase
186K 9 月
28 11:35 C00014.seg.1.B
-rw------- 1 gbase gbase
320K 9 月
28 11:35 C00015.seg.1.B
-rw------- 1 gbase gbase 1021K 9 月
28 11:35 C00016.seg.1.B