版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MySQL数据一致性杭州沃趣科技股份有限公司H2an0gz1ho5u
.W1O1Q.U0T3echnology
Co.,
Ltd.01目录MySQL崩溃恢复安全性02MySQL复制原理及异步、semi-sync复制03MySQL主备复制如何保证数据一致性杭州沃趣科技股份有限公司Hangzhou
WOQU
Technology
Co.,
Ltd.01目录MySQL崩溃恢复安全性02MySQL复制原理及异步、semi-sync复制03MySQL主备复制如何保证数据一致性杭州沃趣科技股份有限公司Hangzhou
WOQU
Technology
Co.,
Ltd.Innodb崩溃恢复安全性如何保证undo-log实现事务的原子性(记录着数据变更前的记录,用于回滚没有提交的事务)redo-log实现事务的持久性,和Undo
Log相反,Redo
Log记录的是发生新的修改的数据。恢复时可以根据Redo
Log的内容,将所有数据恢复到最新的状态杭州沃趣科技股份有限公司Hangzhou
WOQU
Technology
Co.,
Ltd.undo+redo简单的事务执行过程和特点假设表中有A、B两个数据,值分别为1、2,事务执行update时的简单过程如下:begin,undo
logredo
logundo
logredo
logredo
logcommit,事务开始记录A=1记录A=3记录B=2记录B=4把A、B修改落盘提交事务杭州沃趣科技股份有限公司Hangzhou
WOQU
Technology
Co.,
Ltd.undo+redo简单的崩溃恢复过程如何使用redo
log、undo
log简单崩溃恢复如下:checkpoint点prepare状态redo
logundo
logchange
buffermerge,undo
purge主要是为了加快crash
恢复的速度用checkpoint标记数据落盘到哪个位置了,对于checkpoint之前的部分,不需要再用redo
log恢复,因为数据已经的部分.prepare状态之前的事务,会直接回滚,杭州沃趣科技股份有限公司Hangzhou
WOQU
Technology
Co.,
Ltd.prepare状态的事务,如果binlog已经落盘,落盘了,只需要应用checkpocinht点e之ck后point是什么?
则重新提交,否则回滚控制redo
log如何刷新的参数主库参数优化:
mit=1杭州沃趣科技股份有限公司Hangzhou
WOQU
Technology
Co.,
Ltd.Double
writedouble
write
作用?避免部分写double
write
组成?内存和磁盘各两个1M组成杭州沃趣科技股份有限公司Hangzhou
WOQU
Technology
Co.,
Ltd.01目录MySQL崩溃恢复安全性杭州沃趣科技股份有限公司Hangzhou
WOQU
Technology
Co.,
Ltd.0203MySQL主备复制如何保证数据一致性MySQL复制原理及异步、semi-sync复制MySQL的复制的应用场景•利用从库做读能力提升(读写分离)利用从库做读能力提升(读写分离)•利用从库做master故障的接管(故障切换)利用从库做master故障的接管(故障切换)•利用从库做备份减少对业务的影响利用从库做备份减少对业务的影响•利用从库做升级(升级MySQL版本或者升级业务数据库结构)利用从库做升级(升级MySQL版本或者升级业务数据库结构)•利用从库做特殊的SQL统计(如count,group
by,sum)利用从库做特殊的SQL统计(如count,group
by,sum)12345杭州沃趣科技股份有限公司Hangzhou
WOQU
Technology
Co.,
Ltd.MySQL
如何实现复制Binlog
Dump杭州沃趣科技股份有限公司Hangzhou
WOQU
Technology
Co.,
Ltd.二阶段提交sync-binlog=1log-bin=mysql-bin开启binary
logInnodb_support_xa=1多线程并发执行提交事务,按照事务的先后顺序写入binlog。杭州沃趣科技股份有限公司Hangzhou
WOQU
Technology
Co.,
Ltd.MySQL
binlog的格式发展MySQL5.1.5MySQL5.1.5MySQL5.1.8之前及其之后及其之后只支持statement新增支持row格新增支持mixed格式式格式杭州沃趣科技股份有限公司Hangzhou
WOQU
Technology
Co.,
Ltd.MySQL
Binary
log三种格式的区别Mixed=statement+row:mysql默认采用statement格式进行二进制日志文件的记录,但是在一些情况下会使用row格式,可能使用row格式的情况有:1)表的存储引擎为NDB,这时对表的DML操作都会以row格式记录
2)使用了uuid(),user(),current_user(),found_rows(),row_count()等不确定函数
3)使用了insert
delay语句使用了用户自定义函数UDF使用了临时表Statement:记录的是逻辑SQL优点是日志量小缺点是执行一些不确定的函数(如uuid(),now())会出现主从数据不一致Row:记录的不再是简单的SQL语句了(DDL还是记录的SQL),而是记录的表的行更改的情况优点是解决了statement格式下主从数据不一致的问题,所有数据都可以安全地复制缺点是日志量大,影响从库日志的复制时间杭州沃趣科技股份有限公司Hangzhou
WOQU
Technology
Co.,
Ltd.Binary
log格式-statement格式记录的内容Binary
log格式-row格式记录的内容MySQL复制原理Master节点配置[mysqld]log-bin=mysql-binserver-id=1Slave节点配置[mysqld]server-id=2Binlog
Dump杭州沃趣科技股份有限公司Hangzhou
WOQU
Technology
Co.,
Ltd.Slave查看复制详情show
slave
status\GMysql>show
slavestatus\GSlave_IO_Running:YESSlave_SQL_Running:YES杭州沃趣科技股份有限公司Hangzhou
WOQU
Technology
Co.,
Ltd.场景一:Master主库正常关机从库重连间隔参数:master_connect_retry=10杭州沃趣科技股份有限公司Hangzhou
WOQU
Technology
Co.,
Ltd.场景二:Master主库异常InternetMASTER
SLAVEslave_net_timeoutmaster_connect_retrymaster_retry_count默认值3600秒默认值60秒,changemaster语句可设置默认值86400次,changemaster语句可设置杭州沃趣科技股份有限公司Hangzhou
WOQU
Technology
Co.,
Ltd.官方半同步复制原理杭州沃趣科技股份有限公司Hangzhou
WOQU
Technology
Co.,
Ltd.5.7增强半同步原理杭州沃趣科技股份有限公司Hangzhou
WOQU
Technology
Co.,
Ltd.开启semi-sync主备复制主库Master安装插件semisync_master.so并配置f:mysql>
install
plugin
rpl_semi_sync_master
SONAME
'semisync_master.so';[mysqld]rpl_semi_sync_master_enabled=1rpl_semi_sync_master_timeout=1000
#
1
second从库slave安装semisync_slave.so插件并配置f:mysql>
install
pluginrpl_semi_sync_slave
SONAME
'semisync_slave.so';[mysqld]rpl_semi_sync_slave_enabled=1查看当前semi-sync变量设置:mysql>
SHOW
VARIABLES
LIKE
‘rpl_semi_sync%’;查看当前semi-sync状态信息:mysql>
SHOW
STATUS
LIKE
'Rpl_semi_sync%';PS:如果从库已经启动了异步复制,那么在配置了semi-sync之后,备库需要先stop
slaveio_thread;startslaveio_thread;然后再使用参数setglobalrpl_semi_sync_slave_enabled=1;重新打开半同步杭州沃趣科技股份有限公司Hangzhou
WOQU
Technology
Co.,
Ltd.01目录MySQL崩溃恢复安全性02MySQL复制原理及异步、semi-sync复制03MySQL主备复制如何保证数据一致性杭州沃趣科技股份有限公司Hangzhou
WOQU
Technology
Co.,
Ltd.从库崩溃恢复之后,如何知道从主库的哪个位置开始复制?记录主机master连接信息、IO线程读取到的当前主机Binarylog文件名和日志偏移量master_info_repository=FILE时这些信息记录到文件中relay_记录本地SQL线程已经执行到的中继日志名称和主库对应的Binarylog文件名、偏移量relay_log_info_repository=FILE时这些信息记录到relay_文件中杭州沃趣科技股份有限公司Hangzhou
WOQU
Technology
Co.,
Ltd.IO线程和SQL线程的信息保存在文件中如何保证不丢失保存文件,崩溃时可能并没有落盘,导致丢失双sync参数设置为1,又会导致从库性能差,且因为binlogevent的更新与保存这个位置之间并不是原子操作,所以就算设置为1还是可能丢失这个位置杭州沃趣科技股份有限公司Hangzhou
WOQU
Technology
Co.,
Ltd.IO线程和SQL线程的信息保存在innodb表中如何保证不丢失relay_log_recovery=ON保存table,innodb表,可利用innodb崩溃恢复特性对于SQL线程信息保存在table中,mysql自身做了两个优化:
1、slave_relay_log_info表的update事务插入合并到SQL线程执行binlog的事务中,通过这个优化可以做到实时更新SQL线程杭州沃趣科技股份有限公司Hangzhou
WOQU
Technology
Co.,
Ltd.位置,并且保证了两者之间是一个原子操作。2、innodb本身支持group
commit,更新slave_relay_log_info也适用MySQL数据一致性--回顾基于binlog逻辑日志复制log-bin=mysql-bin#主库打开写binlog功能server-id=1#复制架构中全局唯一binlog_format=row
#row数时,只把真正的变更复制到从库mit=1#保证redo
实时落盘sync_binlog=1#保证binlog实时落盘
innodb_support_xa=1#保证binlog的写入顺序与事务提交顺序一致server-id=2
#复制架构中全局唯一innodb存储引擎自身通过rreeldaoy_lloo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国石油大学(北京)《法律职业能力入门》2023-2024学年第一学期期末试卷
- 郑州商学院《形式基础2》2023-2024学年第一学期期末试卷
- 小学学校劳动教育实施方案
- 长春工程学院《生物技术特色创新》2023-2024学年第一学期期末试卷
- 生态大数据平台建设构想
- 硕士答辩实务指导模板
- 专业基础-房地产经纪人《专业基础》押题密卷2
- 房地产交易制度政策-《房地产基本制度与政策》全真模拟试卷3
- 二零二五年餐饮企业市场信息保密协议模板下载2篇
- 二零二五年绿色建筑标准住宅买卖契约合同样本3篇
- 2024年关爱留守儿童工作总结
- GB/T 45092-2024电解水制氢用电极性能测试与评价
- 《算术平方根》课件
- 2024-2024年上海市高考英语试题及答案
- 山东省济南市2023-2024学年高二上学期期末考试化学试题 附答案
- 大唐电厂采购合同范例
- GB/T 18724-2024印刷技术印刷品与印刷油墨耐各种试剂性的测定
- IEC 62368-1标准解读-中文
- 15J403-1-楼梯栏杆栏板(一)
- 2024年中考语文名句名篇默写分类汇编(解析版全国)
- 新煤矿防治水细则解读
评论
0/150
提交评论