我心不在焉地让 Windows Server 2003 压缩硬盘以尝试节省一些空间。同一驱动器包含 SQL Server 2008 的一个实例。自压缩以来,所有数据库都已脱机。
我已使用“compact”命令行工具手动扩展了 SQL Server 目录中的文件。但它们在 Sql Management Studio 中仍未上线。
我需要做什么才能让它们重新上线?
答案1
将 .mdf 和 .ndf 文件复制到非压缩磁盘,然后将其重新附加为不同的数据库名称。
EXEC sp_attach_db @dbname = 'WHATEVERNAME', @filename1 = 'E:\PRODATA1\data1.mdf', @filename2 = 'E:\PRODATA2\data2.ndf', @filename3 = 'E:\PRODATA3\data3.ndf', @filename4 = 'E:\PROLOG1\log.ldf'
SQL Server 2008 有自己的内置数据压缩系统。查看这篇文章:http://blogs.msdn.com/b/sanchan/archive/2006/06/04/617585.aspx
答案2
事实证明,修复起来非常简单。
当我最初运行 compact /U 时,我没有注意到它在访问正在使用的文件时失败。所以我只是停止了 SQL 服务器实例。在 SQL 服务器的数据目录中重新运行“compact /U”。然后重新启动 SQL 服务。现在一切都很好。