重庆思庄Oracle、、PostgreSQL、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 202|回复: 0
打印 上一主题 下一主题

达梦数据库通过oci方式使用DBLINK访问Oracle配置步骤

[复制链接]
跳转到指定楼层
楼主
发表于 2025-3-23 19:03:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
达梦通过DBLINK访问Oracle数据库有两种方式一种是通过Oracle oci接口,一种是通过ODBC数据源的方式。

这里使用oci的方式去访问ORACLE


1.本次环境:

   操作系统版本:Centos 7.9
   Oracle数据库版本:Oracle 19.26   
   192.168.133.120:1521/orclpdb3

   DM数据库版本:DM V8 1-2-70 ENT
   192.168.133.180:5236

   Oracle Instant Client包版本:19.26

   数据库字符集:Oracle al32utf8,DM utf8

2.下载Oracle客户端驱动(Instant Client)

  https://www.oracle.com/database/ ... 6-64-downloads.html

  选择对应平台的Basic和ODBC驱动包:
  Basic Package(instantclient-basic) *必须
  ODBC Package (instantclient-odbc)*可选

   另外,还需要注意Oracle Instant Client高版本包对glibc版本有要求,需要glibc 2.14或者以上环境


3、查看系统环境

3.1、检查glibc版本

[root@dmserver ~]# rpm -qi glibc
Name        : glibc
Version     : 2.17
Release     : 317.el7
Architecture: x86_64
Install Date: Fri 06 Dec 2024 12:54:38 PM CST
Group       : System Environment/Libraries
Size        : 14100602
License     : LGPLv2+ and LGPLv2+ with exceptions and GPLv2+
Signature   : RSA/SHA256, Thu 15 Oct 2020 02:49:59 AM CST, Key ID 24c6a8a7f4a80eb5
Source RPM  : glibc-2.17-317.el7.src.rpm
Build Date  : Wed 30 Sep 2020 10:14:55 AM CST
Build Host  : x86-01.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://www.gnu.org/software/glibc/
Summary     : The GNU libc libraries
Description :
The glibc package contains standard libraries which are used by
multiple programs on the system. In order to save disk space and
memory, as well as to make upgrading easier, common system code is
kept in one place and shared between programs. This particular package
contains the most important sets of shared libraries: the standard C
library and the standard math library. Without these two libraries, a
Linux system will not function.
[root@dmserver ~]#

[root@dmserver ~]# ldd --version
ldd (GNU libc) 2.17
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.

3.2、检查是否有安装libaio包

[root@dmserver ~]# rpm -qa|grep libaio
libaio-0.3.109-13.el7.x86_64
[root@dmserver ~]#

4.解压安装Oracle Instant Client包

上传安装包到服务器,然后创建目录并解压

mkdir -p /opt/oracle

[root@dmserver setup]# ls -ltr
total 2009220
drwxr-xr-x. 2 root     root             6 Dec  8 10:17 os
drwxr-xr-x. 7 postgres postgres      4096 Dec 28 16:09 source
-rw-r--r--  1 root     root           240 Feb 14 10:52 dm8_20250122_x86_rh7_64.README
-rw-r--r--  1 root     root           100 Feb 14 10:52 dm8_20250122_x86_rh7_64.iso_SHA256.txt
-rw-r--r--  1 root     root     997971968 Feb 14 10:52 dm8_20250122_x86_rh7_64.iso
-rw-r--r--  1 root     root     981779338 Feb 17 14:27 dm8_20250122_x86_rh7_64.zip
-rw-r--r--  1 root     root        651180 Mar 23 18:12 instantclient-odbc-linux.x64-19.26.0.0.0dbru.zip
-rw-r--r--  1 root     root      77020960 Mar 23 18:12 instantclient-basic-linux.x64-19.26.0.0.0dbru.zip

[root@dmserver setup]# unzip instantclient-basic-linux.x64-19.26.0.0.0dbru.zip -d /opt/oracle

