重新分配/更改主日志文件 – SQL 2000

我有一个大的分贝(称为Navision4),目前有2个日志文件

Navision4_Log Navision4_Log3

有一个日志叫Navision4_Log2,但我设法删除这个。

Navision4_Log位于C:\驱动器上 – 不被使用。 Navision4_Log3位于G:\驱动器上 – 但是非常庞大 – 这似乎是写入所有事务的地方。

但是,我想删除一个,只留下一个日志文件。

我应该怎么做? 我试图删除Navision4_Log – 但得到:

错误5020:主数据或日志文件不能从数据库中删除

你的数据库使用什么恢复模式? 你正在定期进行日志备份吗? 如果你在完全恢复和不采取日志备份,那么这可能解释为什么Navision4_Log3是如此之大。 您应该通过采取日志备份或切换到简单恢复来解决此问题。

我将Navision4_Log移动到G驱动器,而不是尝试删除它。 我的猜测是Navision4_Log3存在,因为服务器C上的空间不足:pipe理员不知道如何移动它。

将日志文件移动到G:使用以下命令:

ALTER DATABASE Navision4 SET OFFLINE;
– 将日志文件移动到G:
ALTER DATABASE Navision4
修改文件(
NAME = 'Navision4_Log',
FILENAME = 'G:\ MSSQL \ TLOG \ Navision4_Log.ldf');
ALTER DATABASE Navision4 SET ONLINE;
**编辑:** SQL Server 2000不支持这些选项,所以你将不得不使用sp_detachdb&sp_attachdb,你也可以在企业pipe理器GUI中分离和附加。 只要确保你附加数据库并指定所有者为sa。

那么如果你愿意,你可以删除Navision4_Log3。 你需要做什么(如果你的完全恢复)是做一个日志备份,然后使用DBCC SHRINKFILE('Navision4_Log3', EMPTYFILE)缩小日志你可能需要做几个备份和做几个收缩之前,文件将清空出来,那么你应该能够删除它。

由于它是一个复制的数据库,所以在分离之前必须删除复制。 SQL Server 2000将不允许您分离复制的数据库。

之后尼克是正确的,分离数据库,并重新附加只有唯一的文件,你想在G上使用: