一、软件包

  1. ## Oracle 11G的OCI包
  2. dblink11g.tar.gz
  3. ## 如果确实缺失的话 才需要放这个文件
  4. libnsl.so.1

二、配置oracle监听

  1. [root@s11g db]# su - oracle
  2. [oracle@s11g:/home/oracle]$ cd $ORACLE_HOME
  3. ## 1. 如果没有 network/admin/ 目录就新建
  4. [oracle@s11g:/oracle/app/oracle/product/11.2.0/db]$ mkdir -p network/admin/
  5. [oracle@s11g:/oracle/app/oracle/product/11.2.0/db]$ cd network/admin/
  6. ## 2. 如果有以下文件则修改 没有则新增,具体内容看下方的三个文件
  7. vim listener.ora
  8. vim tnsnames.ora
  9. vim shrept.lst

1. listener.ora

#这是一个名为 LISTENER1 的监听器
#监听的协议是TCP协议
#监听的主机IP是82.156.213.133
#监听的端口是1521端口
LISTENER1 =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 82.156.213.133)(PORT = 1521))
)

#记录了监听器LISTENER1服务的全局数据库名、数据库路径和数据库实例名
SID_LIST_LISTENER1 =
    (SID_LIST =
        (SID_DESC =
            (GLOBAL_DBNAME = ORCL)
            (ORACLE_HOME = /oracle/app/oracle/product/11.2.0/db)
            (SID_NAME = orcl)
        )
    )

2. tnsnames.ora

orcl =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 82.156.213.133)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = oracle)
    )
  )

3. shrept.lst

# function entry points for genclntsh.sh

network : snaumihi_inithostinfo
network : snaumbg_gmt
network : naedpwd_encrypt
network : naumbsb_bld_singlebyte
network : ztapis
network : nlgh
network : ztvp52
network : ztcr2rnd
network : ztceenc
network : ztcedec
network : ztcegml
network : ztcegol
network : ztcef
network : ztcen
network : ztcei
network : ztcer
network : ztcegblksz
## 3. 修改完以后 重启监听  
[oracle@s11g:/oracle/app/oracle/product/11.2.0/db/network/admin]$ lsnrctl reload
[oracle@s11g:/oracle/app/oracle/product/11.2.0/db/network/admin]$ lsnrctl start
[oracle@s11g:/oracle/app/oracle/product/11.2.0/db/network/admin]$ lsnrctl status

image.png

## 4. 测试监听是否正确
[oracle@s11g:/oracle/app/oracle/product/11.2.0/db/network/admin]$ tnsping orcl

image.png

4. 新增用户及数据


## 5. 测试正常登录以及新增数据
[oracle@s11g:/home/oracle]$ sqlplus / as sysdba

## 修改密码
alter user system identified by Oracle123#

SQL> create user scott identified by oracle;
SQL> grant dba to scott;
SQL> conn scott/oracle




## 5.1 新增数据
create table TCE(ID CHAR(10),CREATE_DATE DATE );
insert into TCE VALUES(1, to_date('2019-2-26 11:14:25' , 'yyyy-mm-dd hh24:mi:ss'));
insert into TCE VALUES(2, to_date('2019-2-27 11:14:25' , 'yyyy-mm-dd hh24:mi:ss'));
insert into TCE VALUES(3, to_date('2019-2-28 11:14:25' , 'yyyy-mm-dd hh24:mi:ss'));
insert into TCE VALUES(4, to_date('2019-3-1 11:14:25' , 'yyyy-mm-dd hh24:mi:ss'));
insert into TCE VALUES(5, to_date(to_char('2021-12-05 11:14:25' , 'yyyy-mm-dd hh24:mi:ss')));
insert into TCE VALUES(6, to_date('2021-12-06 11:14:25' , 'yyyy-mm-dd hh24:mi:ss'));
insert into TCE VALUES(7, to_date('2021-12-07 11:14:25' , 'yyyy-mm-dd hh24:mi:ss'));
insert into TCE VALUES(8, to_date('2021-12-08 11:14:25' , 'yyyy-mm-dd hh24:mi:ss')); 
insert into TCE VALUES(9, to_date('2021-12-09 11:14:25' , 'yyyy-mm-dd hh24:mi:ss'));
insert into TCE VALUES(10, to_date('2021-12-10 11:14:25' , 'yyyy-mm-dd hh24:mi:ss'));
insert into TCE VALUES(11, to_date('2021-12-11 11:14:25' , 'yyyy-mm-dd hh24:mi:ss'));

## 5.2 查询语句
select * from TCE where CREATE_DATE  > to_date(to_char('2019-2-27 11:14:25' , 'yyyy-mm-dd hh24:mi:ss'));

三、配置Instant Client

资料:DM连接Oracle DBLINK工具包.zip

1. 安装Instant Client

## 1. 进入 /lib64目录
[root@lib64]# cd /lib64;
## 2. 上传安装包到 /lib64目录下
[root@lib64]# rz dblink11g.tar.gz
## 3. 解压并执行脚本安装
[root@lib64]# tar -zxvf dblink*.tar.gz
[root@lib64]# ./run.sh

2. 配置dmdba环境变量

## 1. 配置dmdba的环境变量
[root@iZ2zegdg3jn4k03ylt4m6rZ ~]# su - dmdba
[dmdba@iZ2zegdg3jn4k03ylt4m6rZ ~]$ vi ~/.bash_profile
##########内容如下##########
export DM_HOME="/opt/dmdbms"
export LD_LIBRARY_PATH=/opt/dmdbms/bin:/lib64
export LANG=zh_CN.utf8
##########内容如下##########
[dmdba@iZ2zegdg3jn4k03ylt4m6rZ ~]$ source ~/.bash_profile

3. 重启数据库

## 2.重启达梦数据库
[dmdba@iZ2zegdg3jn4k03ylt4m6rZ bin]$ ./DmServiceDMSERVER restart
Stopping DmServiceDMSERVER:                                [ OK ]
Starting DmServiceDMSERVER:

4. 验证Instant Client

[dmdba@VM-0-4-centos ~]$ cd /lib64/
## 测试一下
[dmdba@VM-0-4-centos lib64]$ ./sqlplus SCOTT/oracle@82.156.213.133:1521/oracle

SQL*Plus: Release 11.2.0.4.0 Production on Wed Dec 8 09:43:49 2021

Copyright (c) 1982, 2013, Oracle.  All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> 
## 如果报 1. error while loading shared libraries: libnsl.so.1 自行查看附录中的解决方案

PL/SQL连接

image.png

四、配置DM数据库

1. 新建dblink连接

## 1.新建dblink连接 注意修改IP,端口,SID
create public link "TEST1" connect 'ORACLE' with "SCOTT" identified by "******" using '(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 82.156.213.133)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SID = oracle )
    )
  )';
## 2.DBLINK 查询
select * from TCE@test1;

## 新建视图查询
CREATE VIEW TEST_TCE AS select * from TCE@test1;
## 查询指定范围的数据
select * from TEST_TCE where CREATE_DATE  > to_date(to_char('2019-2-27 11:14:25' , 'yyyy-mm-dd hh24:mi:ss'));

五、附录

1. error while loading shared libraries: libnsl.so.1

image.png
缺失了libnsl.so文件,将压缩包中的文件拷贝到/lib64目录下

libnsl.so.1.zip

六、资料

链接:https://pan.baidu.com/s/1DycTpVnGlZVu6Dio-uDu6A 
提取码:6a27 
--来自百度网盘超级会员V3的分享