Oracle 11G RAC的STANDBY环境的一些问题
2008-10-25 12:57:49 来源:WEB开发网显然Oracle不允许一个实例进行恢复的时候,另外一个实例只读打开。
不过Oracle11g是允许当前实例进行恢复的同时打开数据库的,而且这个实例只读打开数据库后,另外一个实例也可以只读打开。具体的过程可以参考:
但是这种情况下,Oracle会自动停止后台的恢复过程。
而且似乎一旦这种情况发生过,下次就没有办法再次在恢复的时候打开数据库,这时会报错:
SQL>alterdatabaseopen;
alterdatabaseopen
*第 1 行出现错误:ORA-01154: 数据库忙。现在不允许打开, 关闭, 装载和卸装
现在还不清楚为什么会出现这个ORA-1154的错误,怀疑是bug导致的,但是这个错误的出现意味着无法在恢复的时候只读打开了。
下面从另一个方面验证这种情况:
SQL>alterdatabaserecovermanagedstandbydatabasecancel;
数据库已更改。
SQL>alterdatabaseopen;
数据库已更改。
把另一个节点也打开:
SQL>alterdatabaseopen;
数据库已更改。
下面在实例1关闭数据库,并尝试进行恢复:
SQL>alterdatabaseclose;
数据库已更改。
SQL>alterdatabaserecovermanagedstandbydatabasedisconnectfromsession;
数据库已更改。
似乎成功了,但是通过查询V$DATAGUARD_STATUS就可以看到,实际上恢复过程报错停止了:
SQL>selectmessagefromv$dataguard_status
2wheremessage_num>(selectmax(message_num)-2fromv$dataguard_status);
MESSAGE
--------------------------------------------------------------------------------------
MRP0:BackgroundMediaRecoveryterminatedwitherror1153
MRP0:BackgroundMediaRecoveryprocessshutdown
通过下面的命令也可以看到,实际上当前并没有进行恢复:
SQL>alterdatabaserecovermanagedstandbydatabasecancel;
alterdatabaserecovermanagedstandbydatabasecancel
*第 1 行出现错误:ORA-16136: 受管备用恢复未激活
可以看到,Oracle虽然在11g支持了应用归档的时候只读打开。但是对于另外一个节点,仍然是无法访问的。而且存在bug,会导致本节点在应用归档日志的时候也无法只读打开数据库。
- ››oracle 中 UPDATE nowait 的使用方法
- ››Oracle ORA-12560解决方法
- ››Oracle 10g RAC 常用维护命令
- ››Oracle如何在ASM中定位文件的分布
- ››Oracle的DBMS_RANDOM.STRING 的用法
- ››oracle 外部表导入时间日期类型数据,多字段导入
- ››Oracle中查找重复记录
- ››oracle修改用户登录密码
- ››Oracle创建删除用户、角色、表空间、导入导出等命...
- ››Oracle中登陆时报ORA-28000: the account is lock...
- ››Oracle数据库在配置文件中更改最大连接数
- ››Oracle中在pl/sql developer修改表的两种方式
更多精彩
赞助商链接