创建DM8_OB(oracle租户)dblink

1、环境介绍

1.1源端DM

数据库版本	dm8_20230426_x86_kylin10_64_ent_8.1.3.12_pack3.iso
操作系统版本	4.19.90-24.4.v2101.ky10.x86_64
OceanBase ODBC驱动	ob-connector-odbc-2.0.6-20221018193003.el7.alios7.x86_64.rpm
unixODBC	unixODBC-2.3.11.tar.gz
测试IP	192.168.123.12

1.2目标端OB

数据库版本	oceanbase-3.1.2-111000052023010412.el7.x86_64.rpm
操作系统版本	Red Hat Enterprise Linux Server release 7.6 (Maipo)
OceanBase安装部署工具	ob-deploy-2.0.1-4.el7.x86_64.rpm
查询客户端接口驱动 (OBClient Libs)	libobclient-2.2.2-3.el7.x86_64.rpm
OceanBase 命令行客户端	obclient-2.2.2-1.el7.x86_64.rpm
OceanBase 数据库代理	obproxy-3.2.9.0-20230116143405.el7.x86_64.rpm
依赖库 (OceanBase Libs)	oceanbase-ce-libs-4.1.0.0-100000202023040520.el7.x86_64.rpm
测试IP	192.168.123.17

2、DM端安装ODBC驱动

2.1 安装前准备

安装 OceanBase Connector/ODBC 驱动程序需要一些准备工作,安装完成后根据相应的步骤进行配置和连接测试。

版本 安装包

Linux版本	ob-connector-odbc-2.0.8.rpm
ob-unixodbc-2.0.8.rpm
libobclient-2.1.2.rpm 及以上版本

本次安装odbc版本为:

ob-connector-odbc-2.0.6-20221018193003.el7.alios7.x86_64.rpm

2.2 安装驱动

1、检查是否已安装 OceanBase Connector/ODBC,并查看相应版本信息。

 rpm -qa | grep odbc 
 rpm -qa | grep obclient

2、如果需要替换其他版本,分别执行如下命令删除

 rpm -e ob-connector-odbc-<version_no>.rpm   
 rpm -e libobclient-<version_no>.rpm   
 rpm -e ob-unixodbc-<version_no>.rpm   

3、安装相应的 OceanBase Connector/ODBC 的 rpm 包

 sudo rpm -ivh ob-connector-odbc-<version_no>.rpm  
 sudo rpm -ivh ob-unixodbc-<version_no>.rpm
 sudo rpm -ivh libobclient-<version_no>.rpm  

4、安装后再次检查版本是否正确

 rpm -qa | grep odbc 
 rpm -qa | grep obclient

此外,根据实际环境还需要安装 Libtool 相关工具(本次未安装),语法如下:

yum install libtool-ltdl-devel  

2.3 配置环境变量

1、配置 odbc.ini 到 /etc/odbc.ini (也可以自定义目录设置环境变量到相应的目录即可)。

 $sudo vim /etc/odbc.ini

 [ODBC Data Sources]
data_source_name = OBDSN

 [OBDSN]
 Driver=/u01/ob-connector-odbc/lib64/mariadb/libobodbc.so
 Description = OceanBase Driver DSN
 SERVER = 192.168.123.17
 PORT = 2883
 USER = test@oboracle
 Password =test
 Database = test
 OPTION = 4
 charset=UTF8

配置文件中的参数含义和取值约束如下表所示。
参数名称 含义

Driver	odbcinst.ini 中的驱动,是用户自定义的。
Description	驱动描述。
SERVER	数据库 IP 地址。
PORT	数据库实际端口
USER	数据库用户账号。
Password	数据库密码。
Database	数据库名称。
OPTION	配置选项,当前版本仅支持 OPTION =4,即开启日志。
charset	数据库字符集,默认为 UTF8。

2、配置 odbcinst.ini 到 /etc/odbcinst.ini

 $sudo vim /etc/odbcinst.ini

[Oceanbase]
Description = ODBC for Oceanbase
Driver = /u01/ob-connector-odbc/lib64/mariadb/libobodbc.so

3、设置环境变量

 $export ODBCSYSINI=/etc
 $export ODBCINI=/etc/odbc.ini
 $export LD_LIBRARY_PATH=/u01/unix-odbc/lib:/u01/obclient/lib:/u01/ob-connector-odbc:$LD_LIBRARY_PATH

4、环境变量配置完成后可以使用 odbcinst -j 命令查看配置是否正确,示例如下:

 $/u01/unix-odbc/bin/odbcinst -j

unixODBC 2.3.11
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /etc/odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8

5、检查环境依赖是否正确。

 $cd /u01/ob-connector-odbc/lib64/mariadb

 [root@eefdc4281eb7 mariadb]# ldd /u01/ob-connector-odbc/lib64/mariadb/libobodbc.so
         linux-vdso.so.1 (0x00007ffebc589000)
        libobclnt.so.20 => /u01/obclient/lib/libobclnt.so.20 (0x00007fc118368000)
        libodbcinst.so.2 => /u01/unix-odbc/lib/libodbcinst.so.2 (0x00007fc118153000)
        libm.so.6 => /usr/lib64/libm.so.6 (0x00007fc117fb5000)
        libc.so.6 => /usr/lib64/libc.so.6 (0x00007fc117dfd000)
        libdl.so.2 => /usr/lib64/libdl.so.2 (0x00007fc117df8000)
        libpthread.so.0 => /usr/lib64/libpthread.so.0 (0x00007fc117dd7000)
        libltdl.so.7 => /usr/lib64/libltdl.so.7 (0x00007fc117dca000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fc11883f000)

 # 确保 libobclnt.so.20 的依赖与所安装的 libobclient-xxx.rpm 包对应

2.4 ISQL连接测试

DriverManager 相关的工具在 /u01/unix-odbc 目录下,运行连接命令并显示成功。

[dmdba@cesdb20 media]$ isql -v OBDSN
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| echo [string]                         |
| quit                                  |
|                                       |
+---------------------------------------+
SQL>

3、OB端创建测试用户及数据

obclient -h192.168.123.17 -P2883 -usys@oboracle -psys
[SYS@192.168.123.17] [SYS]> create user test identified by test;
[SYS@192.168.123.17] [SYS]>grant connect,resource to test;
[SYS@192.168.123.17] [SYS]>grant create session to test;

obclient -h192.168.123.17 -P2883 -utest@oboracle -ptest
[TEST@192.168.123.17] [TEST]> CREATE TABLE test(name VARCHAR2(20),score INT NOT NULL);
[TEST@192.168.123.17] [TEST]> insert into test values(‘name',79)
; [TEST@192.168.123.17] [TEST]>commit;

4、DM端创建dblink并查询数据

cd $DM_HOME/bin
./disql sysdba/SYSDBA:5238
create or replace public link link_ob connect 'ODBC' with "sys@oboracle" identified by "sys" using 'OBDSN' option (DB_TYPE='ORACLE');

SQL> select * from test.test@link_ob;

行号     NAME SCORE
---------- ---- -----
1          name 79

已用时间: 00:00:02.217. 执行号:1600.
SQL>

更多技术分享,详见
达梦社区:https://eco.dameng.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值