SQL Server 2008 收缩清空大日志文件方法总结
2015-07-05 15:56
375 查看
本文章来给大家总结一下关于SQL Server 2008 收缩清空大日志文件方,有需要了解SQL2000和2005中清空大日志文件的同学可进入参考参考。
由于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的日志在分钟左右即可清除完毕,做完之后做个完全备份在分钟内
即可完成。
由于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的日志在分钟左右即可清除完毕,做完之后做个完全备份在分钟内
即可完成。
相关文章推荐
- SqlServer之基本增删改查(3)
- Redis数据持久化
- MongoDb gridfs-ngnix文件存储方案
- MSSQL - 存储过程事物
- Redis pipeline在java中的运用
- JDBC链接MySQL
- Access数据库导入Oracle总结
- sql优化
- Ubuntu链接XP32位虚拟机上的orace11g数据库
- sqlite3 数据库使用
- [转载] NoSQL简介
- mysql char,varchar与text的选择
- MongoDB架构——复制集
- oracle基本sql语句和函数详解
- 挖坑,把自己埋了两天(我与MySQL的抓狂事)
- MySQL学习笔记(三):order by排序问题
- ubuntu10.04下修改mysql的datadir的问题
- MySQL编程基础
- ubuntu下面mysql,通过载入txt文件初始化数据表
- 数据库水平切分实现原理(一)