β

Oracle版MHA:非共享版的DGHA

noodba.com 211 阅读

我们已经有了共享版的DGHA和非共享版的DGHA,参考到MySQL的MHA,可以对非共享版的DGHA做一些改进。
在主机可达文件可读的情况下进行redo拷贝,尽量少丢数据:

拷贝文件的版本:
先取得备库的scn:
SQL> select to_char(current_scn) from v$database;

TO_CHAR(CURRENT_SCN)
—————————————-
1495789

把主库的spfile和control file拷贝过来
把新的主库启动到mount状态下

找出下面小于0的最大值的SEQUENCE,从这个SEQUENCE后(包括这个)对应的redolog都有拷贝,没有的redo可以clear下
SQL> select SEQUENCE# , FIRST_CHANGE# – 1495789 from v$log;

SEQUENCE# FIRST_CHANGE#-1495789
———- ———————
223 -1125
225 67
224 -405

SQL> recover database;
Media recovery complete.
SQL>
SQL> alter database open;
alter database open
*
ERROR at line 1:

因为只拷贝了其中的部分redo,有些没有,需要初始化
alter database clear unarchived logfile group 1
也可以用来清理已经归档的logfile

对于log多member和控制文件多目录注意点:
1 对于控制文件,如果配置了多个,就应该拷贝多个,不然不能mount
2 对于日志文件,如果有多份,只要有一份是ok的就可以正常启动

作者:noodba.com
Not Only DBA
原文地址:Oracle版MHA:非共享版的DGHA, 感谢原作者分享。