返回首页

gbase数据、南大通用产品文档:GBase8a数据迁移工具简介

更新日期:2024年09月11日

GBase 8a MPP Cluster 根据不同场景需求提供多种便于用户操作的数据迁移工具。

条件语句的主要作用是判断参数或者语句是否满足已给定的条件,
根据判定结果执行相

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
645
应的操作。
GBase 8c 有五种形式的IF:

IF_THEN
图1 IF_THEN::=
IF_THEN 语句是IF 的最简单形式。如果条件为真,statements 将被执行。否则,将忽
略它们的结果使该IF_THEN 语句执行结束。
示例
postgres=# IF v_user_id <> 0 THEN
UPDATE users SET email = v_email WHERE user_id = v_user_id;
END IF;

IF_THEN_ELSE
图2 IF_THEN_ELSE::=
IF_THEN_ELSE 语句增加了ELSE 的分支,可以声明在条件为假的时候执行的语句。
示例
postgres=# IF parentid IS NULL OR parentid = ''
THEN
RETURN;
ELSE

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
646
hp_true_filename(parentid);--表示调用存储过程
END IF;

IF_THEN_ELSE IF
IF 语句可以嵌套,嵌套方式如下:
postgres=# IF sex = 'm' THEN
pretty_sex := 'man';
ELSE
IF sex = 'f' THEN
pretty_sex := 'woman';
END IF;
这种形式实际上就是在一个IF 语句的ELSE 部分嵌套了另一个IF 语句。因此需要一个
END IF 语句给每个嵌套的IF,另外还需要一个END IF 语句结束父IF-ELSE。如果有多个
选项,可使用下面的形式。

IF_THEN_ELSIF_ELSE
图3 IF_THEN_ELSIF_ELSE::=
示例
IF number_tmp = 0 THEN
result := 'zero';
ELSIF number_tmp > 0 THEN
result := 'positive';

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
647
ELSIF number_tmp < 0 THEN
result := 'negative';
ELSE
result := 'NULL';
END IF;

IF_THEN_ELSEIF_ELSE
ELSEIF 是ELSIF 的别名。
示例
CREATE OR REPLACE PROCEDURE proc_control_structure(i in integer)
AS
BEGIN
IF i > 0 THEN
raise info 'i:% is greater than 0. ',i;
ELSIF i < 0 THEN
raise info 'i:% is smaller than 0. ',i;
ELSE
raise info 'i:% is equal to 0. ',i;
END IF;
RETURN;
END;
/
CALL proc_control_structure(3);

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
648
--删除存储过程
DROP PROCEDURE proc_control_structure;

(1)
以gbase 用户登录客户端机器。
(2)
创建安装目录。例如/tmp/tools:
[gbase@10.10.0.30 ~]$ sudo mkdir -p /tmp/tools
(3)
获取软件安装包,并上传到安装路径下,以/tmp/tools 为例。

GBase 8c V5 安装部署手册(主备式)
南大通用数据技术股份有限公司
29
说明

软件包相对位置为安装时所放位置,根据实际情况填写。

不同的操作系统,
工具包文件名称会有差异。
请根据实际的操作系统类型选择对应
的工具包。
(4)
解压文件。
[gbase@10.10.0.30 ~]$ cd /tmp/tools
[gbase@10.10.0.30 tools]$ tar -zxvf ******.tar.gz
(5)
登录数据库主节点所在的服务器,
并拷贝数据库运行目录下的bin 目录到客户端主
机的安装路径下。使用的主机IP 和目录,根据实际情况填写。
[gbase@gbase8c ~]$ scp -r /home/gbase/deploy/app/bin
gbase@10.10.0.30:/tmp/tools
(6)
登录客户端所在主机,设置环境变量。打开“~/.bashrc”文件。
[gbase@10.10.0.30 tools]$ vi ~/.bashrc
在其中输入如下内容后,使用“:wq!”命令保存并退出
export PATH=/tmp/tools/bin:$PATH
export LD_LIBRARY_PATH=/tmp/tools/lib:$LD_LIBRARY_PATH
(7)
使环境变量配置生效。
[gbase@10.10.0.30 ~]$ source ~/.bashrc
步骤3 连接数据库。
登录客户端所在主机,连接到此数据库。
gsql -d dbname -p port <-U user_name> <-h hostip>
参数与本地连接章节描述相同。
说明

客户端登录时,可能需要数据库用户的登录密码,请联系服务端获取。

当连接机器与数据库所在主机不在同一网段时,-h 指定的IP 地址应为Manager 界
面上所设的coo.cooListenIp2(应用访问IP)的取值。

GBase 8c V5 安装部署手册(主备式)
南大通用数据技术股份有限公司
30

执行连接数据库步骤可能报错,显示“gsql:error while loading shared libraries:
libssl.so.1.1: cannot open shared object file: No such file or directory”,则请检查客户
端目录下是否已拷贝bin 目录,以及环境变量和安装目录是否一致。可在数据库主
节点执行命令:
gha_ctl deploy client_host -l dcslist <-c cluster_name>
----结束