Archive:  instantclient-basic-linux.x64-19.26.0.0.0dbru.zip
  inflating: /opt/oracle/META-INF/MANIFEST.MF  
  inflating: /opt/oracle/META-INF/ORACLE_C.SF  
  inflating: /opt/oracle/META-INF/ORACLE_C.RSA  
  inflating: /opt/oracle/instantclient_19_26/adrci  
  inflating: /opt/oracle/instantclient_19_26/BASIC_LICENSE  
  inflating: /opt/oracle/instantclient_19_26/BASIC_README  
  inflating: /opt/oracle/instantclient_19_26/genezi  
  inflating: /opt/oracle/instantclient_19_26/libccme_asym.so  
  inflating: /opt/oracle/instantclient_19_26/libccme_base_non_fips.so  
  inflating: /opt/oracle/instantclient_19_26/libccme_base.so  
  inflating: /opt/oracle/instantclient_19_26/libccme_ecc_non_fips.so  
  inflating: /opt/oracle/instantclient_19_26/libccme_ecc.so  
  inflating: /opt/oracle/instantclient_19_26/libclntshcore.so.19.1  
    linking: /opt/oracle/instantclient_19_26/libclntsh.so  -> libclntsh.so.19.1
    linking: /opt/oracle/instantclient_19_26/libclntsh.so.10.1  -> libclntsh.so.19.1
    linking: /opt/oracle/instantclient_19_26/libclntsh.so.11.1  -> libclntsh.so.19.1
    linking: /opt/oracle/instantclient_19_26/libclntsh.so.12.1  -> libclntsh.so.19.1
    linking: /opt/oracle/instantclient_19_26/libclntsh.so.18.1  -> libclntsh.so.19.1
  inflating: /opt/oracle/instantclient_19_26/libclntsh.so.19.1  
  inflating: /opt/oracle/instantclient_19_26/libcryptocme.so  
  inflating: /opt/oracle/instantclient_19_26/libipc1.so  
  inflating: /opt/oracle/instantclient_19_26/libmql1.so  
  inflating: /opt/oracle/instantclient_19_26/libnnz19.so  
    linking: /opt/oracle/instantclient_19_26/libocci.so  -> libocci.so.19.1
    linking: /opt/oracle/instantclient_19_26/libocci.so.10.1  -> libocci.so.19.1
    linking: /opt/oracle/instantclient_19_26/libocci.so.11.1  -> libocci.so.19.1
    linking: /opt/oracle/instantclient_19_26/libocci.so.12.1  -> libocci.so.19.1
    linking: /opt/oracle/instantclient_19_26/libocci.so.18.1  -> libocci.so.19.1
  inflating: /opt/oracle/instantclient_19_26/libocci.so.19.1  
  inflating: /opt/oracle/instantclient_19_26/libociei.so  
  inflating: /opt/oracle/instantclient_19_26/libocijdbc19.so  
  inflating: /opt/oracle/instantclient_19_26/liboramysql19.so  
  inflating: /opt/oracle/instantclient_19_26/libtfojdbc1.so  
   creating: /opt/oracle/instantclient_19_26/network/
  inflating: /opt/oracle/instantclient_19_26/ojdbc8.jar  
  inflating: /opt/oracle/instantclient_19_26/ucp.jar  
  inflating: /opt/oracle/instantclient_19_26/uidrvci  
  inflating: /opt/oracle/instantclient_19_26/xstreams.jar  
   creating: /opt/oracle/instantclient_19_26/network/admin/
  inflating: /opt/oracle/instantclient_19_26/network/admin/README  
finishing deferred symbolic links:
  /opt/oracle/instantclient_19_26/libclntsh.so -> libclntsh.so.19.1
  /opt/oracle/instantclient_19_26/libclntsh.so.10.1 -> libclntsh.so.19.1
  /opt/oracle/instantclient_19_26/libclntsh.so.11.1 -> libclntsh.so.19.1
  /opt/oracle/instantclient_19_26/libclntsh.so.12.1 -> libclntsh.so.19.1
  /opt/oracle/instantclient_19_26/libclntsh.so.18.1 -> libclntsh.so.19.1
  /opt/oracle/instantclient_19_26/libocci.so -> libocci.so.19.1
  /opt/oracle/instantclient_19_26/libocci.so.10.1 -> libocci.so.19.1
  /opt/oracle/instantclient_19_26/libocci.so.11.1 -> libocci.so.19.1
  /opt/oracle/instantclient_19_26/libocci.so.12.1 -> libocci.so.19.1
  /opt/oracle/instantclient_19_26/libocci.so.18.1 -> libocci.so.19.1

[root@dmserver setup]# unzip instantclient-odbc-linux.x64-19.26.0.0.0dbru.zip -d /opt/oracle

