sqlserver 恢复模式及避免日志爆满的方法

sqlserver 恢复模式及避免日志爆满的方法,第1张

概述recovery simple 循环日志,空间自动回收,不可备份日志,恢复时仅能恢复到数据库备份时间点; 用于落地数据或测试环境或OLAP,不推荐用于生产OLTP 有时候distribution过大也可置为simple recovery bulk_logged 常规 *** 作日志正常记录,特定 *** 作时仅记录少量日志; 恢复时特定 *** 作将做回滚处理,其他 *** 作正常恢复到当前 特定 *** 作: 1、select * i recovery simple 循环日志,空间自动回收,不可备份日志,恢复时仅能恢复到数据库备份时间点; 用于落地数据或测试环境或olAP,不推荐用于生产olTP 有时候distribution过大也可置为simple
recovery bulk_logged 常规 *** 作日志正常记录,特定 *** 作时仅记录少量日志; 恢复时特定 *** 作将做回滚处理,其他 *** 作正常恢复到当前 特定 *** 作: 1、select * into test2 from test1 where 1=1 2、DTS数据导入 3、bulk into 注意:特定 *** 作不等于大数据 *** 作,例如: insert into test2 select * from test1 delete  from test2 where ID<100000 将会记录全部日志  优化表复制 --1、改为bulk_logged恢复模式 -- *** 作前日志使用率 dbcc sqlperf(logspace) alter database testdb set recovery bulk_logged --2、推荐将sql1替换sql2 sql1:select * into test2 from test1 where 1=1  sql2:insert into test2 select * from test1
- - *** 作后日志使用率,发现变化不大 dbcc sqlperf(logspace) --3、重建索引 create index on test2 --4、重新改为full恢复模式 alter database testdb set recovery full 即优化了日志空间和插入速度,又优化了索引(大量数据插入,会引起大量索引碎片) full recovery <--> BulK_LOGGED recovery 切换时不会造成日志链断裂,所以也不用担心日志不能备份 转自: http://www.db2china.net/home/space.php?uid=34945&do=blog&id=27521 recovery full 通过事务日志将数据库还原到任意的时刻点, full模式下的空间优化: 一、事务内进行大批量的数据删除、更新 *** 作,引起的日志爆满 1.多次少量原则,每次写入一定量的日志 2.手工触发checkpoint,每次发生checkpoint时会自动截断事务日志 二、复制时引起的日志爆满 复制可以在simple恢复模式下进行 三、完整恢复模式下引起的日志爆满 1.配合备份策略,进行日志归档 2.定期删除历史日志归档文件 四、执行备份的时候,可以截断部分事务日志 五、大批量数据导入的时引起的日志爆满 将恢复模式暂时改为BulK_LOGGED(仅记录回滚所需日志,不记录插入日志),完成后及时改为full 六、使用警报,可以实现日志使用率超过一定量自动归档 七、查看日志空间使用率dbcc sqlperf(logspace) 各模式间切换时注意点 1、SIMPLE->FulL 完成切换后,需要立刻进行差异备份,恢复日志链 2、FulL->SIMPLE 先进行日志备份,因为切换会中断日志链 3、BulK_LOGGED<->full 自由切换 4、simple<->BulK_LOGGED 不常见 总结

以上是内存溢出为你收集整理的sqlserver 恢复模式及避免日志爆满的方法全部内容,希望文章能够帮你解决sqlserver 恢复模式及避免日志爆满的方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/1171089.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存