[原創] 關於 分散式oracle中 database link 我的一點經驗 - Chi...

關於分散式oracle中databaselink我的一點經驗 在做分散式資料庫時難免用到dblink,但關於dblink的資料很少,很多書上提到了,但不詳細。我在實際應用中總結了一點經驗,現在貼出來,大家共同討論。 資料庫鏈接定義從一個Oracle資料庫到另一個資料庫的單行通信通道。 建立鏈接前要先有到遠程資料庫的命名服務(連接字元串),就是tnsnames.ora中描述的那個,如"oradxp" 先測試一下:$tnspingoradxp Attempingtocontact(...)OK(30毫秒). 說明對遠程資料庫oradxp可訪問。 創建資料庫鏈接的語法為: CREATEPUBLICDATABASELINKoradxp.cug.edu.cnUSING"oradxp"; 其中oradxp.cug.edu.cn必須是遠程資料庫的全局名(SID),"oradxp"就是到遠程的連接字元串。遠程資料庫的全局名可以通過登陸遠程機, SELECT*FROMglobal_name; 得到。 現在你就可以用鏈接oradxp.cug.edu.cn訪問遠程資料庫了 如 SELECT*[email protected]; 看看得到的是不是遠程機的全局名。 所有SELECT語句後面跟上鏈接名都是對遠程機的訪問。 注意:登陸名口令就是當前登陸本機的用戶名和口令。也就是如果你用的是public鏈接,那麼在遠程就要有一個和本機相同的用戶/口令才行。如:你以aaa/aaa登錄本機,然後執行 SELECT*[email protected]; 那麼對遠程數據BBB.bbb的訪問用戶為aaa口令為aaa 也就是在本機和遠程機上都有用戶aaa口令都為aaa才能執行成功! 關於私有鏈接: CREATEDATABASELINKoradxp.cug.edu.cnCONNECTTOsystemIDENTIFIEDBYaaa; 這就建立了system的私有鏈接。 私有鏈接和public鏈接的差別就是登錄名口令的限制。也就是 你不管用什麼用戶登錄本機,執行 SELECT*[email protected]; 訪問遠程機數據BBB.bbb的用戶和口令都為system/aaa 建好的數據鏈接放在系統表SYS.link$表中 通過OEM控制台的分布-〉資料庫鏈接可以查看所有的鏈接。 要刪除publiclink可以 droppublicdatabaselinklinkname; 對於私有鏈接先以相應用戶登陸,如上述system/aaa 然後dropdatabaselinklinkname; 當然,直接刪除SYS.link$表中的記錄一樣可行。 以上是本人摸爬滾打中總結出來的,不一定都正確,還望各位實踐指正!
推薦閱讀:

[個人專集] 【秋韻雨思】2013-46原創--嫻靜短袖
原創——兩隻蝴蝶——外兩首——一千個理由——見你一面
冬日蘆花【原創】
觀念決定一切 (原創)
(原創)愛的就是你

TAG:經驗 | 原創 | 分散式 | 關於 |