GBase 8a DBlink配置(跨集群访问)

本地集群 123.249.4.215

源集群(想要访问的集群 )43.143.154.123

目标:本地集群与源集群是两个独立集群,通过DBlink能够实现本地集群可以直接访问源集群的数据

安装透明网关(可以装在本地集群节点 或者 新增一个节点)

[gbase@hw-01 ~]$ cd /opt/
[gbase@hw-01 opt]$ ll
-rw-r--r-- 1 gbase gbase 182435840 Nov 12 17:01 GBase8a_MPP_Cluster_Gateway_8.5.1.2_build4.14.tar
[gbase@hw-01 opt]$ tar -xvf GBase8a_MPP_Cluster_Gateway_8.5.1.2_build4.14.tar
[gbase@hw-01 opt]$ chmod -R +x GBase8a_MPP_Cluster_Gateway_8.5.1.2_build4.14

修改透明网关系统配置文件

[gbase@hw-01 conf]$ cd /opt/GBase8a_MPP_Cluster_Gateway_8.5.1.2_build4.14/conf/
[gbase@hw-01 conf]$ vi conf.properties 

gbase.gt.load.data.type=0
gbase.gt.gc.paging.query=1

配置源库

[gbase@hw-01 opt]$ cd GBase8a_MPP_Cluster_Gateway_8.5.1.2_build4.14/conf/dataSource/sample
[gbase@hw-01 sample]$ cp gbase_link1.properties gbase_link1.properties.bak
[gbase@hw-01 sample]$ vi gbase_link1.properties
[gbase@hw-01 sample]$ cp gbase_link1.properties /opt/GBase8a_MPP_Cluster_Gateway_8.5.1.2_build4.14/conf/dataSource

[gbase8a cluster]
dataSource_IP=43.143.154.123    #这里写源集群的IP 也就是想要访问的集群
dataSource_port=5258
dataSource_dbname=test             #这里写想要访问的数据库,如果没有 记得先创建
dataSource_dbtype=gcluster
dataSource_user=gbase
dataSource_pwd=gbase20110531
dataSource_charset=utf8

启动透明网关 

[gbase@hw-01 sample]$ cd /opt/GBase8a_MPP_Cluster_Gateway_8.5.1.2_build4.14
[gbase@hw-01 GBase8a_MPP_Cluster_Gateway_8.5.1.2_build4.14]$ sh gt.sh

停止透明网关(这是笔记 不要执行)

[gbase@hw-01 GBase8a_MPP_Cluster_Gateway_8.5.1.2_build4.14]$ ps -ef | grep GBaseGateway
[gbase@hw-01 GBase8a_MPP_Cluster_Gateway_8.5.1.2_build4.14]$ kill -9 18787

配置DBlink(本地集群)

[gbase@hw-01 gcluster]$ cd /opt/gbase/192.168.0.213/gcluster/config
[gbase@hw-01 config]$ cp gbase_8a_gcluster.cnf gbase_8a_gcluster.cnf.bak
[gbase@hw-01 config]$ vi gbase_8a_gcluster.cnf

[gbased]

gbase_dblink_gateway_ip = 124.249.4.215  #这里写透明网关的IP

gbase_dblink_gateway_port = 9898

gcluster_dblink_direct_data_exchange = 0  #局域网内两个集群可以相互通信时 可以不加这个参数

gcluster_dblink_direct_data_exchange 默认值为 1
值为 1 表示:数据从数据源集群的计算节点直接发送给目标集群。
值为 0 表示:数据从数据源集群发送给网关,然后由网关转发给目标集群。
注:仅当数据源集群和目标集群的节点间在网络上不可直接连接时,调整此参数为 0。

开放端口

[root@hw-01 ~]# firewall-cmd --zone=public --add-port=9898/tcp --permanent
[root@hw-01 ~]# firewall-cmd --reload

重启服务

[gbase@hw-01 gcluster]$ gcluster_services all restart
[gbase@hw-01 gcluster]$ gcware_services all restart

源集群创建测试库 (DBlink要访问的节点)

43.143.154.123节点
[gbase@tx gcinstall]$ gccli -uroot -p
gbase> create database test;
gbase> use test;
gbase> create table t1(no int);
gbase> insert into t1 values(1);

本地集群使用DBlink访问源集群

[gbase@hw-01 gcluster]$ gccli -uroot -p
gbase> create database test;
Query OK, 1 row affected (Elapsed: 00:00:00.00)

gbase> create database link dblink_test1 connect to '' identified by '' using 'gbase_link1';  --注意这里的名称要跟上面源配置文件名称保持一致  gbase_link1.properties
Query OK, 0 rows affected (Elapsed: 00:00:00.00)

gbase> select * from gbase.db_links;
+--------+--------------+-------------+----------+----------+-------------+---------------------+
| owner  | db_link      | dblink_priv | username | password | host        | created             |
+--------+--------------+-------------+----------+----------+-------------+---------------------+
| public | dblink_test1 | PUBLIC      |          | NULL     | gbase_link1 | 2022-11-14 21:05:20 |
+--------+--------------+-------------+----------+----------+-------------+---------------------+
1 row in set (Elapsed: 00:00:00.00)

gbase> use test;
Query OK, 0 rows affected (Elapsed: 00:00:00.00)

gbase> select * from t1;
ERROR 1146 (42S02): Table 'test.t1' does not exist

gbase> select * from t1@dblink_test1;
+------+
| no   |
+------+
|    1 |
+------+
1 row in set (Elapsed: 00:00:00.10)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
gbase 8a 是一款国产的高性能关系型数据库管理系统,与MySQL是两款不同的数据库软件,因此不能直接使用MySQL的驱动来连接gbase 8a。 不过,gbase 8a提供了自己的ODBC驱动,可以使用ODBC的方式来连接gbase 8a数据库。在Java中,我们可以使用JDBC-ODBC桥来连接gbase 8a数据库,具体步骤如下: 1. 安装gbase 8a ODBC驱动,可以从gbase官网下载或联系gbase技术支持获取下载链接。 2. 配置ODBC数据源,在控制面板中打开“ODBC数据源”窗口,添加一个gbase的数据源,填写相应的连接信息。 3. 在Java中使用JDBC-ODBC桥来连接gbase 8a数据库,示例代码如下: ``` String url = "jdbc:odbc:yourdataresource"; // 数据源名称 String user = "username"; // 数据库用户名 String password = "password"; // 数据库密码 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection conn = DriverManager.getConnection(url, user, password); ``` 在上述代码中,"jdbc:odbc:yourdataresource" 中的 "yourdataresource" 是ODBC数据源的名称,user 和 password 分别是gbase 8a数据库的用户名和密码。通过 Class.forName() 加载 JDBC-ODBC桥的驱动程序,在 DriverManager.getConnection() 方法中传入连接字符串、用户名和密码来获取连接对象。 4. 进行数据库操作,使用JDBC标准的API进行数据库操作,例如: ``` Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM tableName"); while (rs.next()) { int id = rs.getInt("id"); String name = rs.getString("name"); //处理查询结果 } rs.close(); stmt.close(); conn.close(); ``` 以上就是使用JDBC-ODBC桥连接gbase 8a数据库的基本步骤,希望对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值