注册
DM配置DBLINK连接ORACLE数据库
专栏/培训园地/ 文章详情 /

DM配置DBLINK连接ORACLE数据库

火星撞🌏 2024/04/25 1201 1 1
摘要

1、Oracle数据库:
已安装Oracle数据库
2、dm数据库:
已安装DM数据库

3、安装客户端
解压客户端文件到

[root@localhost ~]# mkdir -p  /opt/oraclient/
[root@localhost ~]# chmod -R 775 /opt/oraclient/
[root@localhost ~]# chown -R dmdba.dinstall /opt/oraclient/
[root@localhost ~]# su - dmdba
[dmdb@localhost ~]# ls -lh /opt/oraclient/
总用量 118M
drwxr-xr-x 5 dmdba dinstall 4.0K 12月 26 03:46 instantclient_21_4
-rw-r--r-- 1 dmdba dinstall  76M 12月 26 03:44 instantclient-basic-linux.x64-21.4.0.0.0dbru.zip
-rw-r--r-- 1 dmdba dinstall  37M 12月 26 03:44 instantclient-basiclite-linux.x64-21.4.0.0.0dbru.zip
-rw-r--r-- 1 dmdba dinstall 1.6M 12月 26 03:44 instantclient-jdbc-linux.x64-21.4.0.0.0dbru.zip
-rw-r--r-- 1 dmdba dinstall 780K 12月 26 03:44 instantclient-odbc-linux.x64-21.4.0.0.0dbru.zip
-rw-r--r-- 1 dmdba dinstall 978K 12月 26 03:44 instantclient-sdk-linux.x64-21.4.0.0.0dbru.zip
-rw-r--r-- 1 dmdba dinstall 915K 12月 26 03:44 instantclient-sqlplus-linux.x64-21.4.0.0.0dbru.zip
-rw-r--r-- 1 dmdba dinstall 1.1M 12月 26 03:44 instantclient-tools-linux.x64-21.4.0.0.0dbru.zip


4、添加环境变量

[dmdb@localhost ~]# vim .bash_profile

export PS1="[`whoami`@`hostname`:"'$PWD]$ '
export ORACLE_HOME=/opt/oraclient/instantclient_21_4
export TNS_ADMIN=$ORACLE_HOME/network/admin
export PATH=$ORACLE_HOME:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH
export NLS_LANG='AMERICAN_AMERICA.AL32UTF8'
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"

[dmdb@localhost ~]# . .bash_profile


5、配置tnsnames.ora

[dmdba@localhost:/home/dmdba]$ cat /opt/oraclient/instantclient_21_4/network/admin/tnsnames.ora 
ORCLPDB01 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.25.10)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orclpdb01)
    )
  )


6、开始创建dblink
6.1、测试oracle数据库登录

[dmdba@localhost:/home/dmdba]$ sqlplus scott/tiger@ORCLPDB01

SQL*Plus: Release 21.0.0.0.0 - Production on Sun Dec 26 04:21:14 2021
Version 21.4.0.0.0

Copyright (c) 1982, 2021, Oracle.  All rights reserved.

Last Successful login time: Sun Dec 26 2021 06:51:21 +08:00

Connected to:
Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0

SQL> select count(*) from emp;

  COUNT(*)
----------
	14
	

6.2、登录DM数据库

[dmdba@localhost:/home/dmdba]$ disql SYSDBA/SYSDBA

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 1.009(ms)
disql V8
SQL> create link ORCLPDB01 connect 'ORACLE' with SCOTT identified by tiger using 'ORCLPDB01';
操作已执行
已用时间: 2.218(毫秒). 执行号:501.


6.3、重启DM数据库

[dmdba@localhost:/home/dmdba]$ DmServiceDMSERVER restart
Stopping DmServiceDMSERVER:                                [ OK ]
Starting DmServiceDMSERVER:                                [ OK ]


6.4、连接数据库

[dmdba@localhost:/home/dmdba]$ disql SYSDBA/SYSDBA

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 1.833(ms)
disql V8
SQL> select * from EMP@ORCLPDB01;

行号     EMPNO ENAME  JOB       MGR  HIREDATE            SAL     COMM    DEPTNO
---------- ----- ------ --------- ---- ------------------- ------- ------- ------
1          7369  SMITH  CLERK     7902 1980-12-17 00:00:00 800.00  NULL    20
2          7499  ALLEN  SALESMAN  7698 1981-02-20 00:00:00 1600.00 300.00  30
3          7521  WARD   SALESMAN  7698 1981-02-22 00:00:00 1250.00 500.00  30
4          7566  JONES  MANAGER   7839 1981-04-02 00:00:00 2975.00 NULL    20
5          7654  MARTIN SALESMAN  7698 1981-09-28 00:00:00 1250.00 1400.00 30
6          7698  BLAKE  MANAGER   7839 1981-05-01 00:00:00 2850.00 NULL    30
7          7782  CLARK  MANAGER   7839 1981-06-09 00:00:00 2450.00 NULL    10
8          7788  SCOTT  ANALYST   7566 1987-04-19 00:00:00 3000.00 NULL    20
9          7839  KING   PRESIDENT NULL 1981-11-17 00:00:00 5000.00 NULL    10
10         7844  TURNER SALESMAN  7698 1981-09-08 00:00:00 1500.00 0       30
11         7876  ADAMS  CLERK     7788 1987-05-23 00:00:00 1100.00 NULL    20

