oracle数据库dblink创建语句_「运维实验」——达梦数据库DBlink连接Oracle配置
經過昨天達夢數據庫間DBlink配置(具體操作可回看上一篇文章),今天做延伸實驗。
實驗環境說明
Oracle數據庫1:192.168.80.40 ora11g RHEL 6.5 64位
達夢數據庫1:192.168.80.41 DMSERVER2 RHEL 6.5 64位
oracle數據庫版本:oracle 11.2.0.4
達夢數據庫版本:DM Database Server x64 V7.1.5.117-Build(2016.09.29-73607)ENT
要求具備條件1: Oracle數據庫能對外提供服務,可以通過客戶端以及中間件配置,測試驗證數據庫能對外提供服務。
要求具備條件2: 兩臺服務器之間能正常訪問,且防火墻關閉,SELINUX均為關閉。
要求具備條件3:達夢數據庫版本要求,盡量為實驗測試的版本,實驗版本之前的版本出現嚴重的BUG,在進行DBLINK查詢時,達夢數據庫會宕機,出現以下錯誤提示:
說明:oracle單實例與集群測試均未有差別,如果集群RAC配置了scan IP,則可以使用scan IP地址來創建DBLINK,如未配置,則使用其中一個節點IP均可。
實驗步驟
1、下載OCI ,并安裝在達夢服務器
異構數據庫之間的訪問比同一數據庫產品要復雜的多,由于Oralce數據庫并沒有對達夢數據庫的兼容性,達夢數據庫創建的dblink是無法直接訪問到oralce數據庫的,但達夢可以通過Oracle數據庫提供OCI組件訪問到oralce數據庫
在ORACLE官網中下載OCI ,如下鏈接:
http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html
下載與數據庫版本一致的OCI,此實驗我下載的版本為:11.2.0.4版本OCI下載的OCI包,最好包含basic ,sqlplus ,sdk 并將它上傳到達夢數據庫所在的服務器上,如下:
-rwxr-xr-x. 1 root root 834491 11月 22 2016 instantclient-sqlplus-linux.x64-11.2.0.4.0.zip
-rwxr-xr-x. 1 root root 643089 11月 22 2016 instantclient-sdk-linux.x64-11.2.0.4.0.zip
-rwxr-xr-x. 1 root root 60704657 11月 22 2016 instantclient-basic-linux.x64-11.2.0.4.0.zip
所謂安裝,即解壓即可,在生成的instantclient_11_2 目錄中包含了達夢數據庫所需要的DBLINK與oralce數據庫連接的加載文件。
[root@oracleadg2 instantclient_11_2]# pwd
/dameng7/instantclient_11_2
[root@oracleadg2 instantclient_11_2]# ls -l
總用量 186444
-rwxrwxr-x 1 root root 25420 8月 25 2013 adrci
-rw-rw-r-- 1 root root 439 8月 25 2013 BASIC_README
-rwxrwxr-x 1 root root 47860 8月 25 2013 genezi
-r-xr-xr-x 1 root root 368 8月 25 2013 glogin.sql
-rwxrwxr-x 1 root root 53865194 8月 25 2013 libclntsh.so.11.1
-r-xr-xr-x 1 root root 7996693 8月 25 2013 libnnz11.so
-rwxrwxr-x 1 root root 1973074 8月 25 2013 libocci.so.11.1
-rwxrwxr-x 1 root root 118738042 8月 25 2013 libociei.so
-r-xr-xr-x 1 root root 164942 8月 25 2013 libocijdbc11.so
-r-xr-xr-x 1 root root 1502287 8月 25 2013 libsqlplusic.so
-r-xr-xr-x 1 root root 1469542 8月 25 2013 libsqlplus.so
-r--r--r-- 1 root root 2091135 8月 25 2013 ojdbc5.jar
-r--r--r-- 1 root root 2739616 8月 25 2013 ojdbc6.jar
-r-xr-xr-x 1 root root 9320 8月 25 2013 sqlplus
-rw-rw-r-- 1 root root 443 8月 25 2013 SQLPLUS_README
-rwxrwxr-x 1 root root 192365 8月 25 2013 uidrvci
-rw-rw-r-- 1 root root 66779 8月 25 2013 xstreams.jar
2、配置達夢連接Oracle數據庫的dblink加載庫環境
將上一步解壓出來的so文件復制拷貝到達夢數據庫所在的bin目錄下:
[dmdba@oracleadg2 bin]$ cp /dameng7/instantclient_11_2/*.so* ./
使用dmdba的帳號
-rwxr-xr-x 1 dmdba dinstall 19791 10月 25 20:16 rac_reinit
-rwxr-xr-x 1 dmdba dinstall 186016 10月 25 20:17 libdodbc.so
-rwxr-xr-x 1 dmdba dinstall 6634 10月 25 20:17 DmAuditMonitor
-rwxr-xr-x 1 dmdba dinstall 6589 10月 25 20:17 DmJobMonitor
-rwxr-xr-x 1 dmdba dinstall 6392 10月 25 20:17 DmInstanceMonitor
lrwxrwxrwx 1 dmdba dinstall 14 10月 25 20:17 libxqilla.so.3 -> libxqilla23.so
drwxr-xr-x 2 dmdba dinstall 4096 10月 25 20:17 lib
drwxr-xr-x 2 dmdba dinstall 4096 10月 25 20:55 pids
-rwxr-xr-x 1 dmdba dinstall 53865194 10月 25 23:41 libclntsh.so.11.1
-r-xr-xr-x 1 dmdba dinstall 7996693 10月 25 23:41 libnnz11.so
-rwxr-xr-x 1 dmdba dinstall 1973074 10月 25 23:41 libocci.so.11.1
-rwxr-xr-x 1 dmdba dinstall 118738042 10月 25 23:42 libociei.so
-r-xr-xr-x 1 dmdba dinstall 164942 10月 25 23:42 libocijdbc11.so
-r-xr-xr-x 1 dmdba dinstall 1502287 10月 25 23:42 libsqlplusic.so
-r-xr-xr-x 1 dmdba dinstall 1469542 10月 25 23:42 libsqlplus.so
將libclntsh.so.11.1 復制一個名字為:libclntsh.so ,也可以對這個文件創建一個軟鏈接,名字為:libclntsh.so,個人使用前面的方法。
-rwxr-xr-x 1 dmdba dinstall 6392 10月 25 20:17 DmInstanceMonitor
lrwxrwxrwx 1 dmdba dinstall 14 10月 25 20:17 libxqilla.so.3 -> libxqilla23.so
drwxr-xr-x 2 dmdba dinstall 4096 10月 25 20:17 lib
drwxr-xr-x 2 dmdba dinstall 4096 10月 25 20:55 pids
-rwxr-xr-x 1 dmdba dinstall 53865194 10月 25 23:41 libclntsh.so.11.1
-r-xr-xr-x 1 dmdba dinstall 7996693 10月 25 23:41 libnnz11.so
-rwxr-xr-x 1 dmdba dinstall 1973074 10月 25 23:41 libocci.so.11.1
-rwxr-xr-x 1 dmdba dinstall 118738042 10月 25 23:42 libociei.so
-r-xr-xr-x 1 dmdba dinstall 164942 10月 25 23:42 libocijdbc11.so
-r-xr-xr-x 1 dmdba dinstall 1502287 10月 25 23:42 libsqlplusic.so
-r-xr-xr-x 1 dmdba dinstall 1469542 10月 25 23:42 libsqlplus.so
-rwxr-xr-x 1 dmdba dinstall 53865194 10月 25 23:45 libclntsh.so
注意:有些文檔或達夢論壇上有建議復制拷貝在主機的/lib64目錄下,但個人測試過幾次,發現沒有效果。
3、重啟達夢數據庫
具備上一步條件后,重啟達夢數據庫,重啟步驟省略。重啟達夢數據庫的目的是為了達夢數據庫能加載到DBLINK訪問Oracle數據庫所需要的文件,否則在查詢DBLINK時,提示如下信息:
SQL> select * from emp@ceshi;
select * from emp@ceshi;
第1 行附近出現錯誤[-2245]:DBLINK加載庫文件失敗.
已用時間: 0.751(毫秒). 執行號:4.
另外經過多次驗證,客戶端軟件OCI刪除后,如果達夢數據庫不重啟還是可以用,如果重啟了數據庫,則需要重新配置,建議將oci中全部so文件拷貝過去,尚未驗證具體需要那些so 。
4、創建DBLINK,并測試
登錄到達夢數據庫,創建dblink 并查詢oralce數據庫中scott用戶下的表信息。
[root@oracleadg2 ~]# /dameng7/dmdbms/bin/disql sysdba/oracle
服務器[LOCALHOST:5236]:處于普通打開狀態
使用普通用戶登錄
登錄使用時間: 81.288(毫秒)
disql V7.1.5.117-Build(2016.09.29-73607)ENT
Connected to: DM 7.1.5.117
SQL> create or replace link ceshi connect 'ORACLE' with SCOTT identified by "tiger" using '(DESCRIPTION =
2 (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.80.40)(PORT = 1521)))
3 (CONNECT_DATA = (SERVICE_NAME = ora11g)))';
操作已執行
已用時間: 61.119(毫秒). 執行號:8.
SQL> select * from emp@ceshi;
行號 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
已用時間: 105.881(毫秒). 執行號:9.
測試成功
注意事項
1、達夢數據庫服務器之間通信要通,且防火墻,SELINUX關閉,否則提示如下報錯
SQL> select * from v$version@LINK02;
select * from v$version@LINK02;
第1 行附近出現錯誤[-2251]:DBLINK遠程服務器獲取對象[v$version]失敗.
已用時間: 26.456(毫秒). 執行號:5.
oci中so文件需全部拷貝到達夢數據庫bin目錄中,并且重啟達夢數據庫,否則提示加載DBLINK的庫文件失敗。
SQL> select * from emp@ceshi;
select * from emp@ceshi;
第1 行附近出現錯誤[-2245]:DBLINK加載庫文件失敗.
已用時間: 0.751(毫秒). 執行號:4.
3、、注意SQL串中用戶為大寫,否則提示如下錯誤信息:
SQL> select * from v$version@LINK02;
select * from v$version@LINK02;
第1 行附近出現錯誤[-2251]:DBLINK遠程服務器獲取對象[v$version]失敗.
已用時間: 26.456(毫秒). 執行號:5.
END
總結
以上是生活随笔為你收集整理的oracle数据库dblink创建语句_「运维实验」——达梦数据库DBlink连接Oracle配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 19-移位运算
- 下一篇: java 中文域名转码_转换java方法