SQL Server 2008 收缩清空大日志文件方法总结

由于SQL2008对文件和日志管理进行了优化,所以在SQL2000和2005中可以运行的如下命令,但在SQL2008中不支持no_log清空日志。

1.清空日志

 代码如下 复制代码

DUMP TRANSACTION 库名 WITH NO_LOG

2.截断事务日志:

 代码如下 复制代码

BACKUP LOG 库名 WITH NO_LOG

SQL 2008收缩清空日志方法:

1.在SQL2008中清除日志就必须在简单模式下进行,等清除动作完毕再调回到完整模式,一定必务要再改回完整模式,不然数据库就不支持时间点备份了。
1).选择数据库–属性—选项—恢复模式–选择简单。
2).收缩数据库后,再调回完整。
2.可以用命令直接操作

清空日志

 代码如下 复制代码

-- set the database SIMPLE model.
ALTER DATABASE 数据库库名称 SET RECOVERY SIMPLE; GO
--Shrink the truncated log file to 2M
DBCC SHRINKFILE (日志名称, 2); GO -- Reset the database recovery model. ALTER DATABASE 库名称 SET RECOVERY FULL; GO

在当前数据库下:

select fileid,groupid,name from sysfiles where groupid=0

得到以下结果:
fileid     groupid name
2          0                test123_log

其中fileid为日志文件ID,name为日记名称test123_log

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

方案一:完全命令模式

 代码如下 复制代码

USE[master]
    GO
    ALTERDATABASE DNName SET RECOVERY SIMPLE WITH NO_WAIT
    GO
    ALTERDATABASE DNName SET RECOVERY SIMPLE   --简单模式
    GO
    USE DNName
    GO
    DBCC SHRINKFILE (N'DNName_Log' , 11, TRUNCATEONLY)
    GO
    USE[master]
    GO

    ALTERDATABASE DNName SET RECOVERY FULLWITH NO_WAIT

    GO

    ALTERDATABASE DNName SET RECOVERY FULL  --还原为完全模式

    GO

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

 代码如下 复制代码

ALTERDATABASE DNName SET RECOVERY SIMPLE   --简单模式
GO

右键-任务-收缩-文件-确定 下来数据库的日志只保留了1M

ALTERDATABASE DNName SET RECOVERY FULL  --还原为完全模式

GO
优点:此清除日志所运行消耗的时间短,90GB的日志在分钟左右即可清除完毕,做完之后做个完全备份在分钟内
即可完成。

时间: 2024-10-30 06:43:20

SQL Server 2008 收缩清空大日志文件方法总结的相关文章

SQL Server 2008 R2 清空数据库中ldf日志文件

/************************************************************  * Sql Server 2008 R2 清空数据库中ldf日志文件  * 将Whir_InternalSystem替换为您要操作的数据库即可  ************************************************************/ USE [master] ALTER DATABASE [Whir_InternalSystem]  S

SQL Server 2008 R2登录失败的解决方法

为大家分享SQL Server 2008 R2登录失败的解决方法 1.启动SQL Server 2008 Management Studio,会看到 2.里面有一个 身份验证.这个 身份验证 的下拉列表里面有两个选项: Windows 身份验证 和 SQL Server 身份验证. 它们有什么区别: Windows 身份验证是指:你可以使用你电脑Windows系统的用户名和密码进行登入.如果你的电脑没有设置密码,那么就不需要输入用户名和密码,直接点击连接就可以登入. 我们一般使用第二种身份验证:

SQL SERVER 2008 无法附加数据库的解决方法_mssql2008

复制代码 代码如下: 标题: Microsoft SQL Server Management Studio ------------------------------ 无法为该请求检索数据. (Microsoft.SqlServer.Management.Sdk.Sfc) 有关帮助信息,请单击: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&LinkId=20476 --------------------------

SQL Server 2008批量删除及插入的方法

目前的批量删除和批量更新,很是烦人,解决方案无非三种: XML,SQL自定义函数split,和CLR实现split.这几种都比较烦人,代码很多,维护麻烦,很不爽. 现在SQL Server 2008新增的一个功能,我也不知道中文名怎么翻译,暂且叫他表参数吧. 大家可以看看示例: 这个就是用户定义的表类型: 然后给他定义一个类型: Code -- ================================ -- Create User-defined Table Type -- ======

SQL SERVER中如何手动增长日志文件和数据文件

手动增长日志文件,实际上就是修改日志文件的大小  size 的单位是MB 下面设置日志文件大小是2048MB ALTERDATABASE[GPOSDB] MODIFY FILE(name=GPOSDB_Log,size=2048) EXEC sys.[sp_helpdb] @dbname = [GPOSDB] -- sysname --收缩日志文件 USE [GPOSDB] GO ALTER DATABASE [GPOSDB] SET RECOVERY SIMPLE; GO --设置简单恢复模式

Sql Server 2000 如何减小数据库日志文件.ldf的文件大小

-- 减小数据库日志文件LDF大小DECLARE @db NVARCHAR(20) SET @db = '数据库名' DUMP TRANSACTION @db with no_log BACKUP LOG @db with no_log DBCC SHRINKDATABASE(@db)前几天我的数据库SQL server 报日志满错误,于是变改了log.ldf的空间为20G,虽然不报错了,但占了硬盘很大空间啊,还要备份数据库呢.这样我就在网上搜索到上面脚本,在确定数据库目前运行稳定,不需要查询以

sql server 2008 忘记sa密码的解决方法_mssql2008

相信很多人都跟小编一样不管是什么账号,如果很久不用就会忘记登录密码,像数据库SQL Server2008也一样有用户名和登录密码,下面小编就分享一下如何找回或修改SQL Server2008密码 前提是你有服务器网络管理员管理权限 1.首先以超级管理员administrator账户登录到电脑,然后打开据库SQL Server2008至登录界面,然后选择windows身份验证(注意:必须是超级管理员账户哦,否则是无法使用windows身份验证登录的) 2.登录进去后找到安全性菜单,然后在登录名中找

jsp 连接sql server 2008 连接不上的解决方法_JSP编程

1.首先是如果你遇到javax.servlet.ServletException: java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver这个错误, 那么估计你应该把Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); 改成Class.forName("com.microsoft.sqlserver.jd

sql server 2008 R2删除重复数据的方法

推荐方法3 --方法1: SELECT  * FROM    ( SELECT    Row_Number() OVER ( PARTITION BY [orderno] ORDER BY ( SELECT                                                              0                                                              ) ) AS RowNO ,