[MSSQL]SQL Server 2008 R2 收缩日志文件

前言

随着数据库的使用,日志文件越来越大,有时候就需要收缩一下没用的日志文件占用的空间。

由于SQL2008对文件和日志管理进行了优化,所以以下语句在SQL2005中可以运行但在SQL2008中已经被取消:

--(SQL2005)
BackupLog DNName with no_log
go
dumptransaction DNName with no_log
go
USE DNName
DBCC SHRINKFILE (2)
Go

方法一:命令模式

在SQL2008中清除日志就必须在简单模式下进行,等清除动作完毕再调回到完全模式。

--1步骤执行
USE [master]
GO
ALTER DATABASE DataBaseName SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE DataBaseName SET RECOVERY SIMPLE --简单模式
GO
--2步骤执行
USE [DataBaseName]
GO
DBCC SHRINKFILE (N'DataBaseName_Log' , 9, TRUNCATEONLY)
GO
--3步骤执行
USE [master]
GO
ALTER DATABASE DataBaseName SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE DataBaseName SET RECOVERY FULL --还原为完全模式
GO

下边SQL命令也可实现效果,具体和上边的SQL有什么区别,我还不太懂,有知道的可以评论留言,求指教

USE DataBaseName;
GO
-- 通过将数据库恢复模型更改为SIMPLE来截断日志。
ALTER DATABASE DataBaseName
SET RECOVERY SIMPLE;
GO
-- 将截断的日志文件缩小到1 MB。
DBCC SHRINKFILE (DataBaseName_Log, 1);
GO
-- 重置数据库恢复模型。
ALTER DATABASE DataBaseName
SET RECOVERY FULL;
GO

若提示:
在这里插入图片描述
则检查数据库实际的日志文件名称:

sp_helpdb DataBaseName

在这里插入图片描述

方法二:部分命令模式 + 任务->收缩->文件(单个数据库)

--先执行此SQL,将数据改成简单模式
ALTER DATABASE DataBaseName SET RECOVERY SIMPLE --简单模式
GO

右键要收缩的数据库,任务->收缩->文件->确定(界面直接确定就可以)
在这里插入图片描述
在这里插入图片描述

操作完成后,数据库的日志只保留了1M。

-- 之后要执行此SQL
ALTER DATABASE DataBaseName SET RECOVERY FULL --还原为完全模式
GO
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: 附加数据库是指将一个已经存在的数据库文件(.mdf和.ldf文件)添加到SQL Server实例中,使其成为可用的数据库。在SQL Server 2008 R2中,可以通过以下步骤来附加数据库: 1. 打开SQL Server Management Studio,连接到SQL Server实例。 2. 在“对象资源管理器”中,右键单击“数据库”,选择“附加”。 3. 在“附加数据库”对话框中,点击“添加”按钮,选择要附加的数据库文件(.mdf和.ldf文件)。 4. 确认数据库文件路径和名称,可以选择更改数据库名称和文件路径。 5. 点击“确定”按钮,等待附加完成。 6. 附加完成后,在“对象资源管理器”中可以看到新附加的数据库。 ### 回答2: SQL Server 2008 R2的附加数据库是指将一个已经存在的数据库文件添加到SQL Server实例中,使其成为该实例的一个数据库。该过程可以在SQL Server Management Studio中完成,也可以使用T-SQL语句进行操作。 在附加数据库之前,需要注意以下几点: 1. 确保附加的数据库文件是从同一个SQL Server版本中导出的,否则可能会出现版本不兼容的问题。 2. 确保要附加的数据库文件SQL Server实例的权限相匹配。例如,如果附加的数据库文件是从另一个实例中导出的,那么可能需要在目标实例中创建一个与该导出实例相同的登录账户。 3. 确保目标实例的磁盘空间足够,以容纳附加的数据库文件和其日志文件。 完成上述准备工作后,可以开始附加数据库的操作。具体步骤如下: 1. 打开SQL Server Management Studio,连接到目标实例。 2. 在“对象资源管理器”中选择“数据库”,右键单击空白区域,选择“附加”。 3. 在“附加数据库”对话框中选择“添加”按钮,浏览并选择要附加的数据库文件。 4. 输入要给附加数据库取的名称以及数据文件日志文件的路径。如果数据文件日志文件的路径与导出时不同,需要修改路径。 5. 点击“确定”按钮,系统将会检查附加的数据库文件是否有效,如果没有错误提示,就会自动附加该数据库到目标实例。 完成上述步骤后,就可以在目标实例中使用刚加入的数据库了,可以对其进行备份、还原和维护等操作。值得注意的是,附加数据库只会将该数据库文件复制到目标实例中,不会自动在系统中创建与之匹配的登录账户,需要在后续的操作中进行设置。同时,附加数据库并不会删除导出时在源实例中的数据库,需要手动进行删除。 ### 回答3: SQL Server是一款基于关系型数据库管理系统的软件,它可以让用户创建、操作、管理和维护数据库。当需要创建新的数据库时,可以使用SQL Server的附加数据库功能。 SQL Server附加数据库是一种将已有的数据库文件添加到SQL Server实例中并让其成为可用数据库的过程。通常,数据库文件包括MDF(主数据文件)和LDF(事务日志文件)两种类型。通过附加数据库的功能,可以将这些文件添加到SQL Server实例中,并且可以使用SQL Server Management Studio (SSMS)等工具来访问和管理这些数据库。 要附加一个数据库,首先需要在SQL Server Management Studio中连接到SQL Server实例。连接成功后,在对象资源管理器中右键单击“数据库”节点,然后选择“附加”选项。在弹出的对话框中,需要选择要附加的数据库文件,并确定要使用的数据库名称和文件路径。如果要更新数据文件版本号,则需要勾选“更新版本”选项。附加完成后,可以在对象资源管理器中看到新的数据库并对其进行操作和管理。 除了SQL Server Management Studio之外,还可以使用T-SQL命令来附加数据库。具体步骤是使用USE语句指定要附加的数据库名称,然后使用ALTER DATABASE语句来指定MDF和LDF文件的路径。例如: USE master; GO ALTER DATABASE AdventureWorks2012 SET SINGLE_USER WITH ROLLBACK IMMEDIATE; GO EXEC sp_attach_db @dbname = N'AdventureWorks2012', @filename1 = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.INSTANCE1\MSSQL\DATA\AdventureWorks2012_Data.mdf', @filename2 = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.INSTANCE1\MSSQL\DATA\AdventureWorks2012_Log.ldf'; GO 总之,SQL Server附加数据库功能让用户可以方便地将已有的数据库文件添加到SQL Server实例中,以便使用和管理。无论是使用SQL Server Management Studio还是T-SQL命令,都可以完成该过程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

马全鑫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值