实列恢复之Crash recovery的产生(有疑问)

[复制链接]
查看11 | 回复6 | 2012-8-13 17:45:07 | 显示全部楼层 |阅读模式
如果数据库异常关闭,数据库就没机会修改V$THREAD.STATUS状态了。因此,数据库在MOUNT状态通过检查这个状态,就可以判断使句库是否需要进行crash recover。
如果是单INSTANCE,V$THREAD.STATUS状态确实还是不变(OPEN),但如果是RAC,异常关闭其中一个INSTANCE,V$THREAD.STATUS状态会变成COLSED。
这是什么原因?谢谢!
单INSTANCE环境:
SQL> select status from v$thread;
STATUS
------
OPEN
SQL> shutdown abort;
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.
Total System Global Area 1073741824 bytes
Fixed Size
2089368 bytes
Variable Size
373296744 bytes
Database Buffers
687865856 bytes
Redo Buffers
10489856 bytes
Database mounted.
SQL> select status from v$thread;
STATUS
------
OPEN

如果是RAC环境,结果却不同
SQL> SELECT status FROM V$THREAD;
STATUS
------
OPEN
OPEN
SQL> shutdownabort;
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.
Total System Global Area184549376 bytes
Fixed Size
2019448 bytes
Variable Size
146804616 bytes
Database Buffers 33554432 bytes
Redo Buffers
2170880 bytes
Database mounted.
SQL> SELECT status FROM V$THREAD;
STATUS
------
CLOSED
OPEN

回复

使用道具 举报

千问 | 2012-8-13 17:45:07 | 显示全部楼层
crash_recover 可能和V$THREAD.STATUS 没有什么关系吧,这只是我个人觉得
回复

使用道具 举报

千问 | 2012-8-13 17:45:07 | 显示全部楼层
lzw4088 发表于 2012-9-26 10:30
crash_recover 可能和V$THREAD.STATUS 没有什么关系吧,这只是我个人觉得

大话ORACLE这本书中有讲到这个的!
回复

使用道具 举报

千问 | 2012-8-13 17:45:07 | 显示全部楼层
q418441117 发表于 2012-9-26 10:38
大话ORACLE这本书中有讲到这个的!

以前我有看过这本书,看了久了都忘记了。那一章节,我再去看看,一起学习学习
回复

使用道具 举报

千问 | 2012-8-13 17:45:07 | 显示全部楼层
因为你实例1上的实例恢复由实例2完成了,所以自然变成closed了
回复

使用道具 举报

千问 | 2012-8-13 17:45:07 | 显示全部楼层
Kevin__Zhang 发表于 2012-9-26 11:28
因为你实例1上的实例恢复由实例2完成了,所以自然变成closed了

明白了,谢谢!
回复

使用道具 举报

千问 | 2012-8-13 17:45:07 | 显示全部楼层
学习了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行