我正在使用 DETACH 将数据库从 SQL 2000 复制到另一台服务器上的 2008 实例,将 windows 文件复制到 2008 服务器,最后使用 ATTACH。我来到一个数据库,其中 LOG 文件位于 2 个 windows 文件中:
name fileid filename size maxsize growth usage
MasterScratchPad_Data 1 C:\SQLDATA\MasterScratchPad_Data.MDF 6041600 KB Unlimited 5120000 KB data only
MasterScratchPad_Log 2 C:\SQLDATA\MasterScratchPad_Log.LDF 2111304 KB Unlimited 10% log only
MasterScratchPad_X1_Log 3 E:\SQLDATA\MasterScratchPad_X1_Log.LDF 191944 KB Unlimited 10% log only
我希望日志只有一个文件(即我可以使其更大并调整增长参数,但在将数据库升级到 SQL2008 之前我更希望它只有一个文件)。
我已经备份了数据库。我已发出:BACKUP LOG MasterScratchPad WITH TRUNCATE_ONLY。我对两个 LOG 文件都运行了多个 DBCC SHRINKFILE 命令。最近一次尝试是 DBCC SHRINKFILE(MasterScratchPad_X1_Log, 0),但结果如上。
我怎样才能实现只有一个 .LDF 的目标?我找不到任何关于如何删除 fileid 为 3 的文件和/或如何将多个文件合并到一个日志文件的信息。
答案1
这相当简单...下面是您的脚本。如果您还需要其他任何东西,请告诉我。
谢谢!
—虚拟机
使用[MasterScratchPad]
去
修改数据库 [MasterScratchPad] 删除文件 [MasterScratchPad_X1_Log]
去
答案2
话虽如此,但要小心谨慎。单文件(数据库、日志)数据库比多文件数据库慢 - 有充分的理由让每个数据库有 X 个文件,其中 X 是核心数。微软对此都有很好的记录 - 但似乎很多人不喜欢阅读(我很少看到在这些方面和其他方面称职的 SQL 管理员)。