Oracle高階同步複製(2)

2021-07-02 01:51:44 字數 4976 閱讀 6898

5. .複製實施程序:(特別注意以下在master資料庫上操作)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

5.1   conn repadmin/repadmin

建立複製主題組

sql> execute dbms_repcat.create_master_repgroup('rep_mytest');

pl/sql procedure successfully completed.

sql> select gname,master,status from dba_repgroup where gname='rep_mytest';

gname                          master                         status

rep_mytest                   y                              quiesced

為主體組新增複製物件:

sql> execute dbms_repcat.create_master_repobject (sname=>'wj',oname=>'test', type=>'table',   use_existing_object=>true,gname=>'rep_mytest',copy_rows=>true);

pl/sql procedure successfully completed.

sql>select sname,oname,status,gname from dba_repobject where gname='rep_mytest';

sname                           oname                             status     gname

wj                        test                           valid          rep_mytest

為複製物件生成複製支援:

sql> execute dbms_repcat.generate_replication_support('wj','test','table');

pl/sql procedure successfully completed.

sql> select gname,master,status from dba_repgroup where gname='rep_mytest';

gname                          master                         status

rep_mytest                   y                              quiesced

sql> select sname,oname,status,gname from dba_repobject where gname='rep_mytest';

sname                           oname                             status     gname

wj                          test                         valid          rep_mytest

wj                          test$rp                      valid          rep_mytest

wj                          test$rp                      valid          rep_mytest

為複製主體組新增資料庫主站點:

sql>execute dbms_repcat.add_master_database(gname=>'rep_mytest',master=>'repsite.com.cn',use_existing_objects=>true,copy_rows=>true,   propagation_mode => 'synchronous');

pl/sql procedure successfully completed.

察看複製站點資訊:

sql> select gname,dblink,masterdef,master from dba_repsites where gname='rep_mytest';

gname         dblink                             masterdef      master

rep_mytest         repsite.com.cn       y                      y

rep_mytest         master.comc.n       n                     y

啟動複製程序:

sql> execute dbms_repcat.resume_master_activity('rep_mytest',true);

pl/sql procedure successfully completed.

sql> select gname,master,status from dba_repgroup where gname='rep_mytest';

gname              master                         status

rep_mytest         y                               normal

注意:複製主體組的狀態由quiesced變為normal。

至此,這個複製過程實施完畢。可以進行相關的資料操作進行測試。

7、配置好後。如果需要新增表。

執行下命令:

7.1.execute dbms_repcat.suspend_master_activity('rep_mytest'); 取消抑制。

7.2增加新錶

execute dbms_repcat.create_master_repobject(sname=>'reptest',oname=>'test1',type=>'table',use_existing_object=>true,gname=>'rep_mytest',copy_rows=>true);

7.3增加支援。

execute dbms_repcat.generate_replication_support('reptest','test1','table')

7.4啟動程序

execute dbms_repcat.resume_master_activity('rep_mytest',true);

好了。你可以去測試你新加的表了.

一些刪除命令

用select * from dba_repgroup;檢查站點狀態 狀態為normal時表示該站點正常。

相關檢視

" dba_repsites       ----複製站點情況

" dba_repgroup       -----複製組情況

" dba_repobject      ----複製物件情況

" dba_repcatlog      ---同步情況日誌

如果想刪除其中的乙個同步表,如下執行;

sql> execute dbms_repcat.suspend_master_activity('rep_anymusic'); 停止主體組

sql> execute dbms_repcat.drop_master_repobject('wcms','test','table'); 刪除同步表

sql> execute dbms_repcat.remove_master_databases('rep_anymusic', 'master.anymusic.com');刪除主站點上面的組

sql> execute dbms_repcat.resume_master_activity('rep_anymusic',true); 啟動複製組

刪除私有資料鏈路

用repadmin 登陸資料庫

execute dbms_repcat.drop_master_repgroup('主體組名');刪除主體組

drop database link master.anymusic.com; 刪除db link名

刪除jobs

select job,what from user_jobs;    查詢job numbers

execute dbms_job.remove(2);        括號內填寫剛查詢到的job numbers

刪除repadmin使用者,注意:必須先刪除站點下隸屬於該repadmin使用者的jobs和組mygrp 才能刪除使用者

用sys登陸

execute dbms_defer_sys.unregister_propagator(username=>'repadmin');

execute dbms_repcat_admin.revoke_admin_any_schema(username=>'repadmin');

drop user repadmin cascade;

--刪除公用的資料鏈路

用sys登陸

drop public database link master.anymusic.com;

備註:每次執行完repcat 包以後都應該執行一次commit,因為某些rep 的儲存過程是不會

自動commit 的,同時這也是乙個troubleshooting,一般的rep 指令碼都會較快的返回結果,

如果一條命令之後長時間沒有結果返回,那麼很可能是上面的命令沒有commit,取消掉當

前的命令,然後作一次commit,再重新執行,一般都能夠解決問題。

強制刪除複製組

sql>truncate table system.def$_aqcall;

sql>exec dbms_repcat.drop_master_repgroup(gname=>'mygrp',all_sites=>true);

Oracle高階複製機制

oracle高階複製即可支援基於整個表的複製也可支援基於部分表的複製兩種複製方案。這兩種複製方案主要是通過oracle的兩種複製機制來完成的,即多主複製和可更新快照複製,同時還可以將這兩種複製機制結合起來以滿足不斷變化的業務需求。1.多主複製 多主複製方案支援全表在各個主節點間的對稱複製,允許所有主...

mysql非同步複製 半同步複製 組複製

sorce不管replica的死活,寫進binlog後,commit完成就算成功。如果最後乙個event沒有發給replica,主庫就掛了,那麼就會有丟失資料的風險。通過官方的半同步外掛程式,將binlog寫完後,傳送給replica,當replica寫入到relay log後,在主庫commit。...

MySQL半同步複製

1 從mysql5.5開始,mysql以外掛程式的形式支援半同步複製。如何理解半同步呢?首先我們來看看非同步,全同步的概念 非同步複製 asynchronous replication mysql預設的複製即是非同步的,主庫在執行完客戶端提交的事務後會立即將結果返給給客戶端,並不關心從庫是否已經接收...