Oracle 11g Data Guard 物理备库快速配置指南(4)

当复制命令在执行时,我喜欢 tail 备库的告警日志文件,观察复制进行到了哪一步和查看是否有报错。注意,针对在线和备用日志文件报 ORA-27037: unable to obtain file status 错是正常的。

你也可以并行复制以提高性能。需要分派主库和备库多个通道后,再执行复制命令:

run
{
    allocate channel chan1 type disk;
    allocate channel chan2 type disk;
    allocate channel chan3 type disk;
    allocate channel chan4 type disk;
    allocate auxiliary channel aux1 type disk;
    allocate auxiliary channel aux2 type disk;
    allocate auxiliary channel aux3 type disk;
    allocate auxiliary channel aux4 type disk;
    duplicate target database for standby from active database;
}

如果一切正常,你将看到 RMAN 报出类似如下信息:

Finished Duplicate Db at 07-MAY-10

当备库复制完成后,我喜欢在备库启用闪回日志:

SQL> alter database flashback on;

启动重做日志应用
启动或者停止重做日志应用非常容易。启动日志应用:

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE

DISCONNECT FROM SESSION;

这个命令指示备库开始使用备用日志文件进行恢复。它也告诉备库命令完成后回到命令行界面。如果你想停止恢复:

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

确认日志应用正常
你要确认重做日志正在应用到备库。首先我们要确认主备库里的归档目的地配置都是有效的:

SQL> select DEST_ID, STATUS, DESTINATION, ERROR from V$ARCHIVE_DEST where DEST_ID<=2;

目的地状态应该显示为 VALID。

然后确认重做日志是否真的被应用了,在主库执行:

SQL> select SEQUENCE#, FIRST_TIME, NEXT_TIME, APPLIED, ARCHIVED from V$ARCHIVED_LOG where name = 'JED2' order by FIRST_TIME;

如果归档和日志应用均正常,APPLIED 和 ARCHIVED 列都应该是 YES。很多教程里都让这个查询以 SEQUENCE# 列排序,但我不推荐。如果以 SEQUENCE# 列排序,当你做了一次故障转移后,序列号会再从1开始,这时使用这个查询,你将不能在结果最后看到最新的记录。我曾经很奇怪为什么查不到新记录,其实是因为新记录不是出现在最后,我没看到。所以,这个查询都是以 FIRST_TIME 列排序。

如果你发现日志没有被应用,那可能是重做日志有了缺口,这种情况下备库无法进行日志应用。但如果你的 FAL_SERVER 参数设置正确,这应该不会有问题。你可以在主库上检查是否有重做日志缺口:

SQL> select STATUS, GAP_STATUS from V$ARCHIVE_DEST_STATUS where DEST_ID = 2;

如果一切正常,应该返回 VALID 和 NO GAP。如果你想测试下 FAL_SERVER 这个参数是怎么工作的。可以先把备库关掉,然后在主库切换几次日志,等一会,启动备库,再切换一次日志。这样缺口很快就会出现。如果 FAL_SERVER 设置正常,缺少的重做日志会被传输过来并应用。

V$DATAGUARD_STATUS 视图对查找错误和了解发生了什么非常有用。可以在主备库上执行以下查询查看数据库状态:

SQL> select * from V$DATAGUARD_STATUS order by TIMESTAMP;

有时候你手工想确认下数据真的同步了。一个更让人信服的方法是,直接查询备库,看新数据是否存在。你可以将备库打开为只读状态,首先取消日志应用,再执行如下命令:

SQL> ALTER DATABASE OPEN READ ONLY;

这时你可以查询变化了的数据是否同步过来。11g已经支持活动备库,可以让数据库在只读状态下打开,同时启动日志应用。

总结
现在你有一个配置好的 Data Guard,也就有了一个冗余的数据库。我不想留下主备转换、故障转移、重建库等不讲,这些主题将放到本文的第二部分。

我希望本文能帮助你更容易和更快速地创建你的 Data Guard 环境。

--------------------------------------分割线 --------------------------------------

Oracle Data Guard 重要配置参数

基于同一主机配置 Oracle 11g Data Guard

探索Oracle之11g DataGuard

Oracle Data Guard (RAC+DG) 归档删除策略及脚本

Oracle Data Guard 的角色转换

Oracle Data Guard的日志FAL gap问题

Oracle 11g Data Guard Error 16143 Heartbeat failed to connect to standby 处理方法

--------------------------------------分割线 --------------------------------------

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/5ba46ddbb6f3e091f4fbff1203b03529.html