ORACLE創(chuàng)建DBlink的過程及使用方法
1、建立dblink之前需要確認(rèn)的事項(xiàng):
#確認(rèn)從local database到remote database的網(wǎng)絡(luò)連接是正常的,tnsping要能成功。#確認(rèn)在remote database上面有相應(yīng)的訪問權(quán)限。1.2. 概述1、database link是定義一個數(shù)據(jù)庫到另一個數(shù)據(jù)庫的路徑的對象,database link允許你查詢遠(yuǎn)程表及執(zhí)行遠(yuǎn)程程序。在任何分布式環(huán)境里,database都是必要的。另外要注意的是database link是單向的連接。
2、在創(chuàng)建database link的時候,Oracle再數(shù)據(jù)字典中保存相關(guān)的database link的信息,在使用database link的時候,Oracle通過Oracle Net用用戶預(yù)先定義好的連接信息訪問相應(yīng)的遠(yuǎn)程數(shù)據(jù)庫以完成相應(yīng)的工作。
1.2.1. database link分類類型Owner描述Pr ivate創(chuàng)建database link的user擁有該database link在本地?cái)?shù)據(jù)庫的特定的schema下建立的database link。只有建立該database link的schema的session能使用這個database link來訪問遠(yuǎn)程的數(shù)據(jù)庫。同時也只有Owner能刪除它自己的private database link。PublicOwner是PUBLIC.Public的database link是數(shù)據(jù)庫級的,本地?cái)?shù)據(jù)庫中所有的擁有數(shù)據(jù)庫訪問權(quán)限的用戶或pl/sql程序都能使用此database link來訪問相應(yīng)的遠(yuǎn)程數(shù)據(jù)庫。GlobalOwner是PUBLIC.Global的database link是網(wǎng)絡(luò)級的,When an Oracle network uses a directory server, the directory server automatically create and manages global database links (as net service names) for every Oracle Database in the network. Users and PL/SQL subprograms in any database can use a global link to access objects in the corresponding remote database.Note: In earlier releases of Oracle Database, a global database link referred to a database link that was registered with an Oracle Names server. The use of an Oracle Names server has been deprecated. In this document, global database links refer to the use of net service names from the directory server.1.3. database link的創(chuàng)建創(chuàng)建dblink的用戶有對應(yīng)的數(shù)據(jù)庫權(quán)限,創(chuàng)建dblink命令為:
--public表示所創(chuàng)建的dblink所有用戶都可以使用
create public database link或者--所創(chuàng)建的dblink只能是創(chuàng)建者能使用,別的用戶使用不了
create database link如果用戶沒有權(quán)限創(chuàng)建dblink,則可以通過管理員身份并使用 :
grant create public database link, create database link to myAccount;1.4. 查看dblinkset linesize 300set pagesize 999col DB_LINK format a30col USERNAME format a30col HOST format a30col CREATED format a10col OWNER format a10col object_name format a20select owner,object_name from dba_objects where object_type='DATABASE LINK';SELECT A.OWNER, A.HOST, A.DB_LINK, A.USERNAME, A.CREATED, DECODE (B.FLAG, 0, 'NO', 1, 'YES') 'DEC', B.AUTHUSR, C.STATUSFROM DBA_DB_LINKS A, SYS.USER$ U, SYS.LINK$ B, DBA_OBJECTS C WHERE A.DB_LINK = B.NAME AND A.OWNER = U.NAME AND B.OWNER# = U.USER# AND A.DB_LINK = C.OBJECT_NAME AND A.OWNER = C.OWNER AND C.OBJECT_TYPE = 'DATABASE LINK'ORDER BY 1, 2, 3;查看dblink的link信息:select * from dba_db_links;或者
select * from dba_db_links;如:A庫需要訪問B庫的表數(shù)據(jù),需要在A庫建立連接到B庫的dblink,在A賬戶下執(zhí)行(推薦):
create database link LIS_LINK01 connect to bUser identified by bPasword using '10.22.xx.xx:1521/orcl'create database link hebtz connect to hebtz identified by '1' using '192.168.2xx:1521/hebtzstd';bUser:B庫的數(shù)據(jù)庫賬戶
bPassword:B庫的數(shù)據(jù)密碼
10.22.xx.xx:B庫的ip地址
create database link blink1 connect to dbName identified by dbPassword using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = 192.168.1.106)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl)))';--blink1 : 表示dblink名字--dbName :表示 遠(yuǎn)程數(shù)據(jù)庫的用戶--dbPassword:表示 遠(yuǎn)程數(shù)據(jù)庫的密碼--HOST : 表示遠(yuǎn)程數(shù)據(jù)庫IP--PORT : 表示遠(yuǎn)程數(shù)據(jù)庫端口--SERVICE_NAME : 遠(yuǎn)程數(shù)據(jù)庫的實(shí)例名1.5. 使用toad for oracle創(chuàng)建dblink圖解dblink創(chuàng)建過程:
這時可以通過SSH用戶訪問SJSJZX用戶中的表了:
select * from T_WEBSERVICE@db31.6. database link刪除-- 刪除public類型的database link
DROP PUBLIC database link link_name;-- 刪除非public類型的database link
-- 注意:只有owner自己能刪除自己的非public類型database link
DROP database link link_name;1.7. 通過dblink應(yīng)用例子當(dāng)需要跨庫拷貝數(shù)據(jù)而且數(shù)據(jù)量很大的時候,使用dblink速度很快。
如:通過dblink跨庫復(fù)制數(shù)據(jù)量非常多的表T_WEBSERVICE
create table test as select * from T_WEBSERVICE@db3到此這篇關(guān)于ORACLE DBlink的創(chuàng)建和使用的文章就介紹到這了,更多相關(guān)oracle創(chuàng)建dblink內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
