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...