栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

达梦数据库运维-DM8到ORACLE11g创建DBLINK

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

达梦数据库运维-DM8到ORACLE11g创建DBLINK


DM8到ORACLE11g创建DBLINK


一、
安装Oracle11g客户端安装配置
1)解压安装客户端
进入/dm/创建oracle客户端目录
mkdir -p /dm8/oracleclient/
chown dmdba.dinstall -R  /dm8/oracleclient/
cd /dm8/oracleclient/
tar -xvf dbclt11204_x64_RHEL7U4_x64.tar.gz
2)将oracle客户端lib下面的so包拷贝到达梦安装bin目录下,验证一下libclntsh.so是否正常
1、cd /dm8/oracleclient/product/db11gr2/lib/
cp *.so* /dm8/dm8/bin
进入 /dm8/dm8/bin

2、验证libclntsh.so是否正常
ldd   libclntsh.so

3、一般拷贝过来可能这个libclntsh.so包会报错,建议做一个软连接
cd  /dm8/bin
ln -s /dm8/oracleclient/product/db11gr2/lib/libclntsh.so.11.1 libclntsh.so
3) 修改用户的profile将客户端的路径写入
编辑/etc/profile增加环境变量
vi /etc/profile
export  ORACLE_HOME=/usr/lib/oracle/11.2/client64
export  TNS_ADMIN=$ORACLE_HOME/network/admin
export  LD_LIBRARY_PATH=$ORACLE_HOME/lib
export  PATH=$ORACLE_HOME/bin:$PATH
Source /etc/profile
4)增加ORACLE服务名配置文件
在/dm8/oracleclient/product/db11gr2/network/admin下批配置 tnsnames.ora,用来添加ORADB 的服务名
  vi /dm8/oracleclient/product/db11gr2/network/admin/tnsnames.ora 
ORADB=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=29.28.147.89)(PORT=18789))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=ORADB)))
5)测试是否正确安装
1、tnsping测试
[dmdba@pt20paappdbyg4n-M3~]$tnsping ORADB
TNS Ping Utility for Linux: Version 11.2.0.4.0 - Production on 04-NOV-2021 15:34:10
Copyright (c) 1997, 2013, Oracle.  All rights reserved.
Used parameter files:
/dm8/oracleclient/product/db11gr2/network/admin/sqlnet.ora
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=19.28.147.89)(PORT=18789))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=ORADB)))
OK (20 msec)
2、用账户测试从达梦端连oracle
[dmdba@pt20]$sqlplus weixin/xxxx@ORADB
SQL*Plus: Release 11.2.0.4.0 Production on Thu Nov 4 15:36:33 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> 
二、创建使用dblink并验证
./disql SYSDBA/xxx
1、创建dblink(方法一,使用别名需要配置前面的tnsname.ora)
SQL> create or replace public link sit_thc_oracle  connect  'oracle'  with weixin identified by "weixin2017"  using 'ORADB';
executed successfully
used time: 84.017(ms). Execute id is 501.

SQL> select * from dual@sit_thc_oracle;
2、创建dblink(方法二)
SQL> create or replace public link  test_thc_oracle  connect 'oracle' with weixin identified by "xxxx"  using '29.28.147.89:18789/oradb';
executed successfully
used time: 60.281(ms). Execute id is 600.

3、验证dblink可用性
LINEID     DUMMY
---------- -----
1          X
三、查询当前的DBLINK
SQL> select * from v$dblink;

LINEID     LINK_CONN            LINK_ID     LINK_NAME       SCH_ID      OWNER_ID    IS_PUBLIC LOGIN_NAME HOST_NAME                PORT_NUM    LOGGED_ON
---------- -------------------- ----------- --------------- ----------- ----------- --------- ---------- ------------------------ ----------- ---------
           HETEROGENEOUS PROTOCOL IN_USE
           ------------- -------- ------
1          129705880            201326593   SIT_THC_ORACLE  0           50331649    YES       WEIXIN     ORADB                    NULL        YES
           YES           TCP/IP   YES

2          139838902922176      201326594   TEST_THC_ORACLE 0           50331649    YES       WEIXIN     29.28.147.89:18789/oradb NULL        YES
           YES           TCP/IP   YES


used time: 0.581(ms). Execute id is 602.
SQL> 
四、常见问题处理
错误1
select * from t1@link1;
执行失败(语句1)
第1 行附近出现错误[-2245]:
DBLINK加载库文件失败

解决方案:
1、动态库的名称是否为libclntsh.so,否则也会报错。ln -s libclntsh.so.11.1  libclntsh.so
2、启动达梦的会话前ldd libclntsh.so 检查该依赖库是否完整。
如有缺少需要设置环境变量
export ORACLE_HOME=/usr/lib/oracle/11.2/client64
export LD_LIBRARY_PATH=$ORACLE_HOME


错误2
select * from t1@link1;
执行失败(语句1)
第1 行附近出现错误[-2251]:
DBLINK远程服务器获取对象[T1]失败

解决方案:
查看达梦的日志:发现错误是Oracle connect error:[12154]ORA-12154: TNS:could not resolve the connect identifier specified
could not resolve the connect identifier specified
常见错误:
1、连接串写错
create or replace public link link1 connect 'ORACLE' with system identified by "hust4400" using 'ORCL';

再次执行,成功。
2、如果前面的export LD_LIBRARY_PATH=/u01/media/oracle/clientora 没有设置ORACLE_HOME,此时需要配置TNS_ADMIN ,加载tnsnames.ora
export TNS_ADMIN= /usr/lib/oracle/11.2/client64/network/admin可以解决。
也可以直接配置export ORACLE_HOME=/u01/media/oracle/clientora,这样也OK,但是必须是tnsnames.ora不需在$ ORACLE_HOME/network/admin下,换成其他的路径无法加载。
查看日志发现是Oracle connect error:[12170]ORA-12170: TNS:Connect timeout occurred 报错的解决:1、可能Oracle服务器端监听没有启动 ,启动oracle 的监听,重启DM。
ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 19.168.1.144)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

错误3
Can't match object[dual] in dblink remote server

解决方法:查看达梦日志cd /dm8/log
[dmdba@pt20/dm8/log]$cat dm_THCDB_202111.log |grep ORA
2021-11-03 23:15:08.077 [ERROR] database P0000028260 T0000000000000028373  Oracle error:[1017]ORA-01017: invalid username/password; logon denied
2021-11-03 23:36:23.777 [ERROR] database P0000031089 T0000000000000031199  Oracle error:[1017]ORA-01017: invalid username/password; logon denied
可以定位到是用户名、密码错误,原因是之前在创建dblink的时候我个人使用的用户名(小写)加了引号导致的

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/840274.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号