大规模数据更新期间的Sql完全到简单恢复模式



我有一个50 Gb的数据库,其中一个表占用了43 Gb,其中充满了坏数据(超过90%),我计划清理它。数据库处于完全恢复模式。

我的计划是:0-出于安全考虑进行备份1-将数据库置于简单恢复模式2-从该表中删除90%的坏数据(使用批处理,这样日志文件就不会增长)3-将数据文件缩小到可接受的大小,这样未来1-2年的估计数据不会导致任何文件增长(ofc i需要重建所有索引)3-将数据库放回完全恢复模式4-对数据库进行完整备份,因此日志备份链从上的这一点恢复

现在,我的问题有点奇怪,但是,我做错了什么吗?尤其是通过将数据库从full->simple切换到simple->full?我在这个计划中遗漏了什么重要的东西吗?这是解决我问题的最佳方法吗?

我希望我提供了所有需要的细节,我的问题不要太含糊。谢谢

你的计划很好。在您的场景中,在恢复模式之间切换没有风险。上次备份后,您的数据库将处于完全模式。

只有一点需要注意,如果您只需要10%的数据,那么创建新数据库(大小合适)、复制有效数据、重命名或删除旧数据库、重命名新数据库以替换旧数据库都不会更快。答案取决于数据库的复杂性、环境工作负载等。但它可以为您节省大量时间进行批量删除、重建表以消除碎片和数据库收缩。因此值得考虑。

不,你没有。更改为简单模式将停止事务日志记录并释放日志文件中的空间。将其更改回将再次启动日志记录。如果您进行备份,则过程中没有风险。你计划做的还可以。

最新更新