分布式MySQL运维关键点总结.docx
《分布式MySQL运维关键点总结.docx》由会员分享,可在线阅读,更多相关《分布式MySQL运维关键点总结.docx(10页珍藏版)》请在第一文库网上搜索。
1、分布式MySQ1运维关键点总结一分布式MySQ1本身问题/要注意问题1Bin1ogpurge成磁盘IO压力过大(因bin1og数量大大)进而引起业务Bin1og的PUrge策略为时间到点并且有新bin1og发生切搅(ratate)时清理bin1op。如果一段时间内产生大量bin1og(连格.跑枇处),然后业务整续很一,-7-.:-.1.1-一二一-二1二.一二二心-:据?1 .巳实现的COPytab1e方案,公表(f1ushtab1eexport.会强制脏页),拷贝ibd文件到目标表,import到tab1espaceo2 .新方案可使源表继续变更。1).强制混页完目的在于保证静态表持续拷贝过
2、程中,bufferpoo1会有充足的内存页空间来谡存写入更新之类操作,就不会触发剧脏而造成ibd数据文件受更(如果COPytab1e执行完之前bufferPoo1再次触发砌脏,则CCPytab1e失败);2)因为redo1og写满了,耍f1ush脏页二这种情况本身就是Inn。DB要与量避免的。因为出现这种情玩的时候,整个系所就不包再接殳更新了,二有的更新都必须堵住。所以redo1og的CheCkPOin1是不能控制的,redo1og还是要允许持续写入。3).拷贝ibd文件到目标表完成后.刷脏更正常进行就To4)目标表importtab1espace3K)?connecting或IO线程,SQ1
3、线程状态YES且是数据没同步主库线程du叩出问奥4Truncatetab1e/copytab1e(孽理类II.-J/DD1时对烫潭账户跑批时经常因为CQPytab1e操作引起磁筠I。100%进而影响在线交易业务5TruncatetabIe的缓存锁对全局有影6-一标代码中合入),尤其存在大量客户端(或PrCXy/用户)情况下MySq1开源的一拨接一线程方式太翳了。早已普及的IO复用却没有采用二.MySQ1中各种日志详细介绍2.1redo1og物理日志,innodb层产生,记录数据页的物理修改,而不是某一行或几行的修改怎样,它用来恢复提交后的物理数据页(CheCkPOint开始恢复)。1.事务重做
4、,数据库故障恢复使用。当事务(TranSaetion)需要修改某条记录(row)时,InnoDB需要将该数据所在的Page从disk读到bufferpoo1中,事务提交后,InnODB修改Page中的记录(row)o这时bufferpoo1中的Page就已经和disk中的不一样了,我们称bufferpoo1中的page为dirtypageoDirtypage等待f1ush到disk上。系统突然断电DirtyPage中的数据尚未f1ush到磁盘中,bufferpoo1数据全部消失。redoIog在每次事务COmmit的时候,就立刻将事务更改操作记录到redo1ogoInnoDB在启动时,仍然会根
5、据redo1og中的记录完成数据恢复。2.通过延迟dirtypage的f1ush最小化磁盘的randomwriteso(redo1og会合并一段时间内TRX对某个page的修改。1SN是日志空间中每条日志的结束点,用字节偏移量来表示。在CheCkPc)int和恢复时使用)。二进制日志先于redo1og被记录。RedoIog是并发写入的,不同事务之间的不同版本的记录会穿插吸入到redoIog文件中,可能为TIT,T1-2,T2-1,T1TRedo1ogfi1e大小对innodb性能影响非常大,设置太大,恢复时就会时间较长,设置太小,会导致写redoIOg时循环切换redo1ogfi1eo2.2u
6、ndo1og:用来回滚行记录到某个版本,undoIog一般为逻辑日志,根据每行记录进行记录。UndO1og有2个作用:提供回滚和多个行版本控制(MVCC)O当de1ete一条记录时,undoIog中会记录一条对应的insert记录。反之亦然,当UPdate一条记录时,它记录一条对应相反的UPdate记录。进行ro11back时,可以从UndOIOg中的逻辑记录读取到相对应的内容并进行回滚。应用到多版本控制时,也是通过UndoIog来实现的:当读取的某一行被其他事务锁定时,它可以从UndoIog中分析出该行记录以前的数据是什么,从而提供该行版本信息,让用户实现非锁定一致性读取。UndoIOg采用
7、SegnIent的方式来记录。每个UndO操作在记录时占用一个Undo1ogsegmento另外UndoIOg也会产生redo1og,因为UndO1og也要实现持久化保护。事务提交时,innodb不会立即删除Undo1og,而是将de1ete对象打个de1etef1ag。因为后续还可能会用到。如隔离级别为repeatab1eread时,事务读取的都是开启事务时的最新提交行版本,只要该事务不结束,该行版本就不能删除,即UndoIOg不能删除。但是在事务提交时,会将该事务对应的UndOIOg放入待删除列表,未来通过PUrge删除。对于InnODB来说,无论是更新,删除,都只是设置行记录上的de1e
8、tedversion标记位,而不是真正的删除记录,后续这些记录的清理,是通过PUrge后台进程实现的。二进制日志是Diysq1上层的日志,先于存储引擎的事务日志被写入。GaP1oCkS不适用于唯一索引(uniqueindex),在唯一索引记录上,只会使用index-recordIockCrashRecovery(nobin1og)由于未提交的事务和已回滚的事务也会记录到redoIog中,因此在进行恢复的时候,这些事务要进行特殊的处理innodb的处理策略是:进行恢复时,从CheCkPOint开始,重做所有事务(包括未提交的事务和已回滚的事务),然后通过UndOIog回滚那些未提交的事务XACr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 分布式 MySQL 关键 总结