《MySQL实战45讲》学习小结(运维篇)

丁奇老师《MySQL实战45讲》的学习小结

第一篇:基础概念

第二篇:运维管理

之前对数据库主要是使用,运维管理做得很少,主要是备份、备份、备份 ^_^

通过这门课,在运维管理这方面学到的知识最多,学习内容的整理也最吃力。

照例从问题入手。

要理解MySQL在运维方面的机制,首先要理解数据库运维面对的问题:

  1. 数据库服务崩溃,但存储器正常,如何恢复?

  2. 服务器损毁,服务器上数据损坏或丢失,如何恢复数据和服务?

  3. 误删数据,如何恢复?

  4. 系统压力超过单个数据库服务器的能力,如何分布到多个服务器?

  5. 数据库性能急剧下降,怎么办?

在处理这些问题之前,先理解MySQL的几个运行机制,再来梳理如何应对这些问题。

第一部分:运行机制

1. 日志和主备同步(第24讲,28讲)

主库和从库之间的数据同步过程,如下图所示:

从库上有两个线程。

io_thread负责向主库发起请求,建立长连接,然后接收主库发送的binlog,写入relay log。从库在发起请求时,可指定从哪个位置开始获取binlog。

sql_thread负责读取relay log,解析出日志里的命令,并执行。

从一个事务在主库上完成,到这个事务在从库上完成,时间差即为同步延迟。

如果主库掉电,事务已完成,但binlog尚未发送给备库,会导致数据丢失。

为了解决这个问题,可采用 semi-sync 模式。在主库上,事务需等待至少一个从库确认已收到日志,才能完成事务,向客户端发送response。

主库上有个dump_thread,负责监听来自从库的请求,并随时把binlog发送给从库。

一个主库可能要监听多个从库的请求,多个从库请求的binlog起始位置也可能不同。

因此一个主库不要带很多个从库,以免binlog的同步消耗太多资源。

2. 主备切换(第24讲,25讲,27讲)

主备服务器的配备,目前多采用对称结构,即主备服务器的硬件配置一致,各一台,都提供

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值