Archive:  instantclient-odbc-linux.x64-19.26.0.0.0dbru.zip
replace /opt/oracle/META-INF/MANIFEST.MF? [y]es, [n]o, [A]ll, [N]one, [r]ename: A
  inflating: /opt/oracle/META-INF/MANIFEST.MF  
  inflating: /opt/oracle/META-INF/ORACLE_C.SF  
  inflating: /opt/oracle/META-INF/ORACLE_C.RSA  
   creating: /opt/oracle/instantclient_19_26/help/
   creating: /opt/oracle/instantclient_19_26/help/us/
   creating: /opt/oracle/instantclient_19_26/help/us/img_text/
  inflating: /opt/oracle/instantclient_19_26/help/us/img_text/odbcdrvarch.htm  
  inflating: /opt/oracle/instantclient_19_26/help/us/img_text/setup_app.htm  
  inflating: /opt/oracle/instantclient_19_26/help/us/img_text/odbcmodel.htm  
  inflating: /opt/oracle/instantclient_19_26/help/us/img_text/setup_work.htm  
  inflating: /opt/oracle/instantclient_19_26/help/us/img_text/setup_ssmig.htm  
  inflating: /opt/oracle/instantclient_19_26/help/us/img_text/setup_ora.htm  
  inflating: /opt/oracle/instantclient_19_26/help/us/sqora.htm  
  inflating: /opt/oracle/instantclient_19_26/help/us/toc.htm  
   creating: /opt/oracle/instantclient_19_26/help/us/META-INF/
  inflating: /opt/oracle/instantclient_19_26/help/us/META-INF/MANIFEST.MF  
  inflating: /opt/oracle/instantclient_19_26/help/us/blafdoc.css  
  inflating: /opt/oracle/instantclient_19_26/help/us/map.xml  
  inflating: /opt/oracle/instantclient_19_26/help/us/cpyr.htm  
   creating: /opt/oracle/instantclient_19_26/help/us/img/
  inflating: /opt/oracle/instantclient_19_26/help/us/img/odbcdrvarch.gif  
  inflating: /opt/oracle/instantclient_19_26/help/us/img/setup_app.gif  
  inflating: /opt/oracle/instantclient_19_26/help/us/img/setup_ora.gif  
  inflating: /opt/oracle/instantclient_19_26/help/us/img/setup_ssmig.gif  
  inflating: /opt/oracle/instantclient_19_26/help/us/img/odbcmodel.gif  
  inflating: /opt/oracle/instantclient_19_26/help/us/img/setup_work.gif  
  inflating: /opt/oracle/instantclient_19_26/help/us/oracle.gif  
   creating: /opt/oracle/instantclient_19_26/help/ja/
   creating: /opt/oracle/instantclient_19_26/help/ja/img_text/
  inflating: /opt/oracle/instantclient_19_26/help/ja/img_text/odbcdrvarch.htm  
  inflating: /opt/oracle/instantclient_19_26/help/ja/img_text/setup_app.htm  
  inflating: /opt/oracle/instantclient_19_26/help/ja/img_text/odbcmodel.htm  
  inflating: /opt/oracle/instantclient_19_26/help/ja/img_text/setup_work.htm  
  inflating: /opt/oracle/instantclient_19_26/help/ja/img_text/setup_ssmig.htm  
  inflating: /opt/oracle/instantclient_19_26/help/ja/img_text/setup_ora.htm  
  inflating: /opt/oracle/instantclient_19_26/help/ja/sqora.htm  
  inflating: /opt/oracle/instantclient_19_26/help/ja/toc.htm  
   creating: /opt/oracle/instantclient_19_26/help/ja/META-INF/
  inflating: /opt/oracle/instantclient_19_26/help/ja/META-INF/MANIFEST.MF  
  inflating: /opt/oracle/instantclient_19_26/help/ja/blafdoc.css  
  inflating: /opt/oracle/instantclient_19_26/help/ja/map.xml  
  inflating: /opt/oracle/instantclient_19_26/help/ja/cpyr.htm  
   creating: /opt/oracle/instantclient_19_26/help/ja/img/
  inflating: /opt/oracle/instantclient_19_26/help/ja/img/odbcdrvarch.gif  
  inflating: /opt/oracle/instantclient_19_26/help/ja/img/setup_app.gif  
  inflating: /opt/oracle/instantclient_19_26/help/ja/img/setup_ora.gif  
  inflating: /opt/oracle/instantclient_19_26/help/ja/img/setup_ssmig.gif  
  inflating: /opt/oracle/instantclient_19_26/help/ja/img/odbcmodel.gif  
  inflating: /opt/oracle/instantclient_19_26/help/ja/img/setup_work.gif  
  inflating: /opt/oracle/instantclient_19_26/help/ja/oracle.gif  
  inflating: /opt/oracle/instantclient_19_26/libsqora.so.19.1  
  inflating: /opt/oracle/instantclient_19_26/ODBC_LICENSE  
  inflating: /opt/oracle/instantclient_19_26/ODBC_README  
  inflating: /opt/oracle/instantclient_19_26/odbc_update_ini.sh  

