3 日志和恢复.ppt

3 日志和恢复

例如银行转账程序,从账户A转账100元至账户B: 两种类型的恢复 重启恢复:在SQL Server启动时都会进行,用于恢复SQL Server上次关闭或者服务异常停止时未完成的事务。SQL Server 2005中,重启恢复可以在多个数据库上并行进行,每个DB的恢复都有一个不同的线程来完成。 还原恢复(介质恢复):主要是执行SQL Server中的还原操作所进行的恢复,主要根据备份文件进行恢复,该过程保证所有事务日志备份中的已提交事务会在数据中得到反映,并且任何未完成的事务不会出现在事务中。 重做REDO与撤销UNDO 在日志中有记录为已提交的事务,但是该事务并没有写入数据文件? 在数据文件中已有更改,但是没有相对应的已提交事务? 重做:如果服务在事务提交时被停止,但是数据还未来得及写入磁盘,那么当SQL服务启动并运行恢复时,该事务必须前滚,所有需要重做的事务将会被优先处理。 撤销:如果一个检查点在事务提交前发生,它会把未提交的更改写入磁盘,如果服务随后在提交前被停止,恢复过程将会找出未提交事务对数据的改动,然后撤销反映在事务日志中的改动。 VLF的四种状态 活动:日志的活动部分以最小LSN为起点,代表一个活动(未提交)事务; 可恢复:最老的事务之前的日志部分的唯一作用是保持一系列的日志备份,以便能够还原数据库到先前某一状态; 可复用:如果事务日志备份没有得到保持,或者我们已经备份了日志,那么最老活动之前的VLF将不再有任何作用,并且可以被重新使用; 未用:从未使用过 数据库完整备份加日志备份策略 Sunday Monday Full Database Backup Full Database Backup Log Log Log Log Data Log Data Log 用不同的备份类型来恢复数据库 备份策略 对系统数据库定期备份数据库,对master数据库定期备份并保留多个备份集,以便在必要时返回几个不同版本的master。 针对用户数据库,根据数据库的情况,结合完整备份、差异备份和日志备份来备份数据库,备份的间隔根据用户恢复的要求来制定。 示例: 一周一次全备 一天一次差异备份 工作时间:早9:00—晚6:00, 每小时备份一次日志 用不同的备份类型来恢复数据库 完全备份类型恢复 差异备份类型恢复 事务日志备份恢复 由文件或文件组备份恢复 完全备份类型恢复 什么情况下使用 物理磁盘损坏 整个数据库损坏, 崩溃,被删除 保持一个同样的数据库副本到另一SQL Server 设定恢复选项 RECOVERY:使用最后一次的备份来恢复,允许访问数据库 NORECOVERY :不使用最后一次而用前面所有备份中某一次来恢复,阻止访问数据库 RESTORE DATABASE [TEST] FROM DISK = Nc:\DBBackup\wanquan.bak WITH FILE = 2, NOUNLOAD, REPLACE, STATS = 10 差异备份恢复 只恢复从上次完全备份后数据库变化过的部分 恢复数据库到执行差异备份时的某一精确状态 比使用一系列事务日志耗时少 使用NORECOVERY还原最后的完整备份,然后使用RECOVERY还原最后的差异备份 USE master RESTORE DATABASE Northwind FROM NwindBacDiff WITH NORECOVERY Specify the backup file that contains the differential backup 事务日志备份恢复 Restore Northwind Database Full Database Differential Log Log Data Log ? USE master RESTORE LOG Northwind FROM NwindBacLog WITH FILE = 2, RECOVERY ? Northwind Database Backups Full Database Differential Differential ? Database Damaged Log Data Log Log Log Log Log Log ? ? 时点恢复 ? Northwind Database Backups Full Database Differential Differential ? Database Damaged Log Data Log Log Log Log Log Log ? ? Restore Northwind Database Full Database Differential Data Log Log Log ? Log USE m

文档评论(0)

1亿VIP精品文档

相关文档