Oracle DBLink跨數據庫訪問SQL server數據同步


  第一步:需要去下載一個透明網管,相當於一個中間件(我們用的Oracle 11g,可能不同的數據庫版本要安裝不同的透明網管)

需要的朋友請到我的百度雲盤上下載

鏈接:https://pan.baidu.com/s/1W6rEww1_NxxsMXYi0BOKPQ
提取碼:sac2

  第二步:安裝透明網關

1、解壓安裝包后,點擊setup.exe安裝

2、下一步(注:貌似一定要和Oracle數據庫安裝目錄一致,第一次安裝的時候,就和Oracle安裝在不同地方了,最終百度很久發現,要和Oracle安裝同一個位置)

 

 

3、選擇組建,選擇SQL Server

4、填寫SQL SERVER的主機名和數據庫名稱

 

5、開始安裝

 

6、安裝完成后就退出,然后開始配置監聽,下面是重點!!!!

   第三步:透明網關配置

 配置說明:

本地Oracle安裝目錄:D:\Oracle\product\11.2.0\dbhome_1

本地DBLink安裝目錄:D:\Oracle\product\11.2.0\dbhome_1

SQL Server:賬號:sa;密碼:password;IP地址:127.0.0.1

1、來到:D:\Oracle\product\11.2.0\dbhome_1\dg4msql\admin;打開initdg4msql.ora

1 這個目錄下可以看到以下initdg4msql.ora文件,上面在安裝透明網關的時候有配置的要鏈接SQL SERVER數據的地址和數據庫名稱,在這里都可以體現:

配置文件:initdg4msql.ora

 1 # This is a customized agent init file that contains the HS parameters
 2 # that are needed for the Database Gateway for Microsoft SQL Server
 3 
 4 #
 5 # HS init parameters
 6 #
 7 HS_FDS_CONNECT_INFO=[127.0.0.1]:1433//DEMO   注:連接其他的SQL Server可修改此處
 8 HS_FDS_TRACE_LEVEL=OFF
 9 HS_FDS_RECOVERY_ACCOUNT=RECOVER
10 HS_FDS_RECOVERY_PWD=RECOVER

檢查一下HS_FDS_CONNECT_INFO是否是我們想要鏈接的地址,格式為:目標數據庫的IP地址:端口//數據庫名。SQL SERVER的默認端口是1433。

配置文件:listener.ora.sample(localhost是監聽的IP地址,這里我們連的是本地,127.0.0.1也是可以的)

 1 # This is a sample listener.ora that contains the NET8 parameters that are
 2 # needed to connect to an HS Agent
 3 
 4 LISTENER =
 5  (ADDRESS_LIST=
 6       (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))
 7  )
 8 
 9 SID_LIST_LISTENER=
10   (SID_LIST=
11       (SID_DESC=
12          (SID_NAME=dg4msql)
13          (ORACLE_HOME=D:\Oracle\product\11.2.0\dbhome_1)
14          (PROGRAM=dg4msql)
15       )
16   )
17 
18 #CONNECT_TIMEOUT_LISTENER = 0 

配置文件:tnsnames.ora.sample

1 # This is a sample tnsnames.ora that contains the NET8 parameters that are
2 # needed to connect to an HS Agent
3 
4 dg4msql  =
5   (DESCRIPTION=
6     (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))
7     (CONNECT_DATA=(SID=dg4msql))
8     (HS=OK)
9   ) 

 2、配置透明網關的監聽,來到:D:\Oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN(開始配置這3個文件)

 

