第十章备份与恢复.ppt
文本预览下载声明
第10章 备份与恢复;第10章 备份与恢复;数据库恢复
当某种故障使数据库当前状态已不正确或不可靠时,把数据库恢复到故障发生前的某一已知的正确状态的过程
数据库恢复的基本原理
利用数据冗余。即数据库中的数据是根据冗余存储在系统其他地方的数据来重建。
数据库恢复是以数据备份为前提的,利用备份数据恢复数据库
数据库备份
周期性或非周期性地将数据库中的数据进行复制,转储在联机或脱机设备中
备份设备
可以是磁盘或磁带;备份的类型
数据库备份(Database Backups)
对数据库的完全备份
备份所有数据以及数据库对象
通过还原数据库,只用一步就可以利用数据库备份重新创建整个数据库,将其恢复到服务器或数据库发生故障前最后一次数据库备份时的状态
数据库完全备份速度较慢,且占用大量的磁盘空间,通常安排在晚间数据库操作相对空闲时
条件
数据不是非常重要
数据库变化的频率不大
若对数据库一致性要求较高,要求将数据库恢复到发生损坏的一刻,则不应仅使用数据库备份。;事务日志备份(Transaction Log Backup)
对数据库发生的事务进行备份
包括从上次进行事务日志备份、差异备份和数据库完全备份之后所有已经完成的事务
利用事务日志备份可将数据库恢复到任意一个创建事务日志备份的时刻
在下列情况下选择事务日志备份
不允许在最近一次数据库备份之后发生数据丢失或损坏
存储备份文件的磁盘空间很小或者留给进行备份操作的时间有限
准备把数据库恢复到发生失败的前一点
数据库变化较为频繁;在使用事务日志对数据库进行恢复操作时
必须有一个完整的数据库备份
事务日志备份恢复时,必须要按照一定的顺序进行
如
上周末进行了数据库完全备份
从周一到本周末的每一天都进行一次事务日志备份
若要对数据库进行恢复,则
首先恢复数据库备份
然后按照顺序恢复从周一到本周末的事务日志备份
;差异备份(Differential Database Backups)
备份最近一次数据库备份以来发生的数据变化
是一种增量数据库备份
与完整数据库备份相比
差异备份的数据量较小
备份和恢复所用的时间较短
与事务日志备份相比
增加差异备份的备份次数,可降低丢失数据的风险,将数据库恢复至进行最后一次差异备份的时刻
但无法像事务日志备份那样提供到失败点的无数据损失备份;在实际应用中,可采用下列备份方案来综合使用3种备份
首先有规律地进行数据库备份,如每晚备份一次
其次以较小的时间间隔进行差异备份,如三、四个小时备份一次
最后在相邻的两次差异备份之间进行事务日志备份,如每二、三十分钟备份一次
进行恢复时
可先恢复最近一次的数据库备份
接着恢复差异备份
最后进行事务日志备份的恢复;若要将数据库恢复到数据库失败点,方法为
若能够访问数据库事务日志文件,则应备份当前正处于活动状态的事务日志
恢复最近一次数据库备份
恢复最近一次差异备份
按顺序恢复自差异备份以来进行的事务日志备份
若无法备份当前数据库正在进行的事务,则只能把数据库恢复到最后一次事务日志备份的状态而不是数据库失败点;文件和文件组备份(File and File Group Backup)
对数据库文件或文件夹进行备份
这种备份用于仅想对遭到破坏的文件或文件组进行恢复时
可提高数据库恢复的速度。
在使用文件或文件组进行恢复时
要求有一个自上次备份以来的事务日志备份来保证数据库的一致性
故在文件或文件组备份后应再进行事务日志备份,否则备份在文件或文件组备份中所有数据库的变化将无法恢复; 实现数据库恢复所需的系统功能
日志程序
建立系统日志(Log file),登记系统运行过程中的重要信息和历史记录
主要包括如下信息
对数据库操作的应用程序、事务、用户和客户机标识
程序和事务进入的时间和装入的数据
向数据库发出的操作要求
操作引起的数据库改变情况,如改变的地址、数据改变前的状态、改变后的状态
拷贝功能
系统需具有周期性或非周期性转储和更新数据的功能,数据可以使用磁盘或磁带介质联机或脱机保存
回滚程序
系统能够在事务回滚时消除该事务在数据库中留下的影响,释放其占有的资源;建立检查点
系统重启时,要将发生故障时正在运行的事务回滚,为避免从头搜索整个日志以找出要回滚的事务十分耗费时间的问题,可按预定的时间建立检查点
在检查点时刻要完成的操作有
把日志缓冲区中的内容强制写入日志,即将仍在内存中的任何运行记录强行写入实际的运行日志中
在运行日志中强行写入一个检查点记录,这个记录包括
在这一时刻正在运行的所有事务的登记表
这些事务的最近运行记录在运行日志中的地址
把数据库缓冲区中的内容强行写入数据库
把检查点记录在运行日志中的地址写入启动文件;恢复管理程序
系统或数据库故障迫使系统停止运转时,恢复管理程序重新启动程序
并从启动文件中得到检查点在日志中的
显示全部