MySQL 切换有哪些策略
主备延迟
怎么在备库查看主备延迟
在备库执行show slave status, 结果的seconds_behind_master 就是当前备库延迟了多少秒。
主备延迟的原因
- 从库的机器配置比较差
- 备库执行了统计类型的SQL,导致压力大
- 主库正在执行大事务。如果一个主库上的语句执行 10 分钟,那这个事务很可能就会导致从库延迟 10 分钟。
- 大表DDL
主备切换策略
由于主备延迟的存在,所以在主备切换的时候,就相应的有不同的策略。
可靠性优先策略
可靠性优先策略,可以最大程度的保证数据一致性。关键点是当seconds_behind_master小于某个阈值时,将主库设置为 readonly, 当备库的赶上主库的进度,即seconds_bind_master=0时,将备库改为可读写状态,将业务请求切到备库B。
可用性优先策略
指的是,直接将备库设置为可读写然后把业务流量切到备库。但是在这个过程中,可能出现数据不一致的情况。
比如biinlog 格式为statement,主库写入 c=4, id=4, 然后就进行了主备切换,新主库还没执行c=4, id=4, 就插入c=5的记录,此时结果为c=5 id=4, 然后执行c=4, id=5 的记录。这主要是statement格式没记录主键,插入的记录自己生成了主键。
如果出现循环复制怎么办
出现循环复制,一种情况是 A 与 B 是双M结构,然后进行迁移,A与A1 组成双M的过程中,来自B的binlog 在A与A1形成了循环复制,因为binlog的server_id 为 B的,A,A1判断不是自己产生的binlog就会执行,然后传给对方
在 任意库执行
stop slave;
CHANGE MASTER TO IGNORE_SERVER_IDS=(server_id_of_B);
start slave;
将产生循环赋值的server_id忽略掉
stop slave;
CHANGE MASTER TO IGNORE_SERVER_IDS=();
start slave;
然后再改回来
MySQL 切换有哪些策略的更多相关文章
- [问题]apparmor 问题导致mysql切换datadir目录失败
问题: 在mysql切换datadir后,mysql服务无法启动.出现错误说plugin表无法读取,需要用mysql_upgrade创建.但是其实不是这个问题. 原因: apparmor 会限制程序对 ...
- mysql 30大优化策略
mysql 30大优化策略 1.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描. 2.对查询进行优化,应尽量避免全表扫描,首先应考虑在 wher ...
- 携程二面:讲讲 MySQL 中的 WAL 策略和 CheckPoint 技术
前段时间我在准备暑期实习嘛,这是当时面携程的时候二面的一道问题,我一脸懵逼,赶紧道歉,不好意思不知道没了解过,面试官又解释说 redo log,我寻思着 redo log 我知道啊,WAL 是啥?给面 ...
- MySQL索引与优化策略
1. MySQL索引实现 在MySQL中,索引属于存储引擎级别的概念,不同存储引擎对索引的实现方式是不同的,下面主要讨论MyISAM和InnoDB两个存储引擎的索引实现方式. MyISAM索引实现 M ...
- mysql常见安全加固策略
原创 2017年01月17日 21:36:50 标签: 数据库 / mysql / 安全加固 5760 常见Mysql配置文件:linux系统下是my.conf,windows环境下是my.ini: ...
- Mysql 5.7 密码策略 ERROR 1819 (HY000)
Mysql 5.7 默认对用户密码有密码强度要求,如果指定弱密码,会提示如下: ERROR (HY000): Your password does not satisfy the current po ...
- mysql 切换数据库方案
业务场景 在SAAS模式下,不同的租户需要切换数据库,我们可以使用动态数据源,动态数据源有个问题,就是需要对每一个数据库创建一个连接池,在初始化的时候初始化这些连接池, 如果多台应用服务器的情况,每一 ...
- MySQL建立高性能索引策略
索引永远是最好的查询解决方案嘛? 索引并不总是最好的工具.总的来说,只有当索引帮助存储引擎快速查找到记录带来的好处大于其带来的额外工作(比如插入操作后索引的维护)时,索引才是高效的. 对于非常小的表: ...
- MySQL的id生成策略
1 自增 CREATE TABLE `test` ( `id` ) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAUL ...
- mysql切换数据库提示警告:Reading table information for completion of table and column names
登录数据库后,选择数据库时发现以下提示, mysql> use testReading table information for completion of table and column ...
随机推荐
- ChatGPT学习之旅 (2) Hello Prompt
大家好,我是Edison. 上一篇:初步了解ChatGPT 什么是Prompt Prompt又称提示词,它是AI模型的指令.它即可以是一个问题,也可以是一段文字描述,AI模型会基于你给出的Prompt ...
- Jfinal启动报错-文件找不到
- Rust 修仙之道 第一章 灵值初开 · 掌握变量与函数的灵气流动
第一章:灵值初开 · 掌握变量与函数的灵气流动 那一年,顾行云尚是初入灵道的"代码童子",寄居在俗世码农村.他常听村中老人谈及一部残缺古卷,记载着失传已久的灵术之语--Rust经. ...
- TypeScript 类型判断
多谢大哥的指教. https://www.wenjiangs.com/doc/typescript-typeguard instanceof instanceof 与 typeof 类似,区别在于 t ...
- centos设置swap
熟话说 内存不够,交换来凑,swap 就是用来提前在硬盘中划分一部分空间作为内存使用, 无奈论在linux或windows都有这个概念. 在安卓手机中还给起了一系列的名字 比如 内存融合.扩展内存什么 ...
- 前端开发系列061-网络篇之HTML页面渲染的基本过程
本文描述了HTML页面渲染的基本(一般)过程,需要说明的是该文并不包含关于HTML解释器.CSS解释器.JavaScript引擎等相关部分内部的具体处理细节.该文旨在简单介绍网页从加载到被我们看到过程 ...
- windows cmake 需要qt 如何做
简介 RT Qt windows识别 -find Qt components set (CMAKE_PREFIX_PATH "E://winsoft//qt//5.12.10//msvc20 ...
- Codigger浏览器:Spitfire的功能特点解析
在数字化生活中,浏览器已成为日常工作与生活的基础工具.对于注重效率与安全的用户而言,一款适配需求的浏览器能显著提升使用体验.Spitfire浏览器作为CodiggerDesktop操作系统的官方定制工 ...
- SciTech-AV-Audio-Coding-Sampling-PCM(Pulse Code Modulation, 无压缩无损级) + WAV格式(PCM格式加header头的Metadata信息, Microsoft和IBM开发的)
SciTech-AV-Audio-DAP(Digital Audio Processing)-Loudness Normalization(响度规范化): Perceived Loudness + R ...
- SciTech-AV-Audio-DAP(Digital Audio Processing)-Loudness Normalization(响度规范化): Perceived Loudness + RMS (Root Mean Square)
EBU: European Broadcasting Union Loudness Normalization Use the Loudness Normalization to change the ...