如何在 Oracle 中將靜默模式切換為正常模式?
我有兩個實例數據庫 Oracle,它們是 ORCL11 和 ORCL10,…. 我已經配置了它們,看起來是正確的。然後,我連接到複製使用者 admin ORCL10
conn repadmin/repadmin@orcl10
並在複製管理員使用者 ORCL10 中執行 SQL 命令,…
BEGIN DBMS_REPCAT.RESUME_MASTER_ACTIVITY (gname=>'scott_repg');end;/
然後,我連接到複製管理員使用者 ORCL11 以查看 gname 狀態。
conn repadmin/repadmin@orcl11; select gname,status from dba_repgroup;
它顯示 gname = SCOTT_REPG 和 status = NORMAL,…. 但如果連接到複製管理員 ORCL10
conn repadmin/repadmin@orcl10; select gname,status from dba_repgroup;
它顯示 gname = SCOTT_REPG 和 STATUS = QUIESCING,我認為它沒有任何影響,所以我在 ORCL10 上測試我的複制,例如:
conn system/ok@orcl10; insert into DEPT values (101,'Financial'); select*from DEPT;
它適用於表 DEPT ORCL10(創建 1 行),但是當我切換到 ORCL11 時,然後執行簡單的 sql 查詢:
conn system/ok@orcl11; select*from DEPT;
它沒有顯示任何內容,我在 Google 上搜尋過它,但沒有任何教程如何解決這個問題,我認為問題在於如何在 ORCL10 將 QUIESCING 切換到 NORMAL 模式。我嘗試過這種方法來修復它:
ALTER SYSTEM QUIESCE RESTRICTED; ALTER SYSTEM UNQUIESCE;
但它仍然沒有解決問題,…..你能幫我解決這個問題嗎???謝謝 !!!
您將停止複制主組和停止數據庫混為一談——這些是不同的概念:
使用 QUIESCE RESTRICTED 和 UNQUIESCE 子句將數據庫放入並使其脫離靜止狀態。此狀態使數據庫管理員能夠執行在存在並發事務、查詢或 PL/SQL 操作時無法安全執行的管理操作。
有時,您必須停止主組的所有複製活動,以便您可以在主組上執行某些管理任務。例如,您必須停止主組的所有複製活動才能添加新的主組對象。停止主組的所有複製活動稱為靜默組。當主組處於靜默狀態時,使用者無法對主組中的任何對象發出 DML 語句。此外,必須先傳播所有延遲事務,然後才能使主組靜默。使用者可以繼續查詢靜默主組中的表。
停止複制主組後,RESUME_MASTER_ACTIVITY恢復正常的複制活動。
請執行以下命令。
Connect as repadmin/password@SID
SQL>EXECUTE Dbms_Repcat.Resume_Master_Activity(gname => 'MYREPGRP');
將 MYREPGRP 替換為您的 gname,可以從
select gname from dba_repsites
執行 DBMS_Repcat 後,您應該發出送出。應該這樣做。