1 了解故障管理类型及数据库恢复技术
2 了解数据转储技术
3 了解如何利用日志文件进行数据恢复
4 了解硬件容错方案
DBMS 中常见的4类故障
事务内部故障
系统故障
机制故障
计算机病毒故障
事务内部故障
事务故障导致数据不一致,分为预期的(大部分)和非预期的
(1)预期的事务内部故障
可通过事务过程发现,解决办法:回滚
(2)非预期的事务内部故障
不能由事务程序处理的故障,如运算溢出等
事务故障的恢复由系统自动完成
系统故障
又称软故障,运行期间,由于硬件故障,数据库软件及OS 漏洞,突然断电等故障,导致数据不一致
解决办法:重启后,撤销(UDNO)所有未提交的事务,重做(REDO)所有已提交的事务
介质故障
又称 硬故障 ,运行期间由于磁头碰撞,磁盘损坏,强磁干扰,天灾人祸等,使得数据丢失的一类故障,导致物理存储设计损坏,数据文件及数据全部丢失,破坏性最大
容错策略:软件容错及硬件容错
软件容错:
使用数据库备份及事务日志文件,通过回复技术,回复数据库备份结束时的状态,若故障导致事务日志文件丢失,则不能完全恢复
硬件容错:
一种方案使用双物理存储设备,如双硬盘镜像。缺点:自然灾害或机房水灾,火灾导致双硬盘同时损坏,则失去保护作用。
另一种方案是设计两套相同的数据库系统,通过数据库软件机制,同步变化数据
计算机病毒故障:
病毒是恶意的计算机程序,破坏OS 及数据库系统(破坏数据文件为主)
解决办法:防火墙,杀毒软件,数据库备份文件。
无论哪种故障,恢复的基本原理是冗余。
数据库恢复:把数据库从错误状态到某已知的正确状态
在DBMS 中数据库恢复子系统占10%
恢复机制设计两个问题:如何建立冗余数据;如何利用这些冗余数据实施数据库恢复系统
建立冗余据的技术:
数据备份,等级日志文件,数据库复制,数据库镜像,为段设计保存点以及使用后备段与现行页表来支持对段的保存
最常用的是数据备份和登记日志文件
数据转储即数据备份
指DBA 或DBMS 定期复制数据库,并将其存放到其他介质的过程
这些保存的副本称为后援副本或后备副本
静态转储和动态转储
静态转储:期间系统不能运行其他事务,不允许任何存取,修改活动
静态转储保证数据的一致性,但降低了数据库的可用性,转储和事务是互斥的
动态转储:即允许转储和事务并发执行。动态转储不能保证转储数据的一致性
动态转储+日志文件(记录转储期间各事务对数据库的修改活动记录);既保证数据一致性又提高了数据库的可用性
数据转储机制
完全转储:对数据库中所有数据进行转储,占据较多时间和空间,但恢复时间短
增量转储: 只复制上次转储就发生的变化或数据块。所需时间及空间短,但只能和完全转储配合才能数据块进行恢复
差量转储:对最近一次数据库完全转储以来发生的数据变化进行转储
多种转储方法结合使用
仅使用完全转储:占据时间和空间多,代价大
完全转储 + 增量转储:恢复时间长
完全转储 + 差量转储:恢复时间短
DBMS 运行中,将左右事务的修改操作等级到日志文件
作用:事务故障恢复和系统故障恢复必须使用日志文件
动态转储方式中必须建立日志文件
在静态转储方式中也可使用日志文件
日志文件的格式与内容
以记录为单位的日志文件
需要记录的内容:
各个事务的开始标记 BEGIN TRANSACTION
各个事务的结束标记:COMMIT OR ROLLBACK
各个事务的所有更新操作
以数据块为单位的日志文件
日志记录的内容包括:
事务标识和被更新的数据块
登录日志文件的原则
登记次序严格按并行事务执行时间次序
保证事务对数据库操作的可再现性金和正确性
必须先写日志文件,然后写数据库文件
先后顺序必然导致必然性
检查点:最大限度减少数据完全恢复时必须执行的日志部分
检查点引入:在日志中增加检查点记录,增加一个‘重新开始文件’
检查点记录的内容:建立检查点时刻正执行的事务清单,这些事务最近一个日志记录的地址
重新开始文件记录的内容:各个检车点记录在日志中的地址
基于检查点回复步骤
1 从‘重新开始文件’中找到最后一个检查点记录在日志文件中的地址,从而找到最后一个检查点记录
2 由该检查点记录得到执行的事务清单ACTIVE_LIST
3 从检查点开始正向扫描文件
4 对UNDO_LIST 的事务执行UNDO ,对REDO_LIST 的事务执行REDO
由于数据库运行的硬件故障,机房电力故障,机房自然灾害等,要求从硬件级别对DBMS进行保护
从DBMS 运行所需要的各种环境出发,分析支撑数据库系统运行的环节
相关度紧密的技术:数据库存储保护技术,服务器容错技术及数据库镜像与容灾技术
磁盘保护
RAID: 廉价冗余磁盘阵列,多块磁盘构成一个整体
RAID依靠冗余技术数据保护:
镜像冗余
即把所有的数据复制到其他设备
额外开销大:更多的磁盘,控制器,电缆。
校验冗余
对成员磁盘的数据执行异或 (XOR)操作,得到器校验值,并放在另外的检验盘上
实现复杂,但比镜像冗余占据的空间小
RAID 根据所采用的方法不同,分为RAID-0,RAID-1,RAID-1E,RAID-6,RAID-7,RAID-10,RAID-50,RAID-60
RAID-0:将多个磁盘合并成一个大的磁盘,不具有冗余,并行I/O,速度最快
RAID-1:两组以上的N个磁盘相互镜像,在一些多线程操作系统中能有很好的读取速度,在理论上读取速度等于硬盘数量的倍数,另外写入速度有稍微小的降低,只要一个磁盘正常即可维持运作,可靠性最高
RAID:RAID Level 5 是一种存储性能,数据安全和存存储成本兼顾的存储解决方案,它使用的是Disk Strioing (硬盘分区技术)。RAID 5 至少需要散客硬盘,DAID 5 不是对存储的数据进行备份,而是把数据和相对应的奇偶校验有信息存储到组成到RAID5 的各个磁盘上,并且奇偶校验信息和对应的数据分别存储于不同的磁盘上,并且奇偶校验信息和对应的数据分别存储于不同的磁盘上
RAID -10 :RAID与RAID -1 的组合体,继承了前者的快速,后者的安全。RAID -10 冗余度为50%
服务器容错技术
引入服务器容错原因
解决服务器硬件一场问题
服务器容错技术简介
采用两台相同的服务器,共享存储设备,(双击热备,Active - Standby)
两台服务器之间会有私有网络进行心跳检测
服务器接管过程
其他服务器容错技术:
硬件级别:自行设计制造的专用软硬件架构
软件级别:专门的服务器级别容错技术,如Oracle 提供RAC 架构
数据库镜像与数据库容灾
引入数据库镜像原因
前面几种恢复技术都必须及时正确地转储数据库
数据库镜像简介
是一种用于提高数据库可用性的解决方案,它根据DBA的要求,自动把增个数据库或关键数据复制到另一个磁盘上
数据库镜像分类
双机互备援模式
两台机器均为工作机,正常情况下均为系统提供支持,互相监视对方的运行情况
双机热备份模式
一台为工作机,一台为备份机,工作机为系统提供支持,备份集监视工作机的运行情况
工作方式
数据库镜像会话中,主体服务器和镜像服务器作为伙伴进行通信和协作,在会话中扮演互补角色,一旦初选故障,使用‘角色互换’过程来互换主图服务器和镜像服务器
SQL Server 数据库镜像简介
SQL Server 数据库镜像是将数据库事务处理从一个SQL Server 数据库移到不同的SQL Server 数据库
镜像的复制是一个备用的复制,不同直接访问,只用来进行错误恢复
见证服务器 使镜像服务器自动识别
两种运行模式: 高安全性模式 及运行模式
SQL Server 数据库镜像提供三种实现方式
高可用性,两台服务器同步事务写入,支持自动错误恢复
高保护性 两台服务器同步事务写入,手工错误恢复
高性能 . 两台服务器写入不同步,手工恢复错误