1、环境需求
需要安装配置以下相关软件: 1、Oracle Gateways (Linux环境 oracle 11.2.0.4 gateways安装包p13390677_112040_Linux-x86-64_Gateways_5of7.zip) 2、ODBC数据源(gateway机器) 3、达梦数据库软件(gateway机器) |
2、数据库的连接过程
oracle——>dg4odbc——>odbc——>达梦数据库 |
- 安装odbc
(1)配置yum 源,安装odbc
yum install unixODBC* rpm -qa unixODBC rpm -qa unixODBC-devel 验证odbc odbcinst -j |
(2)安装包编译安装odbc
下载odbc unixODBC tar -xzvf /tmp/unixODBC-2.3.9.tar.gz -C /usr/local/ cd /usr/local/unixODBC-2.3.9/ ./configure –prefix=/usr/local/unixODBC-2.3.9 –includedir=/usr/include –libdir=/usr/lib64 –bindir=/usr/bin –sysconfdir=/etc make make install odbcinst -j |
- 配置可以通过isql命令连接达梦数据库
本例采用的是yum 安装odbc
(1)环境信息
达梦软件安装目录 | /data/dmdbms |
oracle数据库基目录 | /data/app/oracle |
oracle数据库home目录 | /data/app/oracle/product/11.2.0/db_1 |
安装的gateway home目录 | /data/app/oracle/product/11.2.0/db_1 |
软件存放目录 | /data/soft |
(2)在oracle服务器上安装达梦数据库软件
dmdba用户组创建
groupadd dinstall useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba |
创建达梦软件目录并授权
mkdir -p /data/dmdbms mkdir -p /data/dmsoft chown dmdba.dinstall /data/dmdbms chown dmdba.dinstall /data/dmsoft chown dmdba.dinstall /data chmod -R 775 /data/ |
上传达梦软件并挂载
dm8_20220919_x86_kylin10_64_ent_8.1.2.128_pack5.iso 将软件上传到/data/dmsoft cd /data/dmsoft mount -o loop dm8_20220919_x86_kylin10_64_ent_8.1.2.128_pack5.iso /mnt |
执行安装程序
cd /mnt [dmdba@clpc-ylgh-test01 mnt]$ ./DMInstall.bin -i 请选择安装语言(C/c:中文 E/e:英文) [C/c]:c 解压安装程序….. Please select the installer’s language (E/e:English C/c:Chinese) [E/e]:c 解压安装程序……… 欢迎使用达梦数据库安装程序 是否输入Key文件路径” /> 是否设置时区? (Y/y:是 N/n:否) [Y/y]:n 安装类型: 1 典型安装 2 服务器 3 客户端 4 自定义 请选择安装类型的数字序号 [1 典型安装]: 所需空间: 1835M 请选择安装目录 [/home/dmdba/dmdbms]:/data/dmdbms 可用空间: 395G 是否确认安装路径(/data/dmdbms)? (Y/y:是 N/n:否) [Y/y]:y 安装前小结 安装位置: /data/dmdbms 所需空间: 1835M 可用空间: 395G 版本信息: 有效日期: 安装类型: 典型安装 是否确认安装? (Y/y:是 N/n:否):y 2023-02-21 14:59:15 [INFO] 安装 基础 模块… 2023-02-21 14:59:15 [INFO] 安装达梦数据库… 2023-02-21 14:59:17 [INFO] 安装 服务器 模块… 2023-02-21 14:59:18 [INFO] 安装 客户端 模块… 2023-02-21 14:59:18 [INFO] 安装 驱动 模块… 2023-02-21 14:59:19 [INFO] 安装 手册 模块… 2023-02-21 14:59:19 [INFO] 安装 服务 模块… 2023-02-21 14:59:20 [INFO] 移动日志文件。 2023-02-21 14:59:21 [INFO] 安装达梦数据库完成。 请以root系统用户执行命令: /data/dmdbms/script/root/root_installer.sh 安装结束 |
root用户执行脚本
~]# /data/dmdbms/script/root/root_installer.sh 移动 /data/dmdbms/bin/dm_svc.conf 到/etc目录 修改服务器权限 创建DmAPService服务 Created symlink /etc/systemd/system/multi-user.target.wants/DmAPService.service → /usr/lib/systemd/system/DmAPService.service. 创建服务(DmAPService)完成 启动DmAPService服务 ~]# ~]# systemctl stop DmAPService.service |
修改dmdba用户环境变量
vi .bash_profile
export LD_LIBRARY_PATH=”$LD_LIBRARY_PATH:/data/dmdbms/bin” export DM_HOME=”/data/dmdbms” #添加 PATH=$PATH:/data/dmdbms/bin |
- 配置odbc数据源
配置oracle用户环境变量vi /home/oracle/.bash_profile ,添加
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:$ORACLE_HOME/dmbin
oracle用户环境变量生效
source /home/oracle/.bash_profile
将达梦软件的bin目录拷贝到ORACLE_HOME目录,并授权
cp -r /data/dmdbms/bin /data/app/oracle/product/11.2.0/db_1/dmbin
chown oracle:oinstall /data/app/oracle/product/11.2.0/db_1/dmbin
编辑配置文件/etc/odbcinst.ini
[DM8 ODBC DRIVER] Description = ODBC DRIVER FOR DM8 Driver = /usr/lib/libdodbc.so –该文件是从达梦bin目录下拷贝的 |
cp /data/dmdbms/bin/libdodbc.so /usr/lib/libdodbc.so
编辑配置文件/etc/odbc.ini
[DM] Driver = DM8 ODBC DRIVER –该值和/etc/odbcinst.ini 中,标红的名字一致 Description = DM ODBC DSND SERVER = 192.168.80.100 –达梦数据库服务器IP UID = YLJOAXC –达梦数据库用户 PWD = YLJOAXC20230307 –达梦数据库用户密码 TCP_PORT = 5236 –达梦数据库监听端口号 [DMLINK] Driver = DM8 ODBC DRIVER Description = DM ODBC DSND SERVER = 192.168.80.100 UID = SYSDBA PWD = SYSDBA20230308 |
- 用isql命令测试登录达梦数据库
isql DM -v
isql DMLINK -v
DM配置的是业务用户,访问表不使用用户名,就可以访问表。
DMLINK配置的是SYSDBA用户,访问表必须使用 “用户名.表名” 格式。
- 配置Oracle Gateways
oracle 11.2.0.4 已默认安装网关,$ORACLE_HOME/hs/admin
如果没有安装,解压
p13390677_112040_Linux-x86-64_Gateways_5of7.zip安装。
(1)配置init+SID_NAME
cd $ORACLE_HOME/hs/admin
vi initdg4odbc.ora
HS_FDS_CONNECT_INFO = DM –配置的ODBC数据源名称 HS_FDS_TRACE_LEVEL = debug –调试排错的时候可以开启trace HS_FDS_SHAREABLE_NAME = /usr/lib/libdodbc.so set ODBCINI=/etc/odbc.ini HS_LANGUAGE=”simplified chinese_china.al32utf8″ HS_NLS_NCHAR=UCS2 |
vi initdm8.ora
HS_FDS_CONNECT_INFO = DMLINK HS_FDS_TRACE_LEVEL = debug set ODBCINI=/etc/odbc.ini HS_FDS_SHAREABLE_NAME=/usr/lib/libdodbc.so HS_LANGUAGE=”simplified chinese_china.al32utf8″ HS_NLS_NCHAR=UCS2 |
- 配置静态监听
LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = hlw)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) ) SID_LIST_LISTENER= (SID_LIST= (SID_DESC= (SID_NAME=dg4odbc) (ORACLE_HOME=/data/app/oracle/product/11.2.0/db_1) (PROGRAM=dg4odbc) ) (SID_DESC= (SID_NAME=dm8) –SID_NAME对应gateway参数配置文件后面的名称init+SID_NAME.ora (ORACLE_HOME=/data/app/oracle/product/11.2.0/db_1) (PROGRAM=dg4odbc) –这里表示配置的是ODBC网关 ) ) ADR_BASE_LISTENER = /data/app/oracle |
PROGRAM=dg4odbc这里dg4odbc是不可以修改的,不要修改成sid,这里会执行$ORACLE_HOME/bin下面的一个名字是dg4odbc的文件,dg4odbc是Oracle了解异库的一种协议;
重启监听
(3)配置tnsname.ora
dg4odbctns = (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=hlw)(PORT=1521)) (CONNECT_DATA=(SID=dg4odbc)) (HS=OK) —这里表示连接的是异构数据库 ) dm8tns = (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=hlw)(PORT=1521)) (CONNECT_DATA=(SID=dm8)) (HS=OK) ) |
- 创建dblink,并测试访问
create public database link LINK_DM8_USER connect to YLJOAXC identified by “YLJOAXC20230307” using ‘dg4odbctns‘; 达梦数据库用户为YLJOAXC,密码为YLJOAXC20230307 create public database link LINK_DM8_SYS connect to SYSDBA identified by “SYSDBA20230308” using ‘dm8tns’; 达梦数据库用户为SYSDBA,密码为SYSDBA20230308 set linesize 200 set pagesize 2000 col OWNER for a10 col db_link for a20 col username for a10 col host for a20 select owner,db_link,username,host from dba_db_links; |
测试:
补充
HS_FDS_TRACE_LEVEL = debug 时,$ORACLE_HOME/hs/log会产生trc文件,连接达梦成功后,可以将其设置为OFF
$ORACLE_HOME/hs/log
https://eco.dameng.com