您的位置:首页 > 数据库

SQL SERVER 2000 日志文件清理

2011-07-17 16:48 204 查看
查看方式
执行SQL语句:
DBCC log ( {dbiddbname}, [, type={01234}] )
参数:Dbid or dbname - 任一数据库的ID或名字,一般都是用数据库名字了,比如master
type - 输出结果的类型:
0 - 最少信息(operation, context, transaction id)
1 - 更多信息(plus flags, tags, row length)
2 - 非常详细的信息(plus object name, index name,page id, slot id)
3 - 每种操作的全部信息
4 - 每种操作的全部信息加上该事务的16进制信息
默认 type = 0
例如,要查看MSATER数据库的事务日志可以用以下命令:
dbcc log (master)
详细一点的话,就是
dbcc log (master,type=3)

SQL SERVER 2000 事务日志增加过快解决办法收藏
1.清空日志
DUMP TRANSACTION 库名 WITH NO_LOG

2.截断事务日志:
BACKUP LOG 数据库名 WITH NO_LOG

3.收缩数据库文件(如果不压缩,数据库的文件不会减小
企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件
--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了

也可以用SQL语句来完成
--收缩数据库
DBCC SHRINKDATABASE(客户资料)

--收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfiles
DBCC SHRINKFILE(1)

4.为了最大化的缩小日志文件
a.分离数据库:
企业管理器--服务器--数据库--右键--分离数据库

b.在我的电脑中删除LOG文件

c.附加数据库:
企业管理器--服务器--数据库--右键--附加数据库

此法将生成新的LOG,大小只有500多K

或用代码:
下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。

a.分离
EXEC sp_detach_db @dbname = 'pubs'

b.删除日志文件

c.再附加
EXEC sp_attach_single_file_db @dbname = 'pubs',
@physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf'

5.为了以后能自动收缩,做如下设置:
企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩"

--SQL语句设置方式:
EXEC sp_dboption '数据库名', 'autoshrink', 'TRUE'

6.如果想以后不让它日志增长得太大
企业管理器--服务器--右键数据库--属性--事务日志
--将文件增长限制为xM(x是你允许的最大数据文件大小)

7. 定期清空日志

企业管理器--服务器--管理--右键数据库维护计划--新建数据库维护计划--打开数据库维护计划向导-选择你要维护的数据库
----下一步--从数据库文件中删除未使用的空间(根据你数据的大小、使用情况配置合适的参数,或默认)-下一步 ,然后就可以调度你的计划,可以让他每个星期日的凌晨12点开始维护。
SQL脚本如下:declare @dbname varchar(255)
select @dbname='master' --指定要处理的数据库
EXEC ('execute sp_helpdb ' + @dbname)
EXEC ('BACKUP LOG ' + @dbname + ' WITH TRUNCATE_ONLY')
EXEC ('DBCC SHRINKDATABASE(' + @dbname +',10)')
EXEC ('EXECUTE sp_helpdb ' + @dbname)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: