一、当我们在进行DML,DDL命令的时候,均会产生两种不同类型的数据:

1)重做记录,目的是确保数据库具有可恢复性

2)被修改的数据块本身,目的是保证数据库的持久性。

oracle规定:保证重作记录先于对应的脏数据块写入永久层(也就是数据库文件)

那么,一个更改产生的重作记录和脏数据块,DBWn必须在LGWR将重做记录写入在线重做日志之后才可以把对应的脏数据块写入磁盘,这样就会导致数据文件永远比在线重做日志旧。

二、当我们以shutdown  immediate / normal / transactional命令关闭数据库的时候,数据库会做三件事:

1)oracle会发起一个完全检查点,此时任何新的变更将不被允许

2)LGWR将日志缓冲区中现有的重作记录写入在线重做日志——>清空日志缓冲区——>停下LGWR——>在线日志停止更新

3)DBWn将相对应的脏数据库写入数据文件

这时候在线重做日志和数据文件达到了同步。

三、对正常关闭的数据库发出start 命令后,数据库要在open阶段会检查在线重做日志和数据文件是否同步,他们的同步是打开数据库的必要条件。

那么,在数据库突然断电的之后,再次打开数据库,数据库进行了什么操作呢?

SQL> shutdown abort

ORACLE instance shut down.

SQL> startup

ORACLE instance started.

Total System Global Area 167772160 bytes

Fixed Size 1218316 bytes

Variable Size 71305460 bytes

Database Buffers 92274688 bytes

Redo Buffers 2973696 bytes

Database mounted.

Database opened.打开警告文件进行分析

[root@RedHat ~]# more /u01/app/oracle/admin/orcl/bdump/alert_orcl.log...........................................

starting up 1 dispatcher(s) for network address '(ADDRESS=(PARTIAL=YES)(PROTOCOL=TCP))'...

starting up 1 shared server(s) ...

Tue Sep 3 17:55:33 2013

ALTER DATABASE MOUNT

Tue Sep 3 17:55:37 2013

Setting recovery target incarnation to 2

Tue Sep 3 17:55:37 2013

Successful mount of redo thread 1, with mount id 1352977301

Tue Sep 3 17:55:37 2013

Database mounted in Exclusive Mode

Completed: ALTER DATABASE MOUNT

Tue Sep 3 17:55:37 2013

ALTER DATABASE OPEN

Tue Sep 3 17:55:37 2013

Beginning crash recovery of 1 threads

Tue Sep 3 17:55:37 2013

Started redo scan

Tue Sep 3 17:55:37 2013

Completed redo scan

91 redo blocks read, 41 data blocks need recovery

Tue Sep 3 17:55:38 2013

Started redo application at

Thread 1: logseq 124, block 1372

Tue Sep 3 17:55:38 2013

Recovery of Online Redo Log: Thread 1 Group 3 Seq 124 Reading mem 0

Mem# 0 errs 0: /u01/app/oracle/oradata/orcl/redo03.log

Tue Sep 3 17:55:38 2013

Completed redo application

Tue Sep 3 17:55:38 2013

Completed crash recovery at

Thread 1: logseq 124, block 1463, scn 1714580

41 data blocks read, 41 data blocks written, 91 redo blocks read

Tue Sep 3 17:55:38 2013

-----本行书写错误,不用看----Beginning crash recovery of 1 threads可以看到,ORACLE在open阶段,会自动恢复因为突然断电造成的崩溃:

Beginning crash recovery of 1 threads检查REDO日志,发现有41个数据块需要恢复,然后开始恢复第3号日志组中124号日志的第1372块,

Completed crash recovery at

Thread 1: logseq 124, block 1463, scn 1714580

41 data blocks read, 41 data blocks written, 91 redo blocks read共恢复了41个数据块,读了91个重做日志块。

从这个警告日志中可以看出:

当断电后启动数据库的时候,为了是数据库能够打开,ORACLE自动的进行实例操作同步数据库文件。

实例恢复(INSTANCE RECOVERY):在启动数据库的时候发现文件不同步后,自动利用在线日志中的重作记录自动对陈旧的数据文件进行恢复的过程。

总结:在数据库强制关闭之后再开启,会做一下步骤

1.管理员发出startup命令

2.打开参数文件,启动实例

3.打开控制文件

4.检查在线重做日志和数据文件是否同步,结果为不同步

5.对已经提交事务实施前滚,对没有写如数据文件的脏块写进数据文件。

6.打开数据库,可以接受客户请求

7.对没有提交的事务实施回滚,将相当于sql命令中的rollback,将相对应的已经写入数据文件的块给修改掉,完成之后数据文件中不会存在由于上一次强制关闭而留下的,未提交的脏数据块。

