目标:
- mysql服务结构,当客户端发起请求之后,mysqld如何处理
- 如何重置mysql密码(多种⽅法)
- 索引的作⽤
- b树和b+树的区别
- 什么情况下会导致索引失效
- innodb和myisam存储引擎的区别
- 如果客户的数据库是myisam如何切换到innodb(⼤致步骤)
- mysql服务损坏,且没有备份的情况下,数据库服务如何恢复
- 事务的作⽤
- 事务的ACID
- 事务的隔离级别
- 悲观锁与乐观锁的区别
- 事务的redo和undo的过程
- 在事务未提交的情况下,数据库服务器重启,会发⽣什么
- ⼆进制⽇志中row模式和statement模式的优缺点
- 慢查询⽇志分析(mysqldumpslow)
- 主从复制原理(课上画图分析过,⼏个要素binlog,dump thread,relay-log,master.info,io thread,sql
thread) - 主从复制,从库误操作写⼊数据怎么办(主从不同步,会导致SQL线程停⽌)
- 主从复制,从库IO线程故障排查思路
- 主从复制中的延时从库,半同步复制,过滤复制使⽤场景
- MHA架构的原理
数据库相关操作:
安装Mysql数据库:
Mysql结构:
Mysql操作:
Mysql索引:
事务的ACID特性和四个隔离等级:
日志管理:
案例:使用二进制日志文件进行数据恢复
大概思路:首先查看当前使用的日志文件,用show binlog events 找到起始 position和终止的position,然后用mysqlbinlog工具将日志截取下来,重定向到另外一个文件。登录db将bin日志文件先关闭。然后再source。最后开启bin日志文件。
备份和恢复:
用mysqldump工具进行逻辑备份,备份的原理是把数据(包括表库)从Mysql数据库中以Sql语句的形式直接输出或者生成备份文件。这种叫逻辑备份。
案例主从复制原理:
- 主服务器上的更新操作会被写到二进制日志文件中
- 从服务器上的io线程会检测到主服务器的二进制文件变化
- 同步主服务器的二进制日志文件到本地的中继日志文件
- 从服务器上的sql线程负责读取和执行中继日志文件中的sql语句
流程图:
案例MHA架构(master high avaliable):
MHA能够在较短的时间内实现自动故障检测和故障转移,通常在10-30s内,在复制框架中,MHA能够很好的解决数据不一致的问题,由于不需要在现有的replication中添加额外的服务器,仅需要一个manager节点,而一个manager节点可以管理多套复制,所以能大大地节约服务器的数量。另外,安装简单,无性能损耗,以及不需要修改现有的复制部署也是它的优势之处。
MHA还提供在线主库切换的功能,能够安全地切换当前运行的主库到一个新的主库中(将从库提升为主库)
架构图:
工作流程:
- 将down机的master二进制日志文件保存下来
- 找到binlog位置点最新的slave
- 在binlog位置点最新的slave用relay-log修复其他salve
- 将master的二进制日志文件恢复到此节点上
- 将此节点提升为master
- 将其他slave指向此master并开启主从复制。
2052 2910