[root@dmserver setup]# cd /opt/oracle
[root@dmserver oracle]# pwd
/opt/oracle
[root@dmserver oracle]# ls -ltr
total 4
drwxr-xr-x 2 root root   64 Mar 23 18:14 META-INF
drwxr-xr-x 4 root root 4096 Mar 23 18:14 instantclient_19_26
[root@dmserver oracle]# cd instantclient_19_26/
[root@dmserver instantclient_19_26]# pwd
/opt/oracle/instantclient_19_26
[root@dmserver instantclient_19_26]# ls -ltr
total 240004
-rwxr-xr-x 1 root root    237840 Jan 18 21:34 uidrvci
drwxr-xr-x 3 root root        19 Jan 18 21:34 network
-rwxr-xr-x 1 root root    116352 Jan 18 21:34 liboramysql19.so
-rwxr-xr-x 1 root root 130576848 Jan 18 21:34 libociei.so
-rwxr-xr-x 1 root root   2337384 Jan 18 21:34 libocci.so.19.1
-rwxr-xr-x 1 root root   5910424 Jan 18 21:34 libnnz19.so
-r-xr-xr-x 1 root root    478784 Jan 18 21:34 libmql1.so
-r-xr-xr-x 1 root root   3813840 Jan 18 21:34 libipc1.so
-rwxr-xr-x 1 root root    403440 Jan 18 21:34 libcryptocme.so
-rwxr-xr-x 1 root root  82725112 Jan 18 21:34 libclntsh.so.19.1
-rwxr-xr-x 1 root root   8062680 Jan 18 21:34 libclntshcore.so.19.1
-rwxr-xr-x 1 root root   1080384 Jan 18 21:34 libccme_ecc.so
-rwxr-xr-x 1 root root    151744 Jan 18 21:34 libccme_ecc_non_fips.so
-rwxr-xr-x 1 root root    821488 Jan 18 21:34 libccme_base.so
-rwxr-xr-x 1 root root    713792 Jan 18 21:34 libccme_base_non_fips.so
-rwxr-xr-x 1 root root    640088 Jan 18 21:34 libccme_asym.so
-rwxr-xr-x 1 root root     59328 Jan 18 21:34 genezi
-rw-r--r-- 1 root root      1634 Jan 18 21:34 BASIC_README
-r-xr-xr-x 1 root root      5780 Jan 18 21:34 BASIC_LICENSE
-rwxr-xr-x 1 root root     41984 Jan 18 21:34 adrci
-rw-r--r-- 1 root root     31825 Jan 18 21:34 xstreams.jar
-rw-r--r-- 1 root root   1698367 Jan 18 21:34 ucp.jar
-rw-r--r-- 1 root root   4533489 Jan 18 21:34 ojdbc8.jar
-r-xr-xr-x 1 root root     18840 Jan 18 21:34 libtfojdbc1.so
-r-xr-xr-x 1 root root    153624 Jan 18 21:34 libocijdbc19.so
-rwxr-xr-x 1 root root      4961 Jan 18 21:35 odbc_update_ini.sh
-rw-r--r-- 1 root root      7651 Jan 18 21:35 ODBC_README
-r-xr-xr-x 1 root root      5780 Jan 18 21:35 ODBC_LICENSE
-rwxr-xr-x 1 root root   1070280 Jan 18 21:35 libsqora.so.19.1
drwxr-xr-x 4 root root        26 Jan 18 21:35 help
lrwxrwxrwx 1 root root        15 Mar 23 18:14 libocci.so.18.1 -> libocci.so.19.1
lrwxrwxrwx 1 root root        15 Mar 23 18:14 libocci.so.12.1 -> libocci.so.19.1
lrwxrwxrwx 1 root root        15 Mar 23 18:14 libocci.so.11.1 -> libocci.so.19.1
lrwxrwxrwx 1 root root        15 Mar 23 18:14 libocci.so.10.1 -> libocci.so.19.1
lrwxrwxrwx 1 root root        15 Mar 23 18:14 libocci.so -> libocci.so.19.1
lrwxrwxrwx 1 root root        17 Mar 23 18:14 libclntsh.so.18.1 -> libclntsh.so.19.1
lrwxrwxrwx 1 root root        17 Mar 23 18:14 libclntsh.so.12.1 -> libclntsh.so.19.1
lrwxrwxrwx 1 root root        17 Mar 23 18:14 libclntsh.so.11.1 -> libclntsh.so.19.1
lrwxrwxrwx 1 root root        17 Mar 23 18:14 libclntsh.so.10.1 -> libclntsh.so.19.1
lrwxrwxrwx 1 root root        17 Mar 23 18:14 libclntsh.so -> libclntsh.so.19.1
[root@dmserver instantclient_19_26]# pwd
/opt/oracle/instantclient_19_26

