Mysql13 复制2

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: <div class="markdown_views"><h2 id="复制管理">复制管理</h2><h3 id="监控">监控</h3><p>SHOW MASTER LOGS; <br>查看主库当前有哪些二级制日志,其logname是其他命令的入参, file_size是偏移量也是入参。</p><p>假设我们知道日志的偏移量(来源于上面的命令)使用: <

复制管理

监控

SHOW MASTER LOGS;
查看主库当前有哪些二级制日志,其logname是其他命令的入参, file_size是偏移量也是入参。

假设我们知道日志的偏移量(来源于上面的命令)使用:
SHOW BINLOG EVENTS IN ‘mysql-bin.0000023’ FROM 13634;
能查看最后执行的sql语句。

测量备库延迟

SHOW SLAVE STATUS命令,但是会有问题:

  • 使用服务器当前日期,与二进制文件中的时间时间戳进行对别的
  • 大事件会导致延迟波动
    更好的解决办法是使用heart record.这是一个主库上会每秒更新一次的时间戳。

确认主备是否一致

pt-table-checksum检查主备是否一致的工具

从主库重新同步备库

移除备库,重新同步一个出来
使用mysqldump命令。 这个命令需要锁住表之后再操作
pt-table-sync工具

改变主库

计划内

  1. 停止写入 read only
  2. 停止客户端写入
  3. 等待备库赶上主库
  4. 将备库配置为主库
  5. 给新主库配置备库
  6. 向新主库开放访问权限

计划外
这种会面临,主库数据丢失, 不同步。 备库间也不同步

  1. 首先要确定使用那台备库,使用最新的。 SHOW SLAVE STATUS 看 Master_Log_File的值
  2. 让备库完成中继日志
  3. 导出主库的bin-log。建立空主库运行
  4. 使用SHOW MASTER STATUS查看日志位移
  5. 备库连接到临时主库继续执行位移的日志
  6. 提升备库为主库

复制问题

数据损坏或者丢失

主库意外宕机
如果没有设置sync_binlog,那么有一定的可能崩溃前几个二进制日志没有刷进磁盘。 重启之后备库线程再次连上来。主库会告诉他偏移量不存在。
解决方式是,让备库从下一个二进制日志的开头读,然后用工具查看主备一致性。 或者开启sync_binlog避免丢失,但是会带来性能损失
。。。 还有很多,具体的不赘述了

使用非事务型表

要保证主库重启前,运行了STOP SLAVE否则有可能数据不一致。

不确定语句

主要是基于语句的复制,这个开发的时候就要注意。考虑到有可能产生这种现象的原因。

使用唯一的服务器ID

InnoDB加锁读引起的锁争用

INSERT… SELECT操作会引起读锁,会使串行化。
可以拆分成小命令
使用SELECT INTO OUTFILE,, LOAD DATA INFILE代替INSERT..SELECT.更快,不加锁。

过大的复制延迟

注意,应用设计上要允许出现延迟
延迟一般都是突然出现的很不好监测

可以用些手段来提升备库的性能:

  • 发现延迟之后如果打开了log_slows_slave_statements可以查看问题
  • 关闭备库二进制日志
  • 设置刷新磁盘的点innodb_flush_log_at_trx_commit
  • 不重复写操作中代价较高的部分
    比如一个更新统计表的操作,可以优化为。在主库中新建一个库。统计结构更新这个库。然后用SELECT INTO OUTFILE和LOAD DATA INFILE来写回主库。这样就不会再备库同步执行这个操作
    基于同样的思想,还可以把这部分操作放到应用层面来做统计,然后应用层显示调用更新数据库操作。
  • 在复制之外进行操作 主要是解决了备库是串行的问题
    常见的有两种,一种是归档型数据库。归档操作进制归档操作记录到二进制文件中,然后在主库和备库上单独执行这些归档查询
    还可以对一些特殊的表单独处理。 使用应用程序手工的方式来处理这些标的同步。这样可能会带来数据性能的提升。

主备库 包大小配置不一致

如果主备的 max_allowed_packet 不匹配,有可能主库传来过大的包。 可能造成报错或者日志损坏等等。

带宽不足

可以通过开启备库的 slave_compressed_protocol选项,来让传输时对数据进行压缩及解压。

复制速度

测试:

INSERT INTO lag_test(now_usec) VALUES (NOW_USEC())
//要保证主从库时间同步
// 注意库必须是varchar列,因为时间列的精确度可能是到秒

然后使用TIMESTAMPDIFF方法来查询时间差异
可以插入1000比输入,然后根据数量级进行分组,或者求下平均值。看下一般的延迟是多久
一般情况下都是在0.几毫秒以内

