我有一个带有单节点物理备用的生产 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_dest_N 设置为新的备用数据库。