Oracle

如何在 Oracle 11.2 中淘汰物理備用

  • March 23, 2015

我有一個帶有單節點物理備用的生產 Oracle 11gR2 RAC 數據庫。現在是時候淘汰舊的備用伺服器並將該角色傳遞給更新硬體上的 RAC。

我們不使用 Data Guard Broker。

我無法在這個特定的過程中找到很多東西,所以我想也許它並沒有那麼多。顯然,至少比我能想到的要多一點。

停止在舊備用數據庫上應用日誌後,我嘗試簡單地清除備用日誌目標並為日誌傳送設置一個新目標。然後 Oracle 抱怨新物理備用數據庫的 DB_UNQUE_NAME 不是目前 Data Guard 配置的一部分。

SQL> alter system set log_archive_dest_3='';

System altered.

SQL> alter system checkpoint;

System altered.

SQL> alter system set log_archive_dest_3='SERVICE=PDB10SBY LGWR ASYNC REGISTER VALID_FOR=(online_logfile,primary_role) REOPEN=60 DB_UNIQUE_NAME=PDB11SBY' scope=both sid='*';
alter system set log_archive_dest_3='SERVICE=PDB10SBY LGWR ASYNC REGISTER VALID_FOR=(online_logfile,primary_role) REOPEN=60 DB_UNIQUE_NAME=PDB10SBY' scope=both sid='*'
*
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-16053: DB_UNIQUE_NAME PDB10SBY is not in the Data Guard Configuration

對 v$dataguard_config 的快速查詢確認存在包含舊備用數據庫的 DB_UNIQUE_NAME 的活動配置。

SQL> select * from
 2  v$dataguard_config;

DB_UNIQUE_NAME
------------------------------
PDB10
PDB10_STBY

那麼問題來了,淘汰現有的 Data Guard 配置以部署新的物理備用數據庫需要哪些步驟?

Data Guard 配置中數據庫的唯一名稱在 log_archive_config 參數中以下列形式列出:

log_archive_config='DG_CONFIG=(PDB10,PDB10_STBY)'

您可以刪除舊的並將新的添加為:

alter system set log_archive_config='DG_CONFIG=(PDB10,PDB10SBY)';

在此之後,您可以將 log_archive_dest_N 設置為新的備用數據庫。

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