给出一套mysql备份容灾方案
- [主从复制(Master-Slave Replication)](#主从复制(Master-Slave Replication))
- 尾记
大家好,我是小川Coding,毕业后在中部城市,已工作4年,准备跳槽中,最近参与了几家线下线上的面试,其中有一家头部新能源企业,待遇颇优,分享下其中一个关于mysql的面试题。
约的是本周一下午1点半,厂区很大,提前一个小时到,HR带我到会议室等待
技术面试来了两个人,直接进入主题
面试官:先做下自我介绍...
...
最后一项问到
面试官:看你简历上有提到擅长mysql数据库,而且在公司是中高级开发,不知道你对mysql的备份容灾有无了解
我:项目最新使用了MySql8.4版本...(还好有所准备)
面试官:我问完了,你有什么要问我们的吗?"
接下来,直接进入分享的主题,从主从复制 到级联复制
主从复制(Master-Slave Replication)
简介

- MySQL最基础且应用广泛的灾备技术
- 核心是将数据库A实例作为主(Master),其他实例B、C、D作为从(Slave)
- 当然最常见的也就是一主(A)一从(B)
- 主A将所有数据变更记录到二进制日志(binlog)
- 从B、C、D通过I/O线程读取这些日志并应用到本地

配置主库
- 在my.cnf中启用log-bin并设置唯一的server-id

- 启动主库,查看状态

创建复制用户
-
主库A上创建用户
sqlCREATE USER 'copyer'@'%' IDENTIFIED BY 'copyer@111';
-
查看权限
sqlSELECT * FROM information_schema.USER_PRIVILEGES WHERE GRANTEE = "'copyer'@'%'";
-
授权复制&查看
sqlGRANT REPLICATION SLAVE ON *.* TO 'copyer'@'%' WITH GRANT OPTION; SELECT * FROM information_schema.USER_PRIVILEGES WHERE GRANTEE = "'copyer'@'%' ";
配置从库
- 设置不同的server-id

连接到主库A

查看复制状态
sql
show replica status\G ;

优缺点分析
- 优点:架构简单,资源需求少,部署容易
- 缺点
- 故障切换通常非自动化,需手动处理
- 数据同步存在延迟,可能导致一致性问题
尾记
- 1个小时多的面试问答结束,面试官通知我等消息
- 涉及到数据库架构设计方案,咱真是没实践过
- 回到住处,关于这个问题,我又认真查看了资料
- 这里再提一个级联复制

