数据库服务器负载过大
原因
- 服务器磁盘 IO 超负荷
- 存在大量阻塞线程
- 存在大量并发慢查询
- 存在其他占用 CPU 的服务
- 服务器硬件资源原因
解决方案
- 服务器硬件(硬件监控)
- 其他服务占用(ps, top)
- IO 超负荷(iostat -dmx 1, lsof)
- 阻塞线程(show processlist, 阻塞监控)
- 并发线程 (show processlist, 慢查询日志)
慢查询造成的磁盘 IO 爆表
- MySQL 输出大量日志
- MySQL 正在进行大批量写
- 慢查询产生大量磁盘临时表
主从数据库数据不一致
原因
- 对从服务器进行了写操作
- 使用 sql_slave_skip_counter 或注入空事务的方式修复错误
- 使用了 statement 格式的复制
解决方案
- 设置 read_only=ON
- 设置 super_read_only=ON
- 使用 row 格式的复制
- 使用 pt_table_sync 修复数据
主服务器连接不上
Slave_IO_Running: Connecting
- 主从服务器间网络是否畅通
- 是否存在防火墙,过滤了数据库端口
- 复制链路配置的用户名密码是否正确,是否有相应权限
主键冲突问题
Slave_SQL_Running: NO
- 跳过故障数据
- 检查主从数据一致性
- 直接删除从库主键冲突数据
数据行不存在
- 跳过故障数据
- 使用 pt-table-sync 修复数据
relay_log 损坏
- 找到已经正确同步的日志
- 使用 reset skave 删除 relay_log
- 在正确同步日志点后重新同步日志
欢迎扫描下方二维码,持续关注:
互联网工程师(id:phpstcn),我们一起学习,一起进步