小滴课堂-学习笔记:生产环境数据库性能监控和优化面试环节

56 篇文章 0 订阅
15 篇文章 0 订阅

logo 愿景:"让编程不再难学,让技术与生活更加有趣"


更多架构课程请访问 xdclass.net

目录

第1集 生产环境的数据库,你会做哪些操作保证安全

第2集 你知道Mysql里面有多少种日志

第3集 层层套路之数据库主从复制里面知识考查

第4集 层层套路之数据库主从同步遇到的问题

第5集 Mysql主从复制数据一致性校验方案怎么做


第1集 生产环境的数据库,你会做哪些操作保证安全

简介:生成环境监控指标和安全

  • 考点:是否有监控和数据安全思维
  • 难度:【 ** ***】
  • 针对线上的数据库,你会做哪些监控,业务性能 + 数据安全 角度分析
大厂一般都有数据库监控后台,里面指标很多,但是开发人员也必须知道
​
业务性能
    1、应用上线前会审查业务新增的sql,和分析sql执行计划
        比如是否存在 select * ,索引建立是否合理
    2、开启慢查询日志,定期分析慢查询日志
​
    3、监控CPU/内存利用率,读写、网关IO、流量带宽 随着时间的变化统计图
    
    4、吞吐量QPS/TPS,一天内读写随着时间的变化统计图
​
数据安全
    1、短期增量备份,比如一周一次。 定期全量备份,比如一月一次
​
    2、检查是否有非授权用户,是否存在弱口令,网络防火墙检查
​
    3、导出数据是否进行脱敏,防止数据泄露或者黑产利用
​
    4、数据库 全量操作日志审计,防止数据泄露
    
    5、数据库账号密码 业务独立,权限独立控制,防止多库共用同个账号密码
    
    6、高可用 主从架构,多机房部署

 

 

第2集 你知道Mysql里面有多少种日志

简介:mysql常见日志的考查

  • 考点:mysql常见日志种类和作用

  • 难度:【 ** ** 】

  • Mysql有多少种常见的日志,分别解释日志的作用

    redo 重做日志
      作用:确保事务的持久性,防止在发生故障,脏页未写入磁盘。重启数据库会进行redo log执行重做,到达事务一致性
      
    undo 回滚日志
      作用:保证数据的原子性,记录事务发生之前的数据的一个版本,用于回滚。
      innodb事务的可重复读和读取已提交 隔离级别就是通过mvcc+undo实现
      
    errorlog 错误日志
      作用:Mysql本身启动、停止、运行期间发生的错误信息
      
    slow query log 慢查询日志
      作用:记录执行时间过长的sql,时间阈值可以配置,只记录执行成功
    ​
    binlog 二进制日志
      作用:用于主从复制,实现主从同步
      
    relay log 中继日志
      作用:用于数据库主从同步,将主库发送来的binlog先保存在本地,然后从库进行回放
      
    general log 普通日志
      作用:记录数据库操作明细,默认关闭,开启会降低数据库性能

     

 

第3集 层层套路之数据库主从复制里面知识考查

简介:数据库主从的用途、原理流程

  • 考点:是否搭建过主从,并掌握原理
  • 难度:【 ** ***】
  • 你们数据库是单点的吗?有没做多节点优化 ,怎么做的
我们公司数据库不是单节点,是多节点的,有做主从复制
  • 既然搭建过数据库主从复制,你能画下流程图说下异步复制原理不

image-20200229195643201

 

 

 

 

 

 

 

 

第4集 层层套路之数据库主从同步遇到的问题

简介:数据库主从遇到的问题和解决办法

  • 考点:搭建过主从,肯定有遇过些问题,解决思路
  • 难度:【 ** ** *】
  • 你们搭建数据库主从复制的目的有哪些

 

容灾使用,用于故障切换
业务需要,进行读写分离减少主库压力
 
  • 既然你们搭建了主从同步,且你们日增量数据量也不少,有没遇到同步延迟问题
  • 为什么会有同步延迟问题,怎么解决?
 

image-20200229195817665

 

 

 

 

第5集 Mysql主从复制数据一致性校验方案怎么做

简介:数据库主从复制数据一致性校验方案

  • 考点:搭建主从复制,有没做过数据一致性校验
  • 难度:【 ** ** *】
  • 什么场景下会出现主从数据不一致
1、本身复制延迟导致
2、主库宕机或者从库宕机都会导致复制中断
3、把一个从库提升为主库,可能导致从库和主库的数据不一致性
  • 是否有做过主从一致性校验,你是怎么做的,如果没做过,你计划怎么做
  • 如果不一致你会怎么修复
Mysql主从复制是基于binlog复制,难免出现复制数据不一致的风险,引起用户数据访问前后不一致的风险
所以要定期开展主从复制数据一致性的校验并修复,避免这些问题

解决方案之一,使用Percona公司下的工具

pt-table-checksum工具进行一致性校验

  原理:
  主库利用表中的索引,将表的数据切割成一个个chunk(块),然后进行计算得到checksum值。
  从库也执相应的操作,并在从库上计算相同数据块的checksum,然后对比主从中各个表的checksum是否一致并存储到数据库,最后通过存储校验结果的表就可以判断出哪些表的数据不一致


pt-table-sync(在从库执行)工具进行修复不一致数据,可以修复主从结构数据的不一致,也可以修复非主从结构数据表的数据不一致

  原理:在主库上执行数据的更改,再同步到从库上,不会直接更改成从的数据。在主库上执行更改是基于主库现在的数据,也不会更改主库上的数据,可以同步某些表或整个库的数据,但它不同步表结构、索引,只同步不一致的数据


注意:
  默认主库要检查的表在从库都存在,并且同主库表有相同的表结构
  如果表中没有索引,pt-table-checksum将没法处理,一般要求最基本都要有主键索引
  pt-table-sync工具会修改数据,使用前最好备份下数据,防止误操作
  • pt-table-checksum怎么保证某个chunk的时候checksum数据一致性?
当pt工具在计算主库上某chunk的checksum时,主库可能在更新且从库可能复制延迟,那该怎么保证主库与从库计算的是”同一份”数据,答案把要checksum的行加上for update锁并计算,这保证了主库的某个chunk内部数据的一致性


官方地址:https://www.percona.com/downloads/percona-toolkit/LATEST/

其他资料:https://www.cnblogs.com/zishengY/p/6852280.html

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dev666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值