**:
首先建立乙個 dblink(database link)
sql**
create
database
link kings
--dblink 的名字,同步的時候要用到這個名字,可以隨便取
connect
tokings
--連線到那個資料庫的使用者名稱
identified by
kings123
-- 連線那個資料庫的密碼
using '(description =
(address = (protocol = tcp)(host = 192.168.1.75)(port = 1521))
(connect_data =
(server = dedicated)
(service_name = xe)
) )';
-- 上邊的 host 是連線資料庫的 ip ,port 是埠號,要沒改過的話就是 1521
有了 kings(dblink),我們就可以實現資料同步的工作了,通過觸發器來實現
先說下場景,假如我們現在要做個同步的功能,在操作表as_emp的時候
1、新增:同樣往 192.168.1.75 那個資料庫裡的empinfo新增一條記錄(通過 empinfo@kings 表名@dblink 的方式訪問)
2、更新:在更新as_emp.emp_code的時候,把這個欄位的資料更新到empinfo.pass裡去(當然你也可以做刪除的操作...我這個業務裡沒這個需求)
sql**
create
orreplace
trigger
syn_as_emp
after
insert
orupdate
onas_emp
foreach row
begin
case
when
inserting
then
insert
into
empinfo@kings(userid,pass)
values
(:new.emp_code,:new.emp_name);
when
updating
then
update
empinfo@kings
setpass=:new.emp_name
where
userid=:new.emp_code;
endcase
; end
; 後邊我突然想到了個問題,建立dblink的**應該要寫到觸發器裡,先得確保有了觸發器才能執行同步的操作呀,要不然資料庫每次啟動以後,連線就斷了的!
我按照程式的思想想寫個 trycatch()... 可怎麼都寫不了,突然看到有個地方說刪除 dblink的命令是 drop database link dblink名字
我就覺得自己想太多了,用到 drop 的地方,就像表啊什麼的,已經寫到庫里的,是肯定存在的,於是我嘗試著重啟資料庫,果然,只要 dblink 沒被刪除,再資料庫起來的時候 dblink 就存在了
ORACLE 資料同步
這是我之前做過的資料庫同步的問題,最近老是看到有人在csdn裡問資料庫同步的問題,所以我就想把我的實現方案共享一下。多多交流。用到的表是我臨時建立的表。有不妥之處請見諒,畢竟是免費的東西。在本地建立兩張表 t1,t2 這兩張表和遠端的表結構一樣,通過觸發器實現資料的同步,然後對本地的兩張表進行物化,...
oracle資料同步例項
建立dblink create database link db117 例項 connect to test u identified by test u using description address list address protocol tcp host 192.168.1.117 p...
Oracle 自動同步資料指令碼
前段時間在處理乙個生產異常的時候發現,我們的測試資料庫和 資料庫已經很久都沒有同步生產上的資料了。我們開發人員在處理異常的時候往往要模擬一條資料來進行除錯,若遇到需要大量接近生產的基礎資料進行除錯的時候就比較痛苦了。而目前遇到這種情況則需要實施人員到生產資料庫備份資料,通過oracle匯出將資料導成...