查看: 1543|回复: 2

实例恢复中总结下关闭、启动数据库的不同方式。

[复制链接]
论坛徽章:
3
Oracle研习者初级
日期:2013-05-06 14:25:50Oracle研习者初级
日期:2014-09-19 14:07:42Oracle研习者中级
日期:2014-09-19 14:31:38
发表于 2013-7-15 07:08 | 显示全部楼层 |阅读模式
在学习实例的恢复(crash recovery)时,明确了在 数据库Shutdown abort 或者 异常down机,如 机器死机,掉电等情况下发生实例恢复。
顺便总结下关闭、启动数据库的不同方式:
Q1:比较关闭数据库的几种方式
A:
  a)shutdown normal:不允许新的连接、等待会话结束、等待事务结束、做一个检查点并关闭数据文件。启动时不需要实例恢复。
  b)shutdown transactional:不允许新的连接、不等待会话结束、等待事务结束、做一个检查点并关闭数据文件。启动时不需要实例恢复。
  c)shutdown immediate:不允许新的连接、不等待会话结束、不等待事务结束、做一个检查点并关闭数据文件。没有结束的事务是自动rollback的。启动时不需要实例恢复。
  d)shutdown abort:不允许新的连接、不等待会话结束、不等待事务结束、不做检查点且没有关闭数据文件。启动时自动进行实例恢复。

Q2:实例恢复发生在数据库启动的哪个阶段?
      Startup nomount ;  读取spfile ,实例启动,获得内存,启动oracle自身的进程。没有实例恢复。
      Alter database mount; 读取控制文件,数据库挂起。没有实例恢复。
      Alter database open ; 读取控制文件,数据文件头,检查数据的完整性。发生实例恢复。
Eg:
SQL> shutdown abort;
ORACLE 例程已经关闭。
SQL> shutup nomount;
SP2-0734: 未知的命令开头 "shutup nom..." - 忽略了剩余的行。
SQL> startup nomount;
ORACLE 例程已经启动。
Total System Global Area  744910848 bytes
Fixed Size                  1384744 bytes
Variable Size             260050648 bytes
Database Buffers          478150656 bytes
Redo Buffers                5324800 bytes
SQL> alter database mount;
数据库已更改。
SQL> alter database open;
数据库已更改。

回复

使用道具 举报

论坛徽章:
52
python徽章
日期:2018-12-27 15:34:57数据陷阱解读徽章
日期:2016-05-05 10:48:42DB2徽章
日期:2016-04-07 10:58:04算法导论徽章
日期:2016-03-16 10:46:20Datastage徽章
日期:2015-12-10 16:03:48DB2徽章
日期:2015-12-03 16:16:03STATA徽章
日期:2015-10-29 15:15:02测试徽章
日期:2015-10-22 15:07:35cognos徽章
日期:2015-10-14 17:39:01Java徽章
日期:2015-10-14 11:48:03perl徽章
日期:2015-09-25 17:35:50mysql徽章
日期:2015-09-09 15:19:48
发表于 2013-7-15 20:13 | 显示全部楼层
比较详细,很好。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

 

GMT+8, 2019-11-21 11:37 , Processed in 0.083938 second(s), 32 queries .

关闭

扫一扫加入
本版微信群