行号     EMPNO ENAME  JOB     MGR  HIREDATE            SAL     COMM DEPTNO
---------- ----- ------ ------- ---- ------------------- ------- ---- ------
12         7900  JAMES  CLERK   7698 1981-12-03 00:00:00 950.00  NULL 30
13         7902  FORD   ANALYST 7566 1981-12-03 00:00:00 3000.00 NULL 20
14         7934  MILLER CLERK   7782 1982-01-23 00:00:00 1300.00 NULL 10

14 rows got

已用时间: 143.009(毫秒). 执行号:400.

SQL> select count(*) from EMP@ORCLPDB01;

行号     COUNT(*)            
---------- --------------------
1          14

已用时间: 6.611(毫秒). 执行号:401.


7、搭建dblink过程中遇到的错误
报错1:

SQL> select * from emp@ORCLPDB01;
select * from emp@ORCLPDB01;
第1 行附近出现错误[-2251]:DBLINK远程服务器获取对象[emp]失败.
已用时间: 00:00:01.033. 执行号:0.
解决办法:
SQL> drop link ORCLPDB01;
操作已执行
已用时间: 3.399(毫秒). 执行号:500.
SQL> create link ORCLPDB01 connect 'ORACLE' with SCOTT identified by tiger using 'ORCLPDB01';
操作已执行
已用时间: 2.218(毫秒). 执行号:501.

--创建link名字,用户名,ORCL服务名必须使用大写


报错2:

SQL> select count(*) from emp@ORCLPDB01;
select count(*) from emp@ORCLPDB01;
第1 行附近出现错误[-2256]:DBLINK远程服务器获取对象[emp]失败,错误详情[ORA-04043: object "emp" does not exist].
已用时间: 2.054(毫秒). 执行号:0.
解决办法:
[dmdba@localhost:/home/dmdba]$ disql SYSDBA/SYSDBA

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 1.833(ms)
disql V8
SQL> select * from EMP@ORCLPDB01;

行号     EMPNO ENAME  JOB       MGR  HIREDATE            SAL     COMM    DEPTNO
---------- ----- ------ --------- ---- ------------------- ------- ------- ------
1          7369  SMITH  CLERK     7902 1980-12-17 00:00:00 800.00  NULL    20
2          7499  ALLEN  SALESMAN  7698 1981-02-20 00:00:00 1600.00 300.00  30
3          7521  WARD   SALESMAN  7698 1981-02-22 00:00:00 1250.00 500.00  30
4          7566  JONES  MANAGER   7839 1981-04-02 00:00:00 2975.00 NULL    20
5          7654  MARTIN SALESMAN  7698 1981-09-28 00:00:00 1250.00 1400.00 30
6          7698  BLAKE  MANAGER   7839 1981-05-01 00:00:00 2850.00 NULL    30
7          7782  CLARK  MANAGER   7839 1981-06-09 00:00:00 2450.00 NULL    10
8          7788  SCOTT  ANALYST   7566 1987-04-19 00:00:00 3000.00 NULL    20
9          7839  KING   PRESIDENT NULL 1981-11-17 00:00:00 5000.00 NULL    10
10         7844  TURNER SALESMAN  7698 1981-09-08 00:00:00 1500.00 0       30
11         7876  ADAMS  CLERK     7788 1987-05-23 00:00:00 1100.00 NULL    20

行号     EMPNO ENAME  JOB     MGR  HIREDATE            SAL     COMM DEPTNO
---------- ----- ------ ------- ---- ------------------- ------- ---- ------
12         7900  JAMES  CLERK   7698 1981-12-03 00:00:00 950.00  NULL 30
13         7902  FORD   ANALYST 7566 1981-12-03 00:00:00 3000.00 NULL 20
14         7934  MILLER CLERK   7782 1982-01-23 00:00:00 1300.00 NULL 10

14 rows got

已用时间: 143.009(毫秒). 执行号:400.
SQL> select count(*) from EMP@ORCLPDB01;

行号     COUNT(*)            
---------- --------------------
1          14

已用时间: 6.611(毫秒). 执行号:401.

--对象名和link名必须使用大写


报错3:

[dmdba@localhost:/home/dmdba]$ disql SYSDBA/SYSDBA

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 2.576(ms)
disql V8
SQL> select count(*) from EMP@ORCLPDB01;
select count(*) from EMP@ORCLPDB01;
第1 行附近出现错误[-2245]:DBLINK加载库文件失败.
已用时间: 1.675(毫秒). 执行号:0.

解决办法:
[dmdba@localhost:/home/dmdba]$ DmServiceDMSERVER restart
Stopping DmServiceDMSERVER:                                [ OK ]
Starting DmServiceDMSERVER:                                [ OK ]
[dmdba@localhost:/home/dmdba]$ disql SYSDBA/SYSDBA

--必须使用dmdba操作系统用户重启数据库,以重新加载oracle库文件


评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服