返回首页

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

更新日期:2024年09月11日

导出所有数据库
GBase 8c 支持使用gs_dumpall 工具导出所有数据库的全量信息,包含GBase 8c 中每个
数据库信息和公共的全局对象信息。可根据需要自定义导出如下信息:

导出所有数据库全量信息,
包含GBase 8c 中每个数据库信息和公共的全局对象信息
(包
含角色和表空间信息)

使用导出的全量信息可以创建与当前主机相同的一个主机环境,

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
348
拥有相同数据库和公共全局对象,且库中数据也与当前各库相同。

仅导出数据,
即导出每个数据库中的数据,
且不包含所有对象定义和公共的全局对象信
息。

仅导出所有对象定义,包括:表空间、库定义、函数定义、模式定义、表定义、索引定
义和存储过程定义等。
使用导出的对象定义,
可以快速创建与当前主机相同的一个主机
环境,拥有相同的数据库和表空间,但是库中并无原数据库的数据。
操作步骤
步骤1 以操作系统用户gbase 登录数据库主节点。
步骤2 使用gs_dumpall 一次导出所有数据库信息。
gs_dumpall -U gbase -f /home/gbase/backup/MPPDB_backup.sql -p 15432
Password:
表10-5 常用参数说明
参数
参数说明
举例
-U
连接数据库的用户名。
说明:
不指定连接数据库的用户名时,
默认以安装时创
建的初始系统管理员连接。
-U jack
-W
指定用户连接的密码。

如果主机的认证策略是trust,则不会对数据库管
理员进行密码验证,即无需输入-W 选项;

如果没有-W 选项,并且不是数据库管理员,会提
示用户输入密码。
-W abcd@123
-f
将导出文件发送至指定目录文件夹。
如果这里省略,

使用标准输出。
-f
home/gbase/backup/
postgres_backup.tar
-p
指定服务器所侦听的TCP 端口或本地Unix 域套接字后
缀,以确保连接。
-p 15432
其他参数说明请参见《GBase 8c V5_3.0.x_工具参考》中“服务端工具> gs_dumpall”
章节。
----结束

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
349
示例
示例一:执行gs_dumpall,导出所有数据库全量信息(gbase 用户为管理员用户),导出文
件为文本格式。执行命令后,会有很长的打印信息,最终出现total time 即代表执行成功。
示例中将不体现中间的打印信息。
gs_dumpall -U gbase -f /home/gbase/backup/MPPDB_backup.sql -p 15432
Password:
gs_dumpall[port='15432'][2017-07-21 15:57:31]: dumpall operation successful
gs_dumpall[port='15432'][2017-07-21 15:57:31]: total time: 9627 ms
示例二:执行gs_dumpall,仅导出所有数据库定义(gbase 用户为管理员用户),导出文件
为文本格式。执行命令后,会有很长的打印信息,最终出现total time 即代表执行成功。示
例中将不体现中间的打印信息。
gs_dumpall -U gbase -f /home/gbase/backup/MPPDB_backup.sql -p 15432 -s
Password:
gs_dumpall[port='15432'][2018-11-14 11:28:14]: dumpall operation successful
gs_dumpall[port='15432'][2018-11-14 11:28:14]: total time: 4147 ms
示例三:执行gs_dumpall,仅导出所有数据库中数据,并对导出文件进行加密,导出文件为
文本格式。执行命令后,会有很长的打印信息,最终出现total time 即代表执行成功。示例
中将不体现中间的打印信息。
gs_dumpall -f /home/gbase/backup/MPPDB_backup.sql -p 15432 -a --with-encryption AES128
--with-key abcdefg_?1234567
gs_dumpall[port='15432'][2018-11-14 11:32:26]: dumpall operation successful
gs_dumpall[port='15432'][2018-11-14 11:23:26]: total time: 4147 ms

在您成功地创建并运行 SPL 例程之后,
您可遇到逻辑错误。
如果例程有逻辑错误,
则请使
用 TRACE 语句来帮助查找它们。您可跟踪下列项的值:

变量

参数

返回值

SQL 错误代码

ISAM 错误代码
要生成被跟踪的值的列表,
首先请使用 SQL 语句 SET DEBUG FILE 来命名包含被跟踪的
输出的文件。当您创建 SPL 例程时,请包括 TRACE 语句。
下列方法指定 TRACE 输出的形式。
语句
操作
TRACE ON
跟踪 SQL 语句之外的所有语句。在使用变量之前,打印它们的内容。跟踪例程调
用和返回的值。
TRACE PROCEDURE
仅跟踪例程调用和返回的值。
TRACE expression
打印文字或表达式。如果必要,在将表达式的值发送至文件之前,计算它。

GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司 - 324 -

下图演示您可如何使用 TRACE 语句来监视 SPL 函数执行的方式。
图: TRACE 语句。
CREATE FUNCTION read_many (lastname CHAR(15))
RETURNING CHAR(15), CHAR(15), CHAR(20), CHAR(15),
CHAR(2), CHAR(5);

DEFINE p_lname,p_fname, p_city CHAR(15);
DEFINE p_add CHAR(20);
DEFINE p_state CHAR(2);
DEFINE p_zip CHAR(5);
DEFINE lcount, i INT;

LET lcount = 1;

TRACE ON; -- 从此开始跟踪每个表达式
TRACE 'Foreach starts'; -- 跟踪带有文字的语句

FOREACH
SELECT fname, lname, address1, city, state, zipcode
INTO p_fname, p_lname, p_add, p_city, p_state, p_zip

FROM customer
WHERE lname = lastname
RETURN p_fname, p_lname, p_add, p_city, p_state, p_zip
WITH RESUME;
LET lcount = lcount + 1; -- 对返回的地址计数
END FOREACH

TRACE 'Loop starts'; -- 另一文字
FOR i IN (1 TO 5)
BEGIN
RETURN i , i+1, i*i, i/i, i-1,i WITH RESUME;
END
END FOR;

END FUNCTION;

GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司 - 325 -

使用 TRACE ON 语句,
在您每次执行被跟踪的例程时,
都将条目添加到您在 SET DEBUG
FILE 语句中指定了的文件。要查看调试条目,请使用任何文本编辑器来查看该输出文件。

下列列表包含前面的示例中函数生成的一些输出。每一被跟踪的语句之后是对它的内容的
解释。
语句
操作
TRACE ON
回送 TRACE ON 语句。
TRACE Foreach starts
在此情况下,跟踪表达式,文字字符串 Foreach 开始。
start select cursor
提供打开游标来处理 FOREACH 循环的通知。
select cursor iteration
提供选择游标的每一迭代的开始的通知。
expression: (+lcount, 1)
对遇到的表达式 (lcount+1) 求值为 2。
let lcount = 2
以该值回送每一 LET 语句。

请参考Java 2 Platform SE 6 API java.sql.Date 类,该类型映射JDBC 数据类型:
DATE。