您好,登錄后才能下訂單哦!
本篇文章為大家展示了Oracle系統數據的復制技術,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
數據復制的實現
下面我們舉一個例子來說明各步具體需要完成的工作。在這個例子中我們采用多主控站點復制方式,設有兩個主控站點和兩個共享數據表。兩個主控站點分別為:處理站點(cl.world)和解釋站點(js.wo rld);兩個數據表為測區 (survey) 和測線 ( line)。
STEP1 創建復制站點:
(1)首先以 SYSTEM 身份登陸主站點數據庫 cl.worldCONNECT system/manager@cl.world;
(2)創建用戶—復制管理員,并為該用戶授權復制管理員負責復制站點的創建和管理,每個復制站點都必須創建復制管理員以下為引用的內容:
CREATE USER repadmin IDENTIFIED BY repadmin; BEGIN DBMS_REPCAT_ADMIN.GRANT_ADMIN_ANY_SCHEMA (username => ’repadmin’); END;
(3)為本站點指定傳播者;
傳播者負責將本地***更新的數據傳播到其他站點上,以下為引用的內容:
BEGIN DBMS_DEFER_SYS.REGISTER_PROPAGATOR (username => ’repadmin’); END;
(4)為本站點指定接收者;
接收者負責接收其他站點上的傳播者傳送過來的數據,以下為引用的內容:
BEGIN DBMS_REPCAT_ADMIN.REGISTER_USER_REPGROUP ( username => ’repadmin’, privilege_type => ’receiver’, list_of_gnames => NULL); END;
(5)確定清除時間;
為了使傳送過來事務隊列不致過大,需要將成功加載的事務從事物隊列里清除掉,這里設定每小時清除一次。 以下為引用的內容:
CONNECT repadmin/repadmin@cl.world BEGIN DBMS_DEFER_SYS.SCHEDULE_PURGE ( next_date => SYSDATE, interval => ’SYSDATE + 1/24’, delay_seconds => 0); END;
在建立好站點 cl.world 后,以同樣的方法創建站點 js. world。
(6)創建各主控站點之間的調度鏈接。
創建各主控站點之間的調度鏈接需要先在各主控站點間建立數據庫鏈接,之后為每個數據庫鏈接定義調度時間。
首先,在處理站點上建立與解釋站點的數據庫鏈接,這里需要先建立一個公用數據庫鏈接,供其他私有數據庫鏈接來使用。以下為引用的內容:
CONNECT SYSTEM/MANAGER@cl.world CREATE PUBLIC DATABASE LINK js.world USING ’js.world’; CONNECT repadmin/repadmin@cl.world CREATE DATABASE LINK js.world CONNECT TO repadmin IDENTIFIED BY repadmin;
同樣,在解釋站點上建立與處理站點的數據庫鏈接。以下為引用的內容:
CONNECT SYSTEM/MANAGER@js.world CREATE PUBLIC DATABASE LINK cl.world USING ’cl.world’; CONNECT repadmin/repadmin@js.world CREATE DATABASE LINK cl.world CONNECT TO repadmin IDENTIFIED BY repadmin;
調度鏈接確定本站點上的事務向其他站點發送的頻度,下面的代碼為 10 分鐘一次,以下為引用的內容:
CONNECT repadmin/repadmin@cl.world BEGIN DBMS_DEFER_SYS.SCHEDULE_PUSH ( destination => ’js.world’, interval => ’SYSDATE + (1/144)’, next_date => SYSDATE, parallelism => 1, execution_seconds => 1500, delay_seconds => 1200); END;
在解釋站點上做相同的工作 STEP2 創建主控組在復制環境中,Oracle 用組來管理復制對象。通過將相關的復制對象放在一個組里,從而方便對大量數據對象的管理。
這里我們假設用戶模式 integr ation 在處理站點和解釋站點都已存在,而且表測區 (survey) 和測線 (line) 也已經創建。
(1)創建主控組對象 以下為引用的內容:
CONNECT repadmin/repadmin@cl.world BEGIN DBMS_REPCAT.CREATE_MASTER_REPGROUP ( gname => ’inte_repg’); END;
(2)向主控組中添加數據對象,將測區表 survey 加入到組 inte_repg 中以下為引用的內容:
BEGIN DBMS_REPCAT.CREATE_MASTER_REPOBJECT ( gname => ’inte_repg’, type => ’TABLE’, oname => ’survey’, sname => ’integration’, use_existing_object => TRUE, copy_rows => FALSE); END;
以同樣的方法將測線表 line 加入到組 inte_repg 中。
(3)在主控組中添加其他參與復制的站點,數據庫之間的同步方式在此指定以下為引用的內容:
BEGIN DBMS_REPCAT.ADD_MASTER_DATABASE ( gname => ’inte_repg’, master => ’js.world’, use_existing_objects => TRUE, copy_rows => FALSE, propagation_mode => ’ASYNCHRONOUS’); END;
(4)如果可能出現沖突,則需要配置沖突解決方案。沖突解決方案將在后面介紹。
(5)為每個對象生成復制支持, 以下為引用的內容:
BEGIN DBMS_REPCAT.GENERATE_REPLICATION_SUPPORT ( sname => ’integration’, oname => ’survey’, type => ’TABLE’, min_communication => TRUE); END;
測線表 line 也一樣。
(6)重新開始復制以下為引用的內容:
BEGIN DBMS_REPCAT.RESUME_MASTER_ACTIVITY ( gname => ’inte_repg’); END;
以同樣的方式設置解釋站點。設置成功后,數據復制過程就宣告完畢,庫中的數據就可進行復制。
上述內容就是Oracle系統數據的復制技術,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。