oracle兩個表資料同步備份

2021-09-02 18:17:35 字數 2718 閱讀 9148

這段時間做sqoop2資料匯出,需要先將資料匯入到中間表,然後將中間表的資料同步到目的表,中間表和目的表字段完全一樣,只是表的名稱不一致。

方式一:觸發器

觸發器:是乙個與表相關聯的、儲存的pl/sql程式。每當乙個特定的資料操作語句(insert,update,delete)在指定的表上發出時,oracle自動地執行觸發器中定義的語句序列。 相當於監視器,對錶中資料進行增,刪,改時候自動工作,如果合法,才讓操作;

1、觸發器作用

資料確認

實施複雜的安全性檢查

做審計,跟蹤表上所做的資料操作等

資料的備份和同步

2、觸發器語法

create  [or replace] trigger  觸發器名  

on 表名

[for each row [when(條件) ] ]

declare

……begin

plsql 塊

end [觸發器名];

create or replace trigger tgr_name

after insert or update on power_forecast

for each row

begin

if inserting then

insert into t_powergrid_damage_forecast (pid,companyid,dept_code,forest_type,refid,line_fiveh_forecast,line_twoh_forecast,line_one h_forecast,line_thirtyh_forecast,line_tenh_forecast,station_fiveh_forecast,station_twoh_forecast,station_oneh_forecast,station_thirtyh_forecast,platformarea_forecast,user_forecast,spare1,spare2,spare3,create_date,create_userid)

values (:new.pid,:new.companyid,:new.dept_code,:new.forest_type,:new.refid,:new.line_fiveh_forecast,:new.line_twoh_forecast,:new.line_oneh_forecast,:new.line_thirtyh_forecast,:new.line_tenh_forecast,:new.station_fiveh_forecast,:new.station_twoh_forecast,:new.station_oneh_forecast,:new.station_thirtyh_forecast,:new.platformarea_forecast,:new.user_forecast,:new.spare1,:new.spare2,:new.spare3,:new.create_date,:new.create_userid);

end if;

end;

power_forecast : 中間表

t_powergrid_damage_forecast : 目的表

3、刪除觸發器

drop trigger  tgr_name
方式

二、儲存過程

儲存過程:一組為了完成特定功能事先編譯好的pl/sql程式塊,經編譯後儲存在資料庫中,使用者通過指定儲存過程的名字並給出引數(如果該儲存過程帶有引數)來執行它。

1、語法

create [or replace] procedure 

過程名[(引數名 in/out 資料型別)]

as | is //宣告變數

begin

plsql子程式體;

end [過程名];

create or replace procedure adddata

as fore_date date;

begin

select max(create_date) into fore_date from t_powergrid_damage_forecast;

insert into t_powergrid_damage_forecast

select *

from power_forecast t

where to_char(t.create_date, 'yyyy-mm-dd hh24:mi:ss') > to_char(fore_date, 'yyyy-mm-dd hh24:mi:ss');

commit;

end;

----提交儲存過程

begin

adddata;

end;

----提交儲存過程

call adddata();
刪除儲存過程

兩個Git倉庫之間的同步備份

在團隊開發時通常為了保密性和快速性,都會把git倉庫設定在區域網內。但是考慮到容災備份,最好在另外一台機器上也映象乙份一模一樣的倉庫,以防萬一。假設機器a上已經有了git倉庫test.git,要在機器b上映象這個git倉庫,則需要在機器b上執行 git clone mirror ssh git a ...

兩個hbase集群間同步資料

一.準備階段 1.準備2套能正常執行的hbase集群 new cluster 222 oldcluster 226 2.2套集群的hosts檔案內容都需要包含對方的主機位址 3.zookeeper可以單獨部署2個集群,也可用乙個zookeeper集群管理2套hbase集群,就是不能用hbase自帶的...

執行緒同步 兩個執行緒同步 加鎖

兩個執行緒同步 加鎖 include include include include include define bufsize 4 define number 8 int sum of number 0 int value 0 全域性變數,要注意加鎖 定義兩個變數 訊號量 sem t write...