Oracle 10g高階複製例項
Oracle 10g高階複製例項(多主體複製)
前言:
配置了三次,兩次都是單向。最後一次終於是雙向的了。也算一點有點成功的喜悅。喜悅?喜悅確實談不上。這麼簡單的東西弄了這麼久覺得慚愧。網路上的資料一大堆。不過他們寫的好象都有些隨意。有的時候一點點錯誤可以使你只有重來。我現在重新寫一次。只提供給初學者。配置的高手的就不要開腔了。因為實在不好意思拿出來見人。
資訊:
主體定義資料庫:testdb.geong.com(弄清楚別弄錯了。)
主體資料庫:backdb.geong.com
作業系統: xp
資料庫版本: ORACLE 10G -10.2.0.1.0
注:主體定義資料庫指配置複製工作的資料庫。
高階複製過程:(以下沒有特別說明都要在兩臺資料庫上操作)。
1.處理資料庫引數:(兩臺資料庫都要配置)
1.1設定global_name為true。(global_name 由兩部分組成。
SQL> show parameter global_name
NAME TYPE VALUE
------------------------------------ ----------- --------
global_names boolean TRUE
如果為false 請更改
alter system set global_name=true scope=spfile; (寫在spfile檔案中。需要重起才能起作用)
1.2 重新命名global_name
alter database rename global_name to
如:
alter database global_name to testdb.geong.com;
更該完畢。
重起兩臺資料庫。
引數修改完畢。
2.開始使用者配置:(兩臺資料庫都要相同的配置)
2.1 先配置複製資料測試使用者。
用system使用者操作:
create user test identified by test default tablespace users;
grant connect,resource to test;
2.2切換到test使用者
conn test/test
create table test(id number,name varchar2(20),constraint test_id_pk primary key(id));(主鍵一定是要的);
2.3 插入一些測試資料
insert into test values(1,’tanfufa1’);
insert into test values(1,’tanfufa1’);
insert into test values(1,’tanfufa1’);
commit;
2.4用system使用者建立public link;
在testdb上建立
create public database link “backdb.geong.com” using ‘backdb’;
測試連通性:
select * from global_name@ backdb.geong.com
GLOBAL_NAME
---------
BACKDB.GEONG.COM
如果不通請檢查tnsname.一定要通.不然後面就不用做了.
在backdb上建立
create public database link “backdb.geong.com” using ‘backdb’;
測試連通性:
select * from global_name@ testdb.geong.com
GLOBAL_NAME
---------
TESTDB.GEONG.COM
如果不通請檢查tnsname.一定要通.不然後面就不用做了.
3.配置複製管理使用者. (兩臺資料庫都要相同的配置)
3.1
conn system/tanfufa
SQL>create user repadmin identified by repadmin default tablespace users temporary tablespace temp;
User created.
SQL>execute dbms_defer_sys.register_propagator('repadmin');
PL/SQL procedure successfully completed.
SQL>grant execute any procedure to repadmin;
Grant succeeded.
SQL>execute dbms_repcat_admin.grant_admin_any_repgroup('repadmin');
PL/SQL procedure successfully completed.
SQL>execute dbms_repcat_admin.grant_admin_any_schema(username => 'repadmin');
PL/SQL procedure successfully completed.
SQL>grant comment any table to repadmin;
Grant succeeded.
SQL>grant lock any table to repadmin;
Grant succeeded.
SQL>grant select any dictionary to repadmin;
Grant succeeded.
4. 用repadmin使用者建立database link. (兩臺資料庫都要相同的配置)
在testdb上建立:
create database link “backdb.geong.com” connect to repadmin identified by repadmin.
測試連通性:
select * from global_name@ backdb.geong.com
GLOBAL_NAME
---------
BACKDB.GEONG.COM
如果不通請檢查tnsname.一定要通.不然後面就不用做了.
在backdb上建立:
create database link “backdb.geong.com” connect to repadmin identified by repadmin.
測試連通性:
select * from global_name@ testdb.geong.com
GLOBAL_NAME
---------
TESTDB.GEONG.COM
如果不通請檢查tnsname.一定要通.不然後面就不用做了.
5.準備工作全部做完了.現在去喝咖啡.
6. .複製實施程式:(特別注意以下在testdb資料庫上操作)
6.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=>'test',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
----------------------------- ------------------------------ ------------- ------------------------------
SCOTT DEPT VALID REP_MYTEST
為複製物件生成複製支援:
SQL> execute dbms_repcat.generate_replication_support('test','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
----------------------------- ------------------------------ ------------- ------------------------------
SCOTT DEPT VALID REP_MYTEST
SCOTT DEPT$RP VALID REP_MYTEST
SCOTT DEPT$RP VALID REP_MYTEST
為複製主體組新增資料庫主站點:
SQL>execute dbms_repcat.add_master_database(gname=>'REP_MYTEST',
master=>'backdb.geong.com',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 testdb.geong.com Y Y
REP_MYTEST backdb.geong.com 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.測試:
1.在testdb上刪除修改插入資料,檢視backdb變化.
2.在backdb上刪除修改插入資料,檢視testdb變化.
8.如果你需要新增表到組裡面來請按照入下操作.
配置好後。如果需要新增表。
執行下命令:
8.1.exec dbms_repcat.suspend_master_activity('rep_mytest');
取消抑制。
8.2.SQL> execute dbms_repcat.create_master_repobject(sname=>'reptest',oname=>'test1'
,type=>'TABLE',use_existing_object=>true,gname=>'REP_MYTEST',copy_rows=>true);
為組增加新表。
8.3.execute dbms_repcat.generate_replication_support('reptest','test1','TABLE')
增加支援。
。
8.4. execute dbms_repcat.resume_master_activity('REP_MYTEST',true);
啟動程式
好了。你可以去測試你新加的表了.來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14710393/viewspace-759216/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle 高階複製Oracle
- Oracle高階複製Oracle
- Oracle高階複製Step by StepOracle
- oracle高階複製(轉載)Oracle
- oracle 高階複製簡介Oracle
- RMAN高階應用之Duplicate複製資料庫(2)輔助例項資料庫
- 關於Oracle 高階複製的概念Oracle
- Oracle 高階複製的概念及配置Oracle
- 高階複製總結
- oracle高階複製的詳細手冊(轉)Oracle
- Oracle9i高階複製(單向複製部分)實施完畢Oracle
- Oracle 高階複製配置步驟詳細說明Oracle
- Oracle9i高階複製的一個bugOracle
- 複製管理工具介紹——高階複製
- [zt] 高階複製、流複製(Streams)、備庫區別
- 高階複製-2、準備工作
- 基本複製應用例項(轉)
- 主體複製概念和體系結構——高階複製
- 使用Oracle 10g複製檔案Oracle 10g
- MySQL 的主從複製(高階篇)MySql
- 物化檢視複製概念和體系結構——高階複製
- RMAN高階應用之Duplicate複製資料庫(3)複製流程資料庫
- 改變複製物件結構對高階複製的影響物件
- Oracle 10g stream 一對多複製Oracle 10g
- Oracle高階複製實施手記 2004-10-10Oracle
- Oracle高階複製實施手記 2004-10-09Oracle
- 學習Advanced Replication(高階複製) -zt
- ORA-29702複製RAC Oracle軟體啟動單例項Oracle單例
- Oracle 10g RAC增加節點例項Oracle 10g
- Oracle 10G windows 平臺 DataGuard 例項Oracle 10gWindows
- 複製oracle home的注意事項Oracle
- jQuery複製頁面元素程式碼例項jQuery
- SqlServer同例項複製資料庫方法SQLServer資料庫
- Oracle Stream(3)--Stream與高階複製和邏輯Dataguard的比較Oracle
- MySQL進階:主主複製+Keepalived高可用MySql
- 資料庫移植後高階複製出錯資料庫
- Oracle 10g RAC跨例項控制並行Oracle 10g並行
- duplicate複製資料庫(rac-單例項)資料庫單例