ITPub博客

首页 > 应用开发 > IT综合 > shutdown abort之后为什么需要实例恢复!

shutdown abort之后为什么需要实例恢复!

原创 IT综合 作者:warehouse 时间:2008-09-11 20:35:05 0 删除 编辑
讲课时随手记录的大致过程![@more@]

SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount
ORACLE 例程已经启动。

Total System Global Area 163577856 bytes
Fixed Size 1247876 bytes
Variable Size 83887484 bytes
Database Buffers 75497472 bytes
Redo Buffers 2945024 bytes
数据库装载完毕。
SQL> select checkpoint_change# from v$database;

CHECKPOINT_CHANGE#
------------------
727692

SQL> select file#,last_change# from v$datafile;

FILE# LAST_CHANGE#
---------- ------------
1 727692
3 727692
4 727692
10 727692
11 727692

--正常shutdown (immediate,normal、transactional)之前,oracle会发生一个完全检查点,检查点号会记录在last_change of v$datafile,在下次startup之后last_change被置为无穷大,在last_change 中显示为null

SQL> alter database open;

数据库已更改。

SQL> select file#,last_change# from v$datafile;

FILE# LAST_CHANGE#
---------- ------------
1
3
4
10
11

SQL> shutdown abort
ORACLE 例程已经关闭。
SQL> startup mount
ORACLE 例程已经启动。

Total System Global Area 163577856 bytes
Fixed Size 1247876 bytes
Variable Size 83887484 bytes
Database Buffers 75497472 bytes
Redo Buffers 2945024 bytes
数据库装载完毕。
SQL> select checkpoint_change# from v$database;

CHECKPOINT_CHANGE#
------------------
727693

--而shutdown abort之后系统并没有发生完全检查点,last_change为null,所以系统在下次startup之后需要进行实例恢复,此时必需要有完好的redo才能保证db正常open

SQL> select file#,last_change# from v$datafile;

FILE# LAST_CHANGE#
---------- ------------
1
3
4
10
11

SQL> alter database open;

数据库已更改。

SQL>

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/19602/viewspace-1010548/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2007-12-07

  • 博文量
    717
  • 访问量
    5366325