深入理解 SQL Server 2012 数据库恢复与备份策略
1. 数据库恢复机制
当 SQL Server 实例启动时,它会对每个数据库进行恢复操作。具体来说,会回滚未提交的事务,并前滚那些已提交但在服务器实例停止时尚未写入磁盘的事务。服务器实例的恢复间隔为每个数据库的恢复时间设定了上限。
SQL Server 通过估算在恢复间隔内可以前滚的数据修改数量,来发出自动检查点,以满足预期的时间限制。因此,自动检查点的频率取决于未完成的写入数量以及是否存在不断增加的写入延迟。
你可以使用 sp_configure 的恢复间隔选项来管理恢复时间。恢复间隔的正常范围是 1 到 60 分钟,但你可以覆盖这个限制。默认情况下,恢复间隔设置为 0,这意味着 SQL Server 会自动配置该间隔。对于活跃的数据库,自动配置意味着恢复时间应少于 1 分钟,并且大约每分钟会发生一次检查点。
需要注意的是,在简单恢复模型下,当日志达到 70% 满时会发生自动检查点,这通常会导致日志被截断。而在完整和大容量日志恢复模型下,一旦建立了日志备份链,自动检查点不会导致日志被截断。
当你需要更精确地控制数据库的恢复时间时,可以设置目标恢复时间。使用 ALTER DATABASE 语句的 SET TARGET_RECOVERY_TIME 选项,以秒或分钟为单位进行配置。设置目标恢复时间后,SQL Server 会在后台发出间接检查点,以确保达到你设定的恢复窗口。对于活跃的数据库,间接检查点会在后台持续将脏页写入磁盘,这可以减少 I/O 峰值,但可能会增加服务器实例的总写入负载。 <
超级会员免费看
订阅专栏 解锁全文
1652

被折叠的 条评论
为什么被折叠?