配置文件:listener.ora

 1 # This is a sample listener.ora that contains the NET8 parameters that are
 2 # needed to connect to an HS Agent
 3 SID_LIST_LISTENER =
 4   (SID_LIST =
 5     (SID_DESC =
 6       (SID_NAME = CLRExtProc)
 7       (ORACLE_HOME = D:\Oracle\product\11.2.0\dbhome_1)
 8       (PROGRAM = extproc)
 9       (ENVS = "EXTPROC_DLLS=ONLY:D:\Oracle\product\11.2.0\dbhome_1\bin\oraclr11.dll")
10     )
11     (SID_DESC=
12          (SID_NAME=dg4msql)
13          (ORACLE_HOME=D:\Oracle\product\11.2.0\dbhome_1)
14          (PROGRAM=dg4msql)
15     )
16   )
17 
18 LISTENER =
19   (DESCRIPTION_LIST =
20     (DESCRIPTION =
21       (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
22       (ADDRESS = (PROTOCOL = TCP)(HOST = YRDLG5GS4G3ODYI)(PORT = 1521))
23       (ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521))
24     )
25   )
26 
27 ADR_BASE_LISTENER = D:\Oracle
28 
29 #CONNECT_TIMEOUT_LISTENER = 0 
1 這里需要注意的主要是一下幾點:
2 PROGRAM為dg4msql:因為實例的配置文件在dg4msql目錄下,就是上面的initdg4msql.ora文件所在的目錄
3 SID_NAME為dg4msql:這個sid就是上面的文件名中的sid,initdg4msql.ora的sid為dg4msql
4 ORACLE_HOME就是我們透明網關的安裝目錄
5 ORACLE的監聽端口是1521,我的oracle和透明網關是安裝在同一台機器上的,所以透明網關的監聽端口設置為1522。
6 一個initSID.ora文件就對應一個SID_DESC,可以根據想要鏈接的數據庫來配置。

配置文件:sqlnet.ora

 1 # sqlnet.ora Network Configuration File: D:\Oracle\product\11.2.0\dbhome_1\network\admin\sqlnet.ora
 2 # Generated by Oracle configuration tools.
 3 
 4 # This file is actually generated by netca. But if customers choose to 
 5 # install "Software Only", this file wont exist and without the native 
 6 # authentication, they will not be able to connect to the database on NT.
 7 
 8 SQLNET.AUTHENTICATION_SERVICES= (NONE)
 9 
10 NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

配置文件:tnsnames.ora

 1 # This is a sample tnsnames.ora that contains the NET8 parameters that are
 2 # needed to connect to an HS Agent
 3 ORCL =
 4   (DESCRIPTION =
 5     (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
 6     (CONNECT_DATA =
 7       (SERVER = DEDICATED)
 8       (SERVICE_NAME = orcl)
 9     )
10   )
11 
12 dg4msql  =
13   (DESCRIPTION=
14     (ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521))
15     (CONNECT_DATA=(SID=dg4msql))
16     (HS=OK)
17   ) 

配置完之后,一定不要忘記重啟監聽!!!!!!一定不要忘記重啟監聽!!!!!!一定不要忘記重啟監聽!!!!!!

1 命令:lsnrctl reload

查看監聽狀態:

  第四步:Oracle配置DBLink

 1、先查看哪些用戶可以使用DBLink,沒有則創建權限

1 SELECT * FROM user_sys_privs where privilege like upper('%DATABASE LINK%')

 

賦權限配置命令

1 如:grant create public database link to system ;
2 格式:grant create public database link to 用戶名 ;

2、建立DBLink(用戶要一定要權限才可以繼續往下執行哦!沒有的往上看,給用戶配置權限)

 

1 查詢dblink:
2 select * from dba_db_links;
3 
4 刪除dblink:
5 DROP DATABASE LINK [name];  

 

 1 create database link DBTEST1
 2   connect to SA identified by "password"
 3   using 'dg4msql';
 4 
 5 
 6 
 7 格式:
 8 create database link DBLink名稱  9   connect to SQL Server賬戶 identified by "SQL Server密碼"
10   using 'SID';

搞定!!!!

 下面這個報錯信息,QQ群問一個遍,很少人知道DBLink這玩意,百度上資料也很少,搗鼓一下午,終於搞定了

出現這個問題是因為這6個文件導致的!!!!!!

 搗鼓一下午,問題找到是因為這6個文件配置出問題了,這次就不再敘述了,修改那個配置文件了,配置文件因人而異,剩下的自己百度去查吧~~~~好了,搗鼓一天了,洗洗睡了,拜~~

整理的配置文檔:

鏈接:https://pan.baidu.com/s/1Wdlo7j1NVmbmrvEwYNk1qw
提取碼:6esm

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM