如果我继承了当时已增长到 400GB 1 MB 块的数据库。脱机碎片整理是删除所有物理碎片的唯一方法。我遇到的另一个问题是数据和日志文件混合在一起并且位于错误的 RAID 驱动器上。
我可以通过备份数据库用 1 块石头杀死 2 只鸟,删除它并使用 WITH MOVE 恢复它以将文件放在正确的 RAID 驱动器上。这会消除物理碎片吗?
如果我继承了当时已增长到 400GB 1 MB 块的数据库。脱机碎片整理是删除所有物理碎片的唯一方法。我遇到的另一个问题是数据和日志文件混合在一起并且位于错误的 RAID 驱动器上。
我可以通过备份数据库用 1 块石头杀死 2 只鸟,删除它并使用 WITH MOVE 恢复它以将文件放在正确的 RAID 驱动器上。这会消除物理碎片吗?
不,备份/恢复将保留所有碎片。最好在新位置添加一个包含文件的文件组,并在新文件组上重新创建所有用户表(通过使用 DROP_EXISTING 重新创建索引,如果可能的话作为在线操作)。您将无法完全消除原始文件,但如果您移动了所有用户对象,则应该能够将主要数据文件缩小为仅系统对象。
如果您随后想要将主 MDF 文件和日志文件移动到新的 RAID 驱动器,您可以使用 ALTER DATABASE 执行此操作 - 使数据库脱机,更改单个文件位置,物理移动文件,然后使数据库再次联机.
是的,你的方法是一个很好的方法。
假设您的卷上有足够的连续可用空间,以便可以将 MDF 创建为一个文件。
此外,请确保首先重建所有索引,以便数据也能在逻辑上得到很好的组织。