Sql 海量数据更新时Full to Simple恢复模式?

Sql Full to Simple recovery mode during massive data update?

我有一个 50Gb 的数据库,其中一个 table 占用了 43GB,里面全是坏数据(超过 90%),我打算清理它。数据库处于完全恢复模式。

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

现在,我的问题有点奇怪,但是,我做错了什么吗?特别是通过从 full -> simple,然后 simple -> full 切换数据库?我是否遗漏了这个计划中的任何重要内容?这是解决我的问题的最佳方法吗?

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

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

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

不,你不知道。 更改为简单模式会停止事务日志记录并释放日志文件中的 space。将其改回将再次开始记录。如果您进行备份,则在此过程中没有风险。你打算做的没问题。