Streams實踐之多表複製

2022-08-10 00:57:18 字數 2373 閱讀 5612

1. 源與目標資料庫初始化引數設定  

streams那些事之初始化引數設定

2. 在源和目標資料庫建立目錄

在源資料庫orcl上(必須先手工建立c:\learnoracle\backup\orcl\目錄)

sql>conn strmadmin/strmadmin;

sql>create directory orcldump as 'c:\learnoracle\backup\orcl\';

sql>conn /as sysdba

sql>grant read,write on directory  orcldump to strmadmin,system;

在目標資料庫auxi上(必須先手工建立c:\learnoracle\backup\auxi\目錄)

sql>conn strmadmin/strmadmin;

sql>create directory auxidump as 'c:\learnoracle\backup\auxi\

';sql>conn /as sysdba

sql>grant read,write on directory auxidump to strmadmin,system;

3. 執行dbms_streams_adm.maintain_tables 過程

orcl> declare

2  tbls dbms_utility.uncl_array;

3  begin

4  tbls(1):='scott.emp';

5  tbls(2):='scott.dept';

6  dbms_streams_adm.maintain_tables(

7  table_names=>tbls,

8  source_directory_object=>'orcldump',

9  destination_directory_object=>'auxidump',

10  source_database=>'orcl.jss.cn',

11  destination_database=>'auxi.jss.cn',

12  perform_actions=>true,

13  dump_file_name=>'export_tbls.dmp',

14  log_file=>'export_tbls.log',

15  bi_directional=>false,

16  include_ddl=>true,

17  instantiation=>dbms_streams_adm.instantiation_table);

18  end;

19  /

引數說明:

dbms_utility.uncl_array:陣列變數,執行maintain_tables時指定的table_names所對應的表名。

table_names :沒啥好說的,就是上面陣列變數中所對應的表名

source_database : 源資料庫上建立的目錄(directory)

destination_database :  目標資料庫上建立的目錄(directory)

source_datebase :連線到源端資料庫的資料庫鏈 。

destination_database :連線到目標端資料庫的資料庫鏈 。

perform_actions

行),因此必須同時設定script_name和script_directory_object兩引數,指定指令碼輸出路徑和指令碼檔名,不然過程執行將

直接報錯。

bi_directional :true時表示啟用雙向複製。false表示源庫向目錄庫單向複製。

include_ddl :是否同步ddl語句 。

instantiation:該引數用來指定是否執行例項化,有如下幾種值:

dbms_streams_adm.instantiation_table :通過expdp/impdp初始化資料,並在目標端匯入資料時執行例項化,預設情況下即是該值。

dbms_streams_adm.instantiation_table_network :impdp直接通過網路傳輸資料而不生成dmp檔案。在匯入資料時執行例項化。

dbms_streams_adm.instantiation_none :不執行例項化,該屬性值僅當perform_actions引數設定為false時有效。

這樣便完成了多表單向複製(本地捕獲)的操作了,執行的這個過程主要包括以下幾步

1、源資料上2個表的匯出

2、將匯出的表傳到目標資料庫並匯入

3、源和目標資料庫流佇列的建立

4、源資料上的捕獲程序與傳播程序的建立與啟動

5、目標資料庫上的應用程序建立與啟動

6、目標資料庫上設定應用程序開始執行的scn

kettle之 多表資料複製

需求 把a庫中n個表抽取至b庫中,表結構相同或只是增加統一的一些字段,過濾條件基本類似。解決方法 我們把以上內容在解決問題上拆分為二步,1,從一配製表中讀出相應的表名及過濾條件,存於一結果。2,根據第一步的結果,一條條迴圈來進行取數插數的過程。以上過程相當簡單,以下為討論的實現方式。1,如果是 or...

Oracle之多表查詢

多表查詢的基礎語法 select 查詢列 1 別名1,查詢列 2 別名2,from 表名稱1 別名1 名稱2 別名2 給出幾個例子吧。1.select e.ename,e.sal,d.dname,s.grade,m.ename,m.sal,ms.grade from emp e,dept d,sal...

MySql之多表查詢

select e.empname,d.deptname from emp e,dept d where e.deptno d.deptno select e.empname d.deptname from emp e inner join dept d on e.deptno d.deptno se...