社区
基础和管理
帖子详情
关于oracle与磁盘i/o的困惑,请高手解答。
xyzhh
2005-05-20 04:01:16
DBWR,LGWR通常每3秒进行一次写入,那么说orale每3秒做一次i/o,在这期间,假如说我取了1万块钱,执行commit,那么数据应该还未写入硬盘,如果此时断电,重启,那么可以根据日志恢复数据的一致性,但是,我的1万元的取款记录还没写道硬盘里,是不是就白取了?
如果每commit一次,oracle就做一次磁盘i/o,那么效率是不是太低了?
...全文
221
11
打赏
收藏
关于oracle与磁盘i/o的困惑,请高手解答。
DBWR,LGWR通常每3秒进行一次写入,那么说orale每3秒做一次i/o,在这期间,假如说我取了1万块钱,执行commit,那么数据应该还未写入硬盘,如果此时断电,重启,那么可以根据日志恢复数据的一致性,但是,我的1万元的取款记录还没写道硬盘里,是不是就白取了? 如果每commit一次,oracle就做一次磁盘i/o,那么效率是不是太低了?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
nebulaly
2005-05-24
打赏
举报
回复
所以LGWR是顺序写入的
everydream
2005-05-23
打赏
举报
回复
我所知道的(如果不对,大家可以拍砖):
DBW0和LGWR是两个相互独立的Oracle后台进程,
LGWR发生的条件:1)提交 2)重做日志缓冲区1/3满 3)重做日志超过1M 4)在DBW0之前
DBW0发生的条件:1)脏缓冲区多 2)空闲冲区少 3)超时(3秒) 4)发生检查点(CKPT)
楼主提到的情况,数据确实没有写到数据文件中(没有发生DBW0),但是已经发生了LGWR(已经执行commit),此时发生断电,当重新启动历程后,由SMON后台进程负责执行自动恢复:
首先系统回进行一个前滚(Roll Forward),根据重做日志将已提交和未提交的数据全部写入。然后再执行一个回滚(Roll Back),整个过程的执行要用到回退段(RollBack Segment)的信息。经过这样的操作,1万元是不会白取的!!
cccclb
2005-05-23
打赏
举报
回复
Oracle应该不是你说的那样操作吧?
tomhuang
2005-05-23
打赏
举报
回复
commit前数据在回滚段里,也是在磁盘上,commit是把回滚段的数据写入正式的表。
tomhuang
2005-05-23
打赏
举报
回复
commit后数据就写入磁盘了,不会丢失的。
xyzhh
2005-05-23
打赏
举报
回复
当然,机房一般用的都是有ups的专用电,但是基于国情,也会有不用的。
另外,我是想知道理论上会不会有此种情况发生。
xyzhh
2005-05-23
打赏
举报
回复
没人理我?
everydream
2005-05-23
打赏
举报
回复
每次commit是要进行一次I/O,不过不是写数据文件(不是发生DBW0),而是写重做日志文件(发生LGWR),这一点是可以肯定的。这是因为写数据文件每次至少要写一个块的大小,而写重做日志文件只是写几个字节,二者在数量上有数量积的差别。这也是Oralce的精妙之处!
xyzhh
2005-05-23
打赏
举报
回复
根据oracle的资料,I/O合并也应该是最通常3秒钟一次。不论是写入日志也好,回滚也好,数据空间也好,只要想不丢数据,作一次磁盘i/o是不可避免的。要想做到这一点,每次commit就得一次磁盘i/o,这点是很清楚的,然而这样做的效率不可避免大幅度降低,oracle会这样做么?
nebulaly
2005-05-23
打赏
举报
回复
1.LGWR可能会进行I/O合并,最差情况下每次commit都有I/O操作
2.回滚段也受redo log保护
waterye
2005-05-21
打赏
举报
回复
生产数据库居然可以断电, 加ups了
Oracle
12数据库管理/DBA/数据库工程师培训
以
Oracle
12.2数据库为主要版本,系统介绍了
Oracle
数据库的基本管理。内容包括:
Oracle
数据库安装,
Oracle
常用工具,
Oracle
数据库体系结构,
Oracle
网络管理,
Oracle
实例管理,
Oracle
控制文件管理,
Oracle
重做日志管理,
Oracle
数据存储,
Oracle
重做日志管理等。
高负载高并发网站架构分析
由于自己正在做一个高性能大用户量的论坛程序,对高性能高并发服务器架构比较感兴趣,于是在网上收集了不少这方面的资料和大家分享。希望能和大家交流 msn: defender_ios@hotmail.com ——————————————————————————————————————— 初创网站与开源软件 6 谈谈大型高负载网站服务器的优化心得! 8 Lighttpd+S
工作中使用到的单词(软件开发)_2022-06-01备份
目录 ■Java学习汇总 ■常用链接 ■2020/03/15 (最初整理 242个单词) 2020 6/28 整理 2020 6/29整理 2020 7/6整理 ■2020 7/23 整理 ■2020/10/07 以降整理 ■2020/11/02 以降整理 ■2020/12/04 以降整理 ■2020/12/14以降整理 ■2021/01/01以降整理 ■2021/02/22以降整理 ■匿名内部类,lambda表达式,JDK7新特性,等等java相关 ■2021/03/...
java中的经典问题
解答
1、面向对象的特征有哪些方面? 答:面向对象的特征主要有以下几个方面: - 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。 - 继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。继承让变化中的软件系统有了一定的延续性
工作中使用到的单词(软件开发)_2023_0316备份
目录■Java学习汇总■常用链接■2020/03/15 (最初整理 242个单词)2020 6/28 整理2020 6/29 整理2020 7/6 整理■2020 7/23 整理■2020/10/07 以降整理■2020/11/02 以降整理■2020/12/04 以降整理■2020/12/14以降整理■2021/01/01以降整理■2021/02/22以降整理■匿名内部类,lambda表达式,JDK7新特性,等等java相关■2021/03/18以降整理Linux系统性能 相关■其他各种单词,知识(l
基础和管理
17,377
社区成员
95,128
社区内容
发帖
与我相关
我的任务
基础和管理
Oracle 基础和管理
复制链接
扫一扫
分享
社区描述
Oracle 基础和管理
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章