介绍
我读过很多关于从数据库中删除数据以及使用 shrink 命令的风险的文章。但是,我有机会将数据库迁移到一台停机时间较长的新服务器,因此我打算重置数据库并缩减其大小(以提高性能并节省托管环境中的成本)。
背景
- 现有的SQL Server是2016Web版。
- 新的 SQL Server 2022 标准版。
- 数据库大小~120GB。
- 一些大表以及这些大表上的索引构成了其中的大部分。
- 我只想专注于数据库大小的缩减。对于创建新服务器的其他部分,我感觉还算满意。
拟议流程
停电前
- 运行使用语法的存储过程
DELETE FROM
。我已经仔细测试过了。它们会批量删除,并且会在几天内运行。 - 监视日志文件和日志磁盘以仔细检查是否有足够的空间。
- 确保在到达停机时间时删除处理已经完成。
停电期间
- 对数据库进行完整备份并放在安全的地方。
- 删除最大的索引(我将针对大约 3 或 4 个)。
- 将数据库置于简单恢复模式。
- 尽可能缩小日志和数据库文件。
- 备份数据库。
- 将备份文件复制到新服务器。
- 将数据库还原到正确的文件位置
- 应用已删除的索引。
- 重建所有索引。
- 更新统计数据。
- 将数据库恢复到完整恢复模式。
- 测试和重启应用程序