Oracle

如何在 Oracle 中將靜默模式切換為正常模式?

  • October 30, 2020

我有兩個實例數據庫 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 行),但是當我切換到 O​​RCL11 時,然後執行簡單的 sql 查詢:

conn system/ok@orcl11;
select*from DEPT;

它沒有顯示任何內容,我在 Google 上搜尋過它,但沒有任何教程如何解決這個問題,我認為問題在於如何在 ORCL10 將 QUIESCING 切換到 NORMAL 模式。我嘗試過這種方法來修復它:

ALTER SYSTEM QUIESCE RESTRICTED;
ALTER SYSTEM UNQUIESCE;

但它仍然沒有解決問題,…..你能幫我解決這個問題嗎???謝謝 !!!

您將停止複制主組和停止數據庫混為一談——這些是不同的概念:

  1. 改變系統靜默

使用 QUIESCE RESTRICTED 和 UNQUIESCE 子句將數據庫放入並使其脫離靜止狀態。此狀態使數據庫管理員能夠執行在存在並發事務、查詢或 PL/SQL 操作時無法安全執行的管理操作。

  1. 大師組靜默

有時,您必須停止主組的所有複製活動,以便您可以在主組上執行某些管理任務。例如,您必須停止主組的所有複製活動才能添加新的主組對象。停止主組的所有複製活動稱為靜默組。當主組處於靜默狀態時,使用者無法對主組中的任何對象發出 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 後,您應該發出送出。應該這樣做。

引用自:https://dba.stackexchange.com/questions/45856