MySQL OCP888题解052-MySQL复制中的两个关键线程

1、原题

1.1、英文原题

You have a MySQL replication setup and you intentionally stop the SQL thread on the slave. mysql> SHOW SLAVE STATUS\G

Slave_IO_Running: Yes
Slave_SQL_Running: No
What are two reasons that you may stop the SQL thread on the slave while keeping the I/O thread running?
A、to allow the remaining events to be processed on the slave while not receiving new events from the master.
B、to allow a backup to be created under reduced load.
C、to allow for point-in-time recovery on the slave.
D、to prevent schema changes from propagating to the slave before they are validated.
E、to prevent any transaction experiencing a deadlock.

1.2、中文翻译

您有一个MySQL复制设置,并且有意停止从属服务器上的SQL线程。mysql> SHOW SLAVE STATUS\G

Slave_IO_Running: Yes
Slave_SQL_Running: No
在保持I/O线程运行的同时,您可能会停止从属服务器上的SQL线程的两个原因是什么?
A、 以允许在从机上处理剩余的事件,同时不从主机接收新的事件。
B、 以允许在减少的负载下创建备份。
C、 以允许在从属设备上进行时间点恢复。
D、 以防止模式更改在验证之前传播到从属服务器。
E、 以防止任何事务出现死锁。

1.3、答案

C、D

2、题目解析

2.1、题干解析

本题考察MySQL复制时两个关键线程的作用:IO线程和SQL应用线程。当IO线程保持运行而停止了SQL应用线程时,从服务器会继续从主服务器读取二进制日志,写入relay日志,但是不会解析为SQL去执行从而应用到数据文件中。所以日志被同步了,但从库的数据暂时没有变化。

2.2、选项解析

  1. 因为IO线程仍然在运行,所以会继续接收主库的新事务,所以选项A错误。
  2. 因为没有应用SQL,所以数据保持不变,所以适合做时间点恢复,因为保存了某个时间点下的数据。所以选项C正确。
  3. 因为没有应用SQL,所以主库的模式更改不会传播到从库,所以选项D正确。

3、总结

  1. MySQL的复制有两个关键线程:IO线程、SQL应用线程。IO线程接收从主库传来的新的二进制日志并写入中继日志。SQL应用线程负责读取中继日志,并运行其中的SQL从而做数据更新。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值