最近做的專案都是跟資料庫相關的一些東西,有時間就總結一下吧,首先總結一下dblink。
1.什麼時候會是用dblink
當使用者要跨本地資料庫,訪問另外乙個資料庫表中的資料時,本地資料庫就要建立遠端資料庫的dblink。通過dblink本地資料庫可以像訪問本地資料庫一樣訪問遠端資料表中的資料。
2.如何在本地建立dblink
建立dblink有兩種方式,不過在建立dblink之前使用者必須有建立dblink的許可權。檢視有關dblink的許可權,比如用tel25_yy/abc123@rco09 檢視本地dblink的許可權:
select * from user_sys_privs t where t.privilege like upper('%link%');
結果是:
tel25_yy drop public database link no
tel25_yy create public database link no
在資料庫中dblink有三種許可權create database link(所建立的dblink只能是建立者能使用,別的使用者使用不了),create public database link(public表示所建立的dblink所有使用者都可以使用),drop public database link。
建立dblink的第一種方式:在本地資料庫tnsname.ora檔案中配置了要遠端訪問的資料庫。
比如:在本地rco09 上建立dblink
create database link yy_telus_test
connect to tel25_yy identified by abc123 using 'rco08';
其中yy_telus_test 是你建立的dblink的名字,tel25_yy 是你遠端訪問資料庫的使用者名稱,abc123是你遠端訪問資料庫的密碼,rco08 是你通過dblink要遠端訪問的資料庫。
建立完成後,你在本地
rco09上就可以訪問rc008上的表了。比如:檢視test_forall表:
select * from test_forall@rc008;
第二種方式:是在本地資料庫tnsnames.ora檔案中沒有配置要訪問的遠端資料庫,要把tnsnames.ora的資訊直接放在建立dblink語句後面。
rco08 = (description = (address = (protocol = tcp)
(host = 192.168.1.5) (port = 1521))
(connect_data = (sid=rco08)))
其實兩種方法配置dblink是差不多的,但是還是第二種方法比較好,不受本地服務的影響。
3.如何檢視已經建好的dblink
select * from all_db_links where username='telus25_yy';
telus25_yy yy_tel_test2 telus25_yy rco07 16/12/14
telus25_yy yy_tel_test telus25_yy rco08 16/12/14
ORACLE如何建立DBLINK
當前使用者下執行 create database link testdblink connect to dbname identified by dbpassword using description address list address protocol tcp host 192.168.2...
oracle中如何建立dblink
當使用者要跨本地資料庫,訪問另外乙個資料庫表中的資料時,本地資料庫中必須建立了遠端資料庫的dblink,通過dblink本地資料庫可以像訪問本地資料庫一樣訪問遠端資料庫表中的資料。下面講介紹如何在本地資料庫中建立dblink.建立dblink一般有兩種方式,不過在建立dblink之前使用者必須有建立...
oracle中如何建立dblink
當使用者要跨本地資料庫,訪問另外乙個資料庫表中的資料時,本地資料庫中必須建立了遠端資料庫的dblink,通過dblink本地資料庫可以像訪問本地資料庫一樣訪問遠端資料庫表中的資料。下面講介紹如何在本地資料庫中建立dblink.建立dblink一般有兩種方式,不過在建立dblink之前使用者必須有建立...