注册
DM8_OB(oracle租户)dblink的搭建
技术分享/ 文章详情 /

DM8_OB(oracle租户)dblink的搭建

DM_926495 2023/05/24 1863 0 0

一、环境准备

本次安装的环境如下:

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

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

二、搭建DM到OB oracle租户的dblink

1、DM端安装ODBC驱动

1.1 安装前准备

下载地址:https://www.oceanbase.com/softwarecenter
部署参考文档:https://www.oceanbase.com/docs/common-oceanbase-connector-odbc-cn-10000000001943255
安装 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

1.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  

1.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

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 包对应

1.4 ISQ连接测试

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

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

2、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;

3、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>

三、文档

DM到OB的oracle租户的dblink搭建_20230509_v1.docx

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服