如何在sql2000中将多个日志文件合并为一个ldf文件

如何在sql2000中将多个日志文件合并为一个ldf文件

我正在使用 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 管理员)。

相关内容