5、配置环境变量
     添加到/etc/ld.so.conf.d目录下

    [root@dmserver instantclient_19_26]# echo /opt/oracle/instantclient_19_26 > /etc/ld.so.conf.d/oracle-instantclient.conf
    [root@dmserver instantclient_19_26]# ls -ltr /etc/ld.so.conf.d/oracle-instantclient.conf
    -rw-r--r-- 1 root root 32 Mar 23 18:16 /etc/ld.so.conf.d/oracle-instantclient.conf
    [root@dmserver instantclient_19_26]# cat /etc/ld.so.conf.d/oracle-instantclient.conf
     /opt/oracle/instantclient_19_26
    [root@dmserver instantclient_19_26]# ldconfig

     配置LD_LIBRARY_PATH环境变量

     修改dmdba用户下的.bash_profile文件,添加如下内容:

     export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/u01/app/dmdbms/bin:/opt/oracle/instantclient_19_26"

     [root@dmserver instantclient_19_26]# su - dmdba
     Last login: Sun Mar 23 17:21:24 CST 2025 on pts/1
     [dmdba@dmserver ~]$ vim .bash_profile
     ...
     export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/u01/app/dmdbms/bin:/opt/oracle/instantclient_19_26"
     ...
     [dmdba@dmserver ~]$ source .bash_profile

     验证:
     [dmdba@dmserver ~]$ env|grep LD_LIBRARY_PATH
     LD_LIBRARY_PATH=:/u01/app/dmdbms/bin:/opt/oracle/instantclient_19_26

6、通过ORACLE OCI接口的方式访问

   上面配置成功完成后,达梦数据库可以使用Oracle OCI接口进行访问。创建语法以及使用方法可以参考《DM8 SQL语言使用手册》外部链接章节。Oracle OCI接口相关动态库文件在instantclient-basic包中,配置好上面的环境变量后可以直接创建DBLINK访问。

   DBLINK创建语句:

   [dmdba@dmserver bin]$ ./DmServiceszdb restart
   Stopping DmServiceszdb:                                    [ OK ]
   Starting DmServiceszdb:                                    [ OK ]

   [dmdba@dmserver bin]$ ./disql sysdba/sztech_4U

   服务器[LOCALHOST:5236]:处于普通打开状态
   登录使用时间 : 3.356(ms)
   disql V8
   SQL> create link "linkora" connect 'oracle' with "HR" identified by "hr" using '192.168.133.120:1521/orclpdb3';
   操作已执行
   已用时间: 4.549(毫秒). 执行号:601.

   SQL> select * from v$version@"linkora" ;

行号     BANNER                                                                 BANNER_FULL                                                                              
---------- ---------------------------------------------------------------------- ------------------------------------------------------------------------------------------
           BANNER_LEGACY                                                          CON_ID
           ---------------------------------------------------------------------- ------
1          Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.26.0.0.0
           Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production 0


已用时间: 53.972(毫秒). 执行号:602.

SQL> select * from emp@"linkora";

行号     EMPID LAST_NAME
---------- ----- ---------
1          101   思庄

已用时间: 4.872(毫秒). 执行号:806.
SQL>

导致,配置完毕,在达梦数据库中,可以看到oracle数据库中信息。




分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2025-4-16 11:52 , Processed in 0.087675 second(s), 20 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表