常见的单机故障场景
- 数据库被杀导致页面没有完全写入磁盘
- 系统断电导致页面半写
- 磁盘损坏导致系统损坏
常见的集群故障场景
- 单机故障
- 单机网卡故障
- 机架断电
- 机架断网
- 数据中心过热
常用的故障修复手段
检测
- 大部分故障无需额外的检测手段,是显然的,比如系统宕机。但是在大规模系统中,为了减少运维开销,需要有集群管理系统,对整个集群状态进行监控和上报,包括cpu温度、网络状态、系统状态等等;
- 心跳检测机制,这是最常用的远程检测机器状态的方法;
- 页面或日志损坏,需要通过checksum机制来甄别;
应对方法
数据库被杀导致页面没有完全写入磁盘
需要日志重做机制来保证事务的一致性
系统断电导致页面半写
目前数据库系统采用double write或者full page write的方式处理这个故障
磁盘损坏导致系统损坏
这个故障需要区分损坏的内容是哪里:
1. 对于数据页损坏,往往需要通过离线备份来恢复数据,据说oracle支持从备份直接回复单页的功能,这可以大大提高修复的速度
2. 对于日志损坏,一般需要通过归档日志来恢复,或者预先采用日志多份写到多个磁盘的方式保证有正确的日志可用
3. 对于以上两种情况,单机热备都是可选的方式,如果主机损坏,可以使备机立刻升级为主机,然后再通过重建的方式使原来的主机变为备机
单机故障
数据重复存储