物理上存放於網路的多個oracle資料庫,邏輯上可以看成乙個單個的大資料庫。 使用者可以通過網路對異地資料庫中的資料同時進行訪問,而伺服器之間的協同處理對於工作站使用者及應用程式而言是完全透明的,開發人員無需關心網路的鏈結細節、無需關心資料在網路接點中的具體分布情況、也無需關心伺服器之間的協調工作過程。
實現可分為四步。
1、在本地tnsnames.ora(該配置檔案一般在"oracle主目錄/ora90/network/admin"中)裡面配置乙個服務命名,用於連線遠端資料庫。
tooradb10g = //dblink的連線的服務名
(description =
(address_list =
(address =
(protocol = tcp) //採用tcp/ip協議
(host = 10.10.10.21) //欲鏈結主機名稱或ip位址
(port = 1521)) //網路埠1521
)(connect_data =
(service_name = oradb10g) //安裝oracle採用的sid,即遠端資料庫服務名))
2、建立db_link(create public database link)
例:create public database link db21
connect to jdc //使用者
identified by angel //密碼
using 'tooradb10g'
3、建立同義詞(create sysnonym) 例:
create or replace synonym syn_grading
for grading@db21
4、使用(結合上同義詞舉例)。
1)、查詢select * from syn_grading, 與select * from grading@db21一樣。查詢的10.10.10.21主機上oradb10g資料庫中的grading表
2)、增、刪、改需要建立觸發器。
create or replace trigger tri_grading
after insert or delete or update
on grading //本地資料庫表
for each row
begin
if inserting then
insert into syn_grading (id, deviceid, grade, intheyear, gradingman, carid, state, deptname, deptno)
values (:new.id, :new.deviceid, :new.grade, :new.intheyear, :new.gradingman, :new.carid, :new.state, :new.deptname, :new.deptno);
elsif updating then
update syn_grading set deviceid = :new.deviceid, grade = :new.grade, intheyear = :new.intheyear, gradingman = :new.gradingman, carid = :new.carid, state = :new.state, deptname = :new.deptname, deptno = :new.deptno
where id = :old.id;
elsif deleting then
delete from syn_grading where id = :old.id;
end if;
end tri_grading;
這樣,在往本地資料表grading中增、刪、改資料時,10.10.10.21主機上oradb10g資料庫中的grading表也將得到同步。
Oracle db link資料同步(資料量小)
方案1 都是oracle資料庫,所以可以考慮db link create public database link dblink connect touser identified by password using tns name grant create database link to hr...
關係型資料庫 oracle dblink
在跨資料庫查詢時常會用到dblink,例如 兩台不同的資料庫伺服器,從一台資料庫伺服器的義哥使用者讀取另一台資料庫伺服器下面的某個schema的資料,這個時候,使用dbling能夠很方便的實現。dblink和資料庫中的view功能類似,建立dblink的時候需要直接到待讀取資料庫的ip位址,ssid...
oracle dblink建立過程
兩台不同的資料庫伺服器,從一台資料庫伺服器的乙個使用者讀取另一台資料庫伺服器下的某個使用者的資料,這個時候可以使用dblink。其實dblink和資料庫中的view差不多,建dblink的時候需要知道待讀取資料庫的ip位址,ssid以及資料庫使用者名稱和密碼。建立可以採用兩種方式 1 已經配置本地服...