mysql主从复制延迟解决
mysql主从配置成功,但是过段时间再操作master,发现slave没有同步更新
复制有延迟,slave想要尽可能及时跟上master的进度,可以尝试采用以下几种方法:
1、采用MariaDB发行版,它实现了相对真正意义上的并行复制,其效果远比ORACLEMySQL好的很多。在我的场景中,采用MariaDB作为slave的实例,几乎总是能及时跟上master。如果不想用这个版本的话,那就老实等待官方5.7大版本发布吧;
关于MariaDB的ParallelReplication具体请参考:ReplicationandBinaryLogServerSystemVariables#slave_parallel_threads–MariaDBKnowledgeBase
2、每个表都要显式指定主键,如果没有指定主键的话,会导致在row模式下,每次修改都要全表扫描,尤其是大表就非常可怕了,延迟会更严重,甚至导致整个slave库都被挂起,可参考案例:mysql主键的缺少导致备库hang;
3、应用程序端多做些事,让MySQL端少做事,尤其是和IO相关的活动,例如:前端通过内存CACHE或者本地写队列等,合并多次读写为一次,甚至消除一些写请求;
4、进行合适的分库、分表策略,减小单库单表复制压力,避免由于单库单表的的压力导致整个实例的复制延迟;
其他提高IOPS性能的几种方法,根据效果优劣,我做了个简单排序:
1、更换成SSD,或者PCIeSSD等IO设备,其IOPS能力的提升是普通15KSAS盘的数以百倍、万倍,甚至几十万倍计;
2、加大物理内存,相应提高InnoDBBufferPool大小,让更多热数据放在内存中,降低发生物理IO的频率;
3、调整文件系统为XFS或ReiserFS,相比ext3可以极大程度提高IOPS能力。在高IOPS压力下,相比ext4有更稳健的IOPS表现(有人认为XFS在特别的场景下会有很大的问题,但我们除了剩余磁盘空间少于10%时引发丢数据外,其他的尚未遇到);
4、调整RAID级别为raid1+0,它相比raid1、raid5等更能提高IOPS性能。如果已经全部是SSD设备了,可以2块盘做成RAID1,或者多快盘做成RAID5(并且可以设置全局热备盘,提高阵列容错性),甚至有些土豪用户直接将多块SSD盘组成RAID50;
5、调整RAID的写cache策略为WB或FORCEWB,详情请参考:常用PC服务器阵列卡、硬盘健康监控以及PC服务器阵列卡管理简易手册;
6、调整内核的ioscheduler,优先使用deadline,如果是SSD,则可以使用noop策略,相比默认的cfq,个别情况下对IOPS的性能提升至少是数倍的。
其他更多方法,欢迎大家帮忙补充:)
mysql的主从复制能配置远程mysql吗
long_query_time=1
#slow_query_log
slow_query_log=1
#slow_query_log_file=var/lib/mysql/slow-query.log
#以前版本的参数格式跟5.6的不一致
slow_query_log_file=var/lib/mysql/slow-query.log
#将所有没有使用带索引的查询语句全部写到慢查询日志中
log_queries_not_using_indexes=1
本回答由提问者推荐
请问:1,mysql主从复制是什么概念,什么场合下用,最好举例说明;
1 主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库;主数据库一般是实时的业务数据库,从数据库的作用和使用场合一般有几个:
一是作为后备数据库,主数据库服务器故障后,可切换到从数据库继续工作;
二是可在从数据库作备份、数据统计等工作,这样不影响主数据库的性能;
2 读写分离,是指读与写分别使用不同的数据库,当然一般是在不同服务器上的;在同一台服务器上的读写环境,估计只是用来测试吧。
一般读写的数据库环境配置为,一个写入的数据库,一个或多个读的数据库,各个数据库分别位于不同的服务器上,充分利用服务器性能和数据库性能;当然,其中会涉及到如何保证读写数据库的数据一致,这个就可以利用主从复制技术来完成。
一般应用场合为:业务吞吐量很大,读数据库(可简单理解为select语句的 比例和影响)的负载较大;
官方的mysql-proxy就是一个实现了读写分离、负载均衡等多个功能的软件。主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库;主数据库一般是实时的业务数据库
1. MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
2. MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
3. 与其他的大型数据库例如Oracle、DB2、SQL Server等相比,MySQL 自有它的不足之处,但是这丝毫也没有减少它受欢迎的程度。
4. 对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于 MySQ L是开放源码软件,因此可以大大降低总体拥有成本。
如何添加新数据库到mysql主从复制列表
首先,我们大概罗列一下主从复制的基本步骤,(MySQL主从首先需要在各自服务器配置好)。
1. 复制数据库。
mysqldump --master-data --single-transaction -R --databases [db_name] | gzip -9 - | pv > all-db-with-master-data.sql.gz
注意:innodb用 –single-transaction, myisam需要用 –lock-all-tables。
2. 复制,导入数据。
pv < all-db-with-master-data.sql.gz | zcat | mysql
3. 启动slave数据库。
slave start
注意:切换到主的语句已经在导出的sql语句里面了,注意查看。change master to master_log_file=’(binlog name in relay_master_log_file)’, master_log_pos=(exec_master_log_pos number)。
那么,在现有的主从复制结构中,如何增加一个新的数据库进去?比如我们要增加一个数据库在master服务器上,比如,名为newdb的数据库。
具体操作如下:
1. 从服务上,停掉slave数据库。
stop slave;
2. 主服务器上,导出新数据库。
mysqldump --master-data --single-transaction -R --databases newdb > newdb.sql
3. 主服务器上,修改my.cnf文件,添加新库到binlog-do-db参数,重启mysql。
4. 在导出的newdb.sql里面查找当前的日志文件以及位置(change master to …)
然后让slave服务器执行到这个位置。
start slave until MASTER_LOG_FILE="mysql-bin.000001", MASTER_LOG_POS=1222220;
其中MASTER_LOG_FILE以及MASTER_LOG_POS在导出的数据库newdb.sql顶部位置查找。
4. 导入新库到从服务器上。
mysql < newdb.sql
5. start slave
其中比较重要的是在主服务器上导出新库时的日志位置(position A),这个点很重要,以这个点做为分界线,导入新库。
这种方法也同样适用于某个数据库或者某个数据表不同步的情况,比如主从数据库有一个表由于某些原因数据不一致,那么上面的方法只需要去掉重启数据库一步,其他的操作基本
mysql主从复制延迟解决相关推荐
- MySQL主从复制延迟原因及处理思路
简单概述一下复制逻辑: 1.主库将对数据库实例的变更记录到binlog中. 2.主库会有binlog dump线程实时监测binlog的变更并将这些新的events推给从库(Master has se ...
- 动力节点老杜mysql文件_mysql主从复制+mysql主从复制延迟解决方案
### 1. 为什么需要mysql主从复制 1. 数据热备 在复杂的业务场景中, 可能因为某一条sql造成了锁表, 这样就会影响正常的业务运行.在复杂的业务场景中, 我们可以使用mysql主从复制, ...
- mysql主从复制延迟问题的相关知识与解决方案
一.如何监控发生了主从延迟? 在从库机器上,执行show slave status,查看Seconds_Behind_Master值,代表主从同步从库落后主库的时间,单位为秒,若同从同步无延迟,这个值 ...
- 【踩坑记录】记一次MySQL主从复制延迟的坑
最近开发中遇到的一个MySQL主从延迟的坑,记录并总结,避免再次犯同样的错误. 情景 一个活动信息需要审批,审批之后才能生效.因为之后活动要编辑,编辑后也可能触发审批,审批中展示的是编辑前的活动内容, ...
- MySQL主从复制故障解决
丛库复制停止,进丛库查看,报错1007,数据库已存在,不能创建数据库 mysql> show slave status\G; Slave_IO_Running: Yes Slave_SQL_Ru ...
- mysql 案例~mysql主从复制延迟处理(2)
一 简介:今天来聊聊周期性从库延迟的问题,是上一篇的基础分析的一个场景 二 背景:近期每天的指定时间段,收到从库延迟的报警,然后过一段时间恢复.由于从库是提供读服务的,所以需要解决 三 分析思路: 1 ...
- mysql replication延迟_深入mysql主从复制延迟问题的详解
面试mysqldba的时候遇到一个题: 描述msyql replication 机制的实现原理,如何在不停掉mysql主库的情况下,恢复数据不一致的slave的数据库节点? MySQL的复制(repl ...
- 字节跳动高工面试:mysql主从复制延迟
RPC概述 RPC(Remote Procedure Call)即远程过程调用,允许一台计算机调用另一台计算机上的程序得到结果,而代码中不需要做额外的编程,就像在本地调用一样. 现在互联网应用的量级越 ...
- MySQL主从复制延迟的监测及缓解
参考:http://blog.csdn.net/jiao_fuyou/article/details/15027447 http://mp.weixin.qq.com/s?__biz=MzA5Nzc4 ...
最新文章
- linux 服务器拦截http请求,详解Linux屏蔽浏览器上http请求警报的方法
- CF1010F Tree
- 浙江理工大学电信宽带校园网访问添加路由表命令(2020.10)(Windows和Liunx)
- 如何去除TD之间的空隙
- Struts2中的OGNL详解
- 特斯拉电动皮卡发布:马斯克称它能防弹、能上火星,结果还没扛过一钢球......
- 2021.10.26 Node.js笔记
- Oracle随机函数的取法
- java如何代码找错误_如何编写可怕的Java代码?
- c#简要概括面向对象的三大特征(三)
- 软件设计模式与体系结构(入门基础知识)
- java计算机毕业设计房产中介管理系统源码+系统+lw+数据库+调试运行
- echarts折线图标识最大值
- 电子计算机奏出美妙的交响改为把字句,部编版四年级语文上册(课文内容填空+句子专练含答案).doc...
- 齐博cms基础教程之认识齐博cms
- 液化空气在中国启动生物甲烷业务;斯凯孚和ABB加大工业自动化领域合作 | 美通企业日报...
- 全民都是评选专家,提前一天泄露 2020 博客之星最终结果
- 中国颅骨固定系统行业市场供需与战略研究报告
- 在Ubuntu 18下安装SIMULIA Abaqus 2020
- 中标麒麟系统安装达梦8 数据库