一些高级特性

  • 5.1引入了行复制
  • 5.5引入了半同步。
    在提交食物后,返回给客户端结果前保证二进制日志传输到了至少一台备库上,这样就能更好的保证主从同步。但是会给客户端事务提交的时间延迟一点点。半同步还会有一点点性能改善,因为有半同步,可以更大胆的关闭bin-log。本地写磁盘转化为远程写内存。事实证明远程写内存更快。
  • 5.5还增加了复制心跳监测
  • 5.6引入了并行复制,对部分并行处理

其他复制行为

Percona Toolkit和Percona Xtrabackup都提供了基于复制或者帮助复制的功能
Tungsten Java的开源中间件复制产品。提供了自动数据分片,并发执行,数据复制,款平台复制,多源复制等功能。 他很实用,一些优点:
- 内建一致性检查
- 插件特性
- 全局事务ID,不用再去匹配日致命和偏移量了
- 能快速的将备库提升为主库
- 异构复制 比如Mysql到PostgreSQL
- 不同版本之间
- 并行
缺点则是要学习,更复杂,效率稍低。

总结一下:

  • 显著增加了Mysql的功能和可用性
  • 不提供监控,配置,管理等功能,可以使用其他管局优化,比如:Percona Toolkit和XtraBackup
  • 复制配置前需要用上面的工具来进行对比,确认是考虑
  • 监控不会落后于主库
  • 应用设计要避免主备延迟的脏数据情况
  • 备库制度并且增加权限,不要多处写。
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
缓存 负载均衡 监控
Nginx实现高并发
通过应用上述策略,可以大幅提高Nginx的并发处理能力,从而在面对高流量时,保持稳定、快速的服务响应。不断地监控和调优系统将有助于保持服务器性能的最优化。
240 3
|
Java Spring
在Spring Boot中使用AOP实现日志切面
在Spring Boot中使用AOP实现日志切面
|
11月前
|
传感器 安全
透明铝:未来材料的强度与透明度
【10月更文挑战第20天】透明铝是一种由氮氧化铝或氧化铝陶瓷基板制成的透明陶瓷材料,具备高强度和高透明度。本文探讨其基本原理、技术特性、应用领域及未来趋势,揭示其在军事、航空航天、汽车制造和建筑设计等领域的广泛应用前景和巨大潜力。
|
搜索推荐 数据挖掘 定位技术
商场定位导航系统:为用户提供的智能化与个性化服务
在现代社会,商场不仅是购物之地,也是休闲社交之所。但庞大的规模常导致顾客迷路,影响体验。商场定位导航系统通过精准室内定位技术,帮助顾客轻松找到目的地,显著提升便捷性与满意度。系统还具备实时位置共享及智能路径规划功能,加强互动营销;同时,数据分析工具助力商场优化管理,提高效率。核心功能包括:高精度电子地图、智能路径规划、实时定位导航、位置共享及基础设施快速查找。这些特性不仅能增加顾客满意度与忠诚度,还能提高商场运营的数据化水平,扩大品牌影响力,是商场智慧化转型的关键。
264 0
商场定位导航系统:为用户提供的智能化与个性化服务
|
弹性计算 安全 关系型数据库
阿里云上云解决方案参考,多种技术与行业解决方案助力企业上云
对于初次上云的用户来说,参考一份适合自己行业的解决方案可帮助自己快速上手,并根据方案的内容选择适合自己的云产品进行方案部署。阿里云发布各种解决方案是基于众多客户上云的成功案例萃取而成的最优化企业上云指导,涵盖前端Web和移动应用程序开发、网站搭建、网络组网、数据库、迁云等众多上云项目。本文为大家汇总了一些上云解决方案的详情入口,方便大家快速查询与自己场景相符的解决方案。
1587 1
阿里云上云解决方案参考,多种技术与行业解决方案助力企业上云
|
JavaScript 前端开发 Java
若依框架---选中某值 其他值自动回调填充
若依框架---选中某值 其他值自动回调填充
332 0
|
Ubuntu Linux
Install Typora on Linux
Install Typora on Linux
248 1
面试题:判断两个时间是否在同一周
这个题是在面试的时候遇到的,还遇到了2次,和大家分享一下自己的解题思路 感觉像是一个业务上的题,可能面试官刚做过类似的需求,就直接拿出来问了
|
存储 弹性计算 缓存
搭建基于OSS的图片分享网站
参与体验产品,提交反馈,就有机会获得定制背包,T恤,以及5到100元对象存储OSS专属代金券~ 反馈地址:[https://developer.aliyun.com/adc/series/ysmb2]
搭建基于OSS的图片分享网站

热门文章

最新文章