突然断电对oracle的影响吗,当ORACLE突然断电,重新启动过程发生了哪些事?相关推荐

  1. 计算机主机突然断电有什么影响,电脑突然断电对硬件有影响吗?电脑突然断电的危害...

    近日微博网友"浪子_浪迹天涯"在百事网微博中留言,问了这样一个电脑问题:计算机突然断电对硬件有影响吗?对于这样一个问题,相信很多电脑用户都有碰到过,现在问题是,突然断电对电脑硬件会 ...

  2. ocp oracle 考试报名_获得Oracle认证对拓展职业前景的影响

    知识就是力量 通过考试和考试成绩固然很重要,但您在学习过程中所掌握的知识才是您职业成功的坚实基础.在备考过程中,获得的知识和经验才是您真正的财富. Oracle Certified Associate ...

  3. 计算机突然断电磁盘中的程序,电脑突然断电对硬盘有影响吗 保护电脑硬盘方法【详解】...

    大家应该都遇到这样的情况,正在使用电脑突然断电了,大家都知道突然断电会对我们电脑有损害,那到底有什么样的影响呢?大家就不知道了,这就跟大家说一说电脑突然断电对硬盘有影响吗和如何保护电脑硬盘,快来看看吧 ...

  4. 计算机突然断电 硬盘,电脑突然断电对硬盘有影响吗 保护电脑硬盘方法【详解】...

    大家应该都遇到这样的情况,正在使用电脑突然断电了,大家都知道突然断电会对我们电脑有损害,那到底有什么样的影响呢?大家就不知道了,这就跟大家说一说电脑突然断电对硬盘有影响吗和如何保护电脑硬盘,快来看看吧 ...

  5. 计算机突然断电后 硬盘中的数据,电脑突然断电对硬盘有影响吗?实测便知

    众所周知,突然断电对电脑伤害较大.尤其是机械硬盘,断电后可能出现数据丢失或不读盘的情况. 那么机械硬盘的结构有什么特点,会导致它容易受到断电的影响呢?今天我们就来谈谈机械硬盘断电有关的话题. 机械硬盘 ...

  6. oracle空值影响索引么,使用索引的误区之四:空值对索引的影响-数据库专栏,SQL Server...

    使用索引的误区之四:空值对索引的影响 我们首先做一些测试数据: sql> create table t(x int, y int); table created 请注意,这里我对表t做了一个唯一 ...

  7. dev shm与oracle,linux下的/dev/shm/及对Oracle 的影响

    一./dev/shm/介绍: /dev/shm/是linux下一个非常有用的目录,因为这个目录不在硬盘上,而是在内存里.因此在linux下,就不需要大费周折去建ramdisk,直接使用/dev/shm ...

  8. oracle rac应急_Support for Oracle RAC 框架资源组故障

    Support for Oracle RAC 框架资源组故障 本节介绍可能会影响 Support for Oracle RAC 框架资源组的一些问题. 在 Support for Oracle RAC ...

  9. window 完全卸载oracle,Windows下彻底删除Oracle

    可以完整的删除Oracle products, Oracle services和注册表信息当然是很少情况下才想到删除oracle,只有确定真的不用的时候才做.如果需要请备份所有相关的文件.(下面操作假 ...

最新文章

  1. c#写图像tif gdal_C# GDAL显示TIF
  2. Go基础:格式化输出--Printf、Sprintf、Fprintf
  3. 802.11MAC基础
  4. Zookeeper_实际应用讲解
  5. pd怎么卸载linux系统,parallels desktop11怎么卸载?parallels desktop11卸载方法
  6. python使用md5加密_如何使用Python构建加密机器人并将其连接到Facebook Messenger
  7. python range函数怎么表示无限_python range函数怎么用
  8. 前端-----今日份小练习
  9. 程序员的十个经典算法
  10. oracle net Manager 配置连接 tiptop 鼎捷ERP 数据库
  11. 软件工程网络15个人作业3(201521123010徐璐琳)
  12. 白皮书:柬埔寨通过区块链支付实现无美元未来
  13. 计算机考研如何安排时间安排,2015年考研计算机复习计划及时间安排
  14. JMeter笔记9 | JMeter参数化
  15. 乘法逆元 java_乘法逆元的求法(5种)
  16. PostgreSQL 数据库下载安装
  17. Hybrid charging scheduling schemes for three-dimensional underwater wireless rechargeable sensor net
  18. 使用C#开发了一套收银软件
  19. 关于AD转换设计中的基本问题
  20. 王祖贤素颜现身疑整形 明星整容前后对比照惨不忍睹

热门文章

  1. 小乐乐与进制转换-c++(六进制转换函数)
  2. openwrt的自动挂载功能
  3. javamail写邮件/邮箱验证报错javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection
  4. 第八章 字符串和字符串函数
  5. 整理《我三年开发经验,从字节跳动抖音组离职后,一口气拿到15家公司Offer》
  6. angr分析程序的控制流图CFG
  7. 在阿里外包是一种什么样的体验?
  8. 阿里云 mysql 修改root密码修改_设置及修改MySQL root用户密码 - MySQL中文参考手册...
  9. html保留数据库文本格式,以html格式显示数据库中的格式化文本(FLASK应用程序)...
  10. 怎么写经济学论文的导言和文献综述