概述
逻辑DG主备库转换的failover
既然是failover,那么就认为PRIMARY数据库已经崩溃,需要马上将其中的一个逻辑STANDBY数据库置为PRIMAYD
虽然primary数据库已经崩溃,如果能打开数据到mount状态,可以先查看一下日志情况,这样可以对日志进行一些操作,尽量的来减少数据的丢失,当然,也可以在数据库不能mount的时候去归档路径下查看归档信息。
SQL> select max(sequence#) from v$archived_log;
MAX(SEQUENCE#)
--------------
15
STANDBY > select sequence#,applied from dba_logstdby_log;
SEQUENCE# APPLIED
---------- --------
15 CURRENT
此处日志已经完全被应用,如果发现有日志未被发送到STANDBY,可以手工的将日志复制过去,并执行alter database register logical logfile ‘filename’语句手动的注册
查看逻辑standby的日志应用情况
STANDBY > select applied_scn,latest_scn from v$logstdby_progress;
APPLIED_SCN LATEST_SCN
----------- ----------
540775 540775
如果两结果一致则证明日志已经应用完毕,如果不一致,则需要启动SQL应用
配置一下日志的归档路径
STANDBY > alter system set log_archive_dest_1='location=/u01/log/arch_online valid_for=(online_logfiles, all_roles) db_unique_name=orcl_std';
System altered.
STANDBY > alter system set log_archive_dest_3='location=/u01/log/arch_pri_log valid_for=(standby_logfiles, standby_roles) db_unique_name=orcl_std’;
System altered.
STANDBY > show parameter archive_dest;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest string
log_archive_dest_1 string location=/u01/log/arch_online
valid_for=(online_logfiles, al
l_roles) db_unique_name=orcl_s
td
log_archive_dest_10 string
log_archive_dest_2 string service=orcl_p_tns arch valid_
for=(online_logfiles,primary_r
ole) db_unique_name=orcl_pri
log_archive_dest_3 string location=/u01/log/arch_pri_log
valid_for=(standby_logfiles,
standby_roles) db_unique_name=
orcl_std
转换之前先看一下数据库的角色
STANDBY > select database_role,force_logging from v$database;
DATABASE_ROLE FOR
---------------- ---
LOGICAL STANDBY YES
开始转换
STANDBY > alter database activate logical standby database finish apply;
Database altered.
该语句会听着该standby数据库的RFS服务,并应用当前已经接收但并未应用的日志,并执行完毕手关闭SQL应用
再次查看数据库的角色
STANDBY > select database_role,force_logging from v$database;
DATABASE_ROLE FOR
---------------- ---
PRIMARY YES
将该新的primary数据库加入到原来的Data Guard环境中
在standby数据库执行:
SQL> alter session disable guard;
Session altered.
SQL> create database link dg_recover connect to scott identified by oracle using 'orcl_p_tns';
Database link created.
注意连接用户必须有select_catalog_role的权限,可以在想要的standby数据库端赋予权限
SQL > grant select_catalog_role to scott;
Grant succeeded.
SQL> alter session enable guard;
Session altered.
SQL> select sysdate from dual@dg_recover;
SYSDATE
---------
09-MAR-14
将该standby数据库加入新的DG环境中去
SQL> alter database start logical standby apply new primary dg_recover;
Database altered.
要是有多个standby只需将它们添加到新的primary即可。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29320885/viewspace-1104086/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29320885/viewspace-1104086/
最后
以上就是唠叨电灯胆为你收集整理的逻辑DG主备库转换的failover的全部内容,希望文章能够帮你解决逻辑DG主备库转换的failover所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复