哪位仁兄可告知如何清理SQL日志?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了哪位仁兄可告知如何清理SQL日志?相关的知识,希望对你有一定的参考价值。
建议更改数据库的事务日志,限制文件增长的最大值和定期备份日志和数据。在以下处理之前,最好整体备份整个数据库:1:由小的事务引起日志溢出,系统能正常启动。
解决办法:
扩大数据库日志空间:
alter database 数据库名 on 设备名=数量(M为单位)
sp_logdevice 数据库名,设备名
清除日志
dump transaction 数据库名 with no_log(no_truncate)
2:由大的事物引起日志溢出,系统较长时间内无法正常启动或数据库无法恢复
解决办法:
强行清空日志。
在实在无法恢复数据库或有近期备份的情况下,可采用强行清空日志的方法。采取这种方法的后果有可能彻底破坏数据库。执行步骤如下:
Ⅰ 以-v 方式启动SQL SERVER(不检测日志)
Ⅱ 修改数据库状态为-32768(阻塞状态)
update sysdatabases set status=-32768 where name=数据库名
Ⅲ 授权sybase_ts_role权限(sybase_ts_role为SQL SERVER特殊管理员权限,在日常的数据库管理中,不需要这个角色)
sp_role “grant”,”sybase_ts_role”,sa
set role “sybase_ts_role”
Ⅳ 清除日志
dbcc rebuild_log(数据库名,1,1)
完成以上步骤后,重新启动SQL SERVER即可。如果数据库能正常启动,数据库就恢复完成;如果无法启动,只能重新创建数据库。
(另外,,,,,系统重安再重新安SQL就成功了!你就试一试重安系统吧!那来的还要快些。) 参考技术A 先打开查询分析器,然后输入下面语句执行
清空日志
DUMP TRANSACTION 数据库名 WITH NO_LOG
截断事务日志
BACKUP LOG 数据库名 WITH NO_LOG
收缩数据库
DBCC SHRINKDATABASE(数据库名)
SQLServer2008 清理日志文件
sql 在使用中每次查询都会生成日志,但是如果你长久不去清理,可能整个硬盘都堆满哦,我就遇到这样的情况。下面我们一起来学习一下如何清理这个日志吧
SQL2008清空删除日志:
--注:DBNAME就是你要清理的数据库名称
USE [master] GO ALTER DATABASE DBNAME SET RECOVERY SIMPLE WITH NO_WAIT GO ALTER DATABASE DBNAME SET RECOVERY SIMPLE --简单模式 GO USE DBNAME GO DBCC SHRINKFILE (N‘DBNAME_log‘ , 11, TRUNCATEONLY) GO --如果不知道日志文件在sys.database_files里是什么名字的话,可以用以下注释的语句进行查询 --USE DBNAME --GO --SELECT file_id, name FROM sys.database_files; USE [master] GO ALTER DATABASE DBNAME SET RECOVERY FULL WITH NO_WAIT GO ALTER DATABASE DBNAME SET RECOVERY FULL --还原为完全模式 GO
以上是关于哪位仁兄可告知如何清理SQL日志?的主要内容,如果未能解决你的问题,请参考以下文章