ITPUB论坛-中国最专业的IT技术社区

 找回密码
 注册
查看: 15425|回复: 2

oracle和mysql是如何解决partial page write 部分写问题的

[复制链接]
论坛徽章:
32
优秀写手
日期:2014-07-23 06:00:13秀才
日期:2016-08-05 10:34:04秀才
日期:2016-08-05 10:34:04秀才
日期:2016-08-05 10:28:31秀才
日期:2016-08-05 10:33:40技术图书徽章
日期:2016-08-05 10:29:11秀才
日期:2016-08-05 10:28:57秀才
日期:2016-08-05 10:28:57秀才
日期:2016-08-05 10:28:57秀才
日期:2016-09-27 15:16:21
发表于 2017-2-20 10:29 | 显示全部楼层 |阅读模式
在很多资料中都没有明确的解释,无奈还请各位大侠能给个合理解释
在mysql中会出现部分写的问题。
比如InnoDB 的Page Size一般是16KB,将数据写入到磁盘时,比如16K的数据,写入4K 时,发生了系统断电/os crash ,
只有一部分写是成功的,就是 partial page write 问题。 这是mysql说用double write来解决
但mysql的innodb引擎里也有,redo+undo,实例启动时也能做到和oracle类似的前滚和回滚,那mysql为什么不能用redo解决
这个部分写问题呢。非要再多出个double write的解决方案呢?
另外问下,oracle是不是直接通过redolog 解决这种部分写问题啊,oracle和mysql解决部分写问题的原理有何不同呢?
论坛徽章:
32
优秀写手
日期:2014-07-23 06:00:13秀才
日期:2016-08-05 10:34:04秀才
日期:2016-08-05 10:34:04秀才
日期:2016-08-05 10:28:31秀才
日期:2016-08-05 10:33:40技术图书徽章
日期:2016-08-05 10:29:11秀才
日期:2016-08-05 10:28:57秀才
日期:2016-08-05 10:28:57秀才
日期:2016-08-05 10:28:57秀才
日期:2016-09-27 15:16:21
 楼主| 发表于 2017-2-22 15:48 | 显示全部楼层
没人知道么

使用道具 举报

回复
论坛徽章:
6
2014年新春福章
日期:2014-02-18 16:50:09马上有车
日期:2014-02-18 16:50:09优秀写手
日期:2014-05-29 05:59:082015年新春福章
日期:2015-03-04 14:55:132015年新春福章
日期:2015-03-06 11:59:47秀才
日期:2017-09-18 17:02:34
发表于 2017-3-9 14:26 | 显示全部楼层
redo+undo本身是能解决你说的问题,但是为了防止在写数据的过程中,更改的页本身就发生了损坏,所以用了double write,对更改的页做一个副本,分两次写入共享表空间做备份。

使用道具 举报

回复

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

本版积分规则

TOP技术积分榜 社区积分榜 徽章 电子杂志 团队 统计 虎吧 老博客 知识索引树 读书频道 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档 | IT博客
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛 | SAP ERP系统
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 网站律师 隐私政策 知识产权声明
京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表