设为首页 加入收藏

TOP

Oracle11gDataGuard物理备库快速配置指南(上)(三)
2015-11-21 01:56:54 来源: 作者: 【 】 浏览:5
Tags:Oracle11gDataGuard 物理 快速 配置 指南
像之前的步骤一样,创建数据库这一步也可以有多种方法。在11g中,我将使用 RMAN 的复制功能,因为它很容易。在上一步里,我们复制了密码文件和参数文件到备库服务器,修改好了参数文件,并创建了 spfile。这让使用 RMAN 复制功能更加容易,当然,你也可以跳过手工复制密码和参数文件这步,让 RMAN 使用 SPFILE,PARAMETER_VALUE_CONVERT 和 SET等命令帮你自动完成。

使用 RMAN 创建备库的命令非常简单。它指示 RMAN 直接复制当前活动的数据库(主库)到辅助数据库(备库)。这样你就不需要现将主库的备份复制到备库服务器上,再还原数据库。在今天的存储技术下,我们有更快更简单的方式复制数据库,但为了展示11g的这个新功能,并且这个功能又很简单,我喜欢尽可能使用它。

RMAN> connect target sys@JED
RMAN> connect catalog @
RMAN> connect auxiliary sys@JED2
RMAN> duplicate target database for standby from active database;

在 11.2.0.2.0 版本后,你可以直接使用 connect target 连接辅助数据库,但如果不指定用户名和密码,在复制到备库时将报 invalid username/password 错。

当复制命令在执行时,我喜欢 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 环境。

首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇OracleORA-01555快照过旧说明 下一篇ORACLEAUTOMATICSTORAGEMANAGEMEN..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: