您现在的位置:首页
--> MySQLOPS
MySQL数据库InnoDB存储引擎 Buffer Pool页面分配(innodb_buffer_pool_size) 当用户需要读取一个在外存中的页面,或者是分配一个新的页面进行插入,就需要调用buf0flu.cc::buf_LRU_get_free_block函数进行页面的分配。一个完整的MySQL数据库InnoDB存储引擎页面分配流程需要包含以下几个步骤: 1.尝试从Buffer Pool的free list中分配新页面,大部分情况下,Buffer Pool的free list都是包含空闲页面的,因此直接分配即可。分配出的页面,需要从free list中删除。
MySQL数据库InnoDB存储引擎一直有一个Bug,就是当开启binlog时,无法进行group commit。究其原因,是为了保证InnoDB存储引擎的事务日志与mysqlbinlog日志的顺序一致性。 在prepare前需要获取mutex,直到commit完成之后释放,这也禁用了group commit的功能。
InnoDB Buffer Pool,可以说是InnoDB系统内部最重要的模块之一。通过系统参数innodb_buffer_pool_size,用户可以设置几G,几十G,乃至上百G的内存空间。那么,InnoDB存储引擎系统是如何管理这么大一片内存空间的呢?
Oracle有一个闪回(flashback)功能,能够用户恢复误操作的数据。本文讨论MySQL中支持闪回的方案。 1、 闪回的目标 即使为了数据安全,我们搭建了主从。但实时主从备份只能防止硬件问题,比如主库的硬盘损坏。但对于误操作,则无能为力。比如在主库误删一张表,或者一个update语句没有指定where条件,导致全表被更新。当操作被同步到从库上后,则主从都“回天无力”。
对于安装使用xen虚拟机大家已是很熟悉的操作了,但有些对于xen migrate的操作有的还不太熟悉。此xen高可用技术可保证guest的不间断服务。 下面介绍几种常用的xen Guest域迁移操作,其中主要介绍动态迁移,如有文中有当之处,欢迎拍砖。 一.冷静态迁移,使用此方法需关闭GUEST域。
Insert Buffer,经历多次的版本变迁,其功能越来越强。最早的Insert Buffer,仅仅实现Insert操作的Buffer,这也是Insert Buffer名称的由来。在后续版本中,Innodb多次对Insert Buffer进行增强,到Innodb 5.5版本,Insert Buffer除了支持Insert,还新增了包括Update/Delete/Purge等操作的buffer功能,Insert Buffer也随之更名为Change Buffer。但是在Innodb5.5-5.6的代码之中,Insert Buffer对应的文件仍旧是ibuf,所有的函数,也都以ibuf前缀命名。
1.InnoDB存储引擎 AIO insert into nkeys values (71,71,71,71,71); Innodb的异步I/O,默认情况下使用linux原生aio,libaio。关于异步I/O的优势,可参考网文[18][19];libaio的限制,可见网文[17]。下面详细分析Innodb 异步I/O的处理步骤。
导读: 昨天彻夜难眠,也许又是每个人的那几天来了,不知道何时养成的毛病,每隔一段时间就会失眠几天。这段时间在策划和组织华东运维技术大会,跟赞助商的市场和销售人员联系沟通,突然发现自己真的属于又傻又天真的IT技术人员,本着互惠互利的方式去开展商务活动,而现实却是对方总是希望以最低廉的代价获得更高的收益,这是我们技术人员与市场/销售人员之间的最大区别,这样的技术会议赞助费用并不高,只有2W足矣,相比他们的营收上亿微不足道,现实是残酷的,除非额外答应让他们分享一个广告性质的主题,这违背我搞华东运维技术大会的原则,为此不得不拒绝。
2012年5月10日,Sauce Labs公司的首席架构师Steven Hazel,写了一篇关于弃用NoSQL数据库CouchDB产品,介绍他们将Couch数据库的数据迁移到MySQL数据库平台中。 在Sauce Lab(酱油实验室)里,我们刚刚庆祝完成一个重大项目—将最后的CouchDB数据库转变为MySQL数据库,以提高服务正常运行时间和可靠性。 由于大部分无故停机的是由于CouchDB数据库宕机引起的,因此完成这种迁移是我们一个重要的里程碑。
LILO是一个在Linux环境编写的Boot Loader程序(所以安装和配置它都要在Linux下)。它的主要功能就是引导Linux操作系统的启动。但是它不仅可以引导Linux,它还可以引导其他操作系统,如DOS,WINDOWS等等。它不但可以作为Linux分区的引导扇区内的启动程序,还可以放入MRB中完全控制Boot Loadr的全过程。下面让我们看看几种典型情况下硬盘的主引导扇区和各个分区的引导扇区内程序的内容。
在开发C++程序时,一般在吞吐量、并发、实时性上有较高的要求。设计C++程序时,总结起来可以从如下几点提高效率: 并发、异步、缓存。下面将我平常工作中遇到一些问题例举一二,其设计思想无非以上三点。
你有一个队列在Rabbit中。你有一些客户端从该队列消费。如果你完全不配置QoS设置(basic.qos),这样Rabbit将以网络和客户端容许的尽可能快地速度发送队列中的所有消息到客户端。因为消费者在自己的RAM中缓存所有的消息,他们的内存将暴涨。如果你查询Rabbit,可能出现队列中是空的,但可能有以百万计的未确认的消息,因为它们在客户端,等待客户端应用程序处理。如果您添加了一个新的消费者,没有消息保留在队列中以被发送到新的消费者。消息只是被缓存在现有客户中,并有可能在那很长一段时间,即使有其它变为可用的消费者可以更快处理这些消息。这很不理想。
MySQL源代码的海洋中游弋 初探MySQL之SQL执行过程
2012年3月6日,thomas-krenn.com网站分享出来一张非常清晰全面描述Linux操作系统中的I/O Stack的流程图,分享的流程图是Linux操作系统内核3.3版本的I/O Stack, I/O Stack流图分为几大部分......
[导读] 运维人员经常需要给开发人员分配机器,搭建各种开发环境,还得维护开发机器,如果开发人员越多,需要更多的开发机器,有没有简单的方案来解决这些问题. 这里就是为大家vagrant.vagrant大家可能不熟悉,vagrant 是使用的Oralce 公司的VirtualBox 建立快速,便携式,动态配置的虚拟机.
摘要: 每个系统,都有自己的最大处理能力,后台技术人员对此必须很清楚,且要注意自我保护,不然就会被雪球压垮,出现雪崩。 雪球: 对于时延敏感的服务,当外部请求超过系统处理能力,如果系统没有做相应保护,可能导致历史累计的超时请求达到一定规模,像雪球一样形成恶性循环。由于系统处理的每个请求都因为超时而无效,系统对外呈现的服务能力为0,且这种情况下不能自动恢复。
PostgreSQL介绍 本书都是关于一个最近最成功的开源产品,一个名叫PostgreSQL的关系数据库。
预计2012年5月7日,阿里巴巴集团将正式公布技术团队合并的事情,涉及的部门:阿里巴巴运维团队、阿里巴巴DBA团队、阿里巴巴平台技术部、大淘宝运维团队、大淘宝DBA团队、大淘宝核心系统部、阿里云计算运维团队、阿里云计算DBA团队和阿里巴巴集团安全团队,上述技术团队合并之后,从一些可以猜测到的信息分析,大淘宝的员工成为相关技术团队的掌舵者,以及去IOE政治运动是阿里巴巴集团首席架构师王坚主导的,阿里巴巴和淘宝的技术团队内部非常有影响力的行颠负责执行,那么阿里巴巴集团内部所有子公司去IOE运动将继续深化,就淘宝、阿里巴巴和支付宝去IOE事件,以局外人的角度进行利弊分析,希望能达到给明白真相和不明白真相的群众一个合情合理中立的分析。
关于puppet 的高可用性,以及扩展性puppet pro 书中有详细介绍,本文是参考puppet pro资料进行安装与配置. 为什么要使用Apache来实现,因为puppet 内置的web服务器 比较慢,现在主流的有nginx,apache,关于使用nginx来实现puppet 负载均衡可以参阅:puppet nginx,puppet 官文也有相应文档.可供参考。
这周阿里集团DBA内部分享时,支付宝的黄忠同学提了一个问题,关于InnoDB索引page 的利用率。 page利用率 主要是指btee里面每个page的使用被使用的空间大小。我们知道InnoDB默认一个page大小是16k。但实际使用情况不会总用满.
近3天十大热文
- [43] IOS安全–浅谈关于IOS加固的几种方法
- [43] 如何拿下简短的域名
- [42] Oracle MTS模式下 进程地址与会话信
- [42] 图书馆的世界纪录
- [41] 界面设计速成
- [40] android 开发入门
- [39] 【社会化设计】自我(self)部分――欢迎区
- [37] 读书笔记-壹百度:百度十年千倍的29条法则
- [36] 视觉调整-设计师 vs. 逻辑
- [33] 程序员技术练级攻略
赞助商广告