好的,首先,我在创建数据库时搞砸了,使用一个大致类似的创建脚本:

CREATE DATABASE [EXAMPLE] ON  PRIMARY 
( NAME = N'EXAMPLE_Data', FILENAME = N'J:\SQLServer2008\MSSQL.INSTANCE\EXAMPLE.mdf', 
    SIZE = 446046KB , MAXSIZE = UNLIMITED, FILEGROWTH = 10%)
 LOG ON 
( NAME = N'EXAMPLE_Log', FILENAME = N'J:\SQLServer2008\MSSQL.INSTANCE\EXAMPLE.ldf', 
    SIZE = 664505KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
GO

因为我从现有的开发数据库中将其脚本拼写出来,所以我只是想了解一些事情。当我没有将尺寸更改为合理的东西时,我搞砸了(例如 4096KB)因此,现在我无法将日志文件缩小到大约600MB以下。

我知道我在哪里出错,但是如何轻松修复它?

有帮助吗?

解决方案

  1. 分离数据库。

    sp_detach_db @dbname = 'EXAMPLE'

  2. 物理从磁盘中删除日志文件(这是 至关重要的, ,但可能会冒险 - 请参阅 Mrdenny下面的评论)。

  3. 使用该数据库使用 sp_attach_single_file_db 存储过程。

    sp_attach_single_file_db @dbname = 'EXAMPLE', @physname = N'J:\SQLServer2008\MSSQL.INSTANCE\EXAMPLE.mdf'

其他提示

希望您有足够的特权访问SSM。如果您这样做,请按照以下步骤

  1. 打开SSM
  2. 连接到您SQL Server Instacne
  3. 打开对象资源管理器,右键单击数据库(您要缩小日志文件最小大小),然后选择“属性”
  4. 从“属性”窗口 - 选择“文件”
  5. 您将在右下看到数据库文件网格
  6. 单击添加以添加新日志文件,给予
    • 逻辑名称
    • 文件类型=日志
    • 初始尺寸= 1 MB(或您的偏好)
    • CICK自体并相应地设置偏好
    • 文件名
  7. 现在单击现有的日志行,然后选择“删除”
  8. 而已!现在,您拥有带有所需的最小尺寸的新日志文件。

alt text

许可以下: CC-BY-SA归因
不隶属于 dba.stackexchange
scroll top