SQL server数据库日志满了怎么处理?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL server数据库日志满了怎么处理?相关的知识,希望对你有一定的参考价值。

参考技术A 解决方法
日志文件满而造成SQL数据库无法写入文件时,可用两种方法:
一种方法:清空日志。
1.打开查询分析器,输入命令
DUMP
TRANSACTION
数据库名
WITH
NO_LOG
2.再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。
另一种方法有一定的风险性,因为SQL
SERVER的日志文件不是即时写入数据库主文件的,如处理不当,会造成数据的损失。
1:
删除LOG
分离数据库
企业管理器->服务器->数据库->右键->分离数据库
2:删除LOG文件
附加数据库
企业管理器->服务器->数据库->右键->附加数据库
此法生成新的LOG,大小只有500多K。
注意:建议使用第一种方法。
如果以后,不想要它变大。
SQL2000下使用:
在数据库上点右键->属性->选项->故障恢复-模型-选择-简单模型。
或用SQL语句:
alter
database
数据库名
set
recovery
simple
另外,如上图中数据库属性有两个选项,与事务日志的增长有关:
Truncate
log
on
checkpoint
(此选项用于SQL7.0,SQL
2000中即故障恢复模型选择为简单模型)
当执行CHECKPOINT
命令时如果事务日志文件超过其大小的70%
则将其内容清除在开发数据库时时常将此选项设置为True
Auto
shrink
定期对数据库进行检查当数据库文件或日志文件的未用空间超过其大小的25%时,系统将会自动缩减文件使其未用空间等于25%
当文件大小没有超过其建立时的初始大小时不会缩减文件缩减后的文件也必须大于或等于其初始大小对事务日志文件的缩减只有在对其作备份时或将Truncate
log
on
checkpoint
选项设为True
时才能进行。
注意:一般立成建立的数据库默认属性已设好,但碰到意外情况使数据库属性被更改,请用户清空日志后,检查数据库的以上属性,以防事务日志再次充满。

sql server 2008怎么清空日志

SQL Server 2008清空删除日志文件方法:在SQL2008中清除日志就必须在简单模式下进行,等清除动作完毕再调回到完全模式。打个SQL查询分析器,在里面输入如下命令后执行即可:USE [master]GOALTER DATABASE DNName SET RECOVERY SIMPLE WITH NO_WAITGOALTER DATABASE DNName SET RECOVERY SIMPLE --简单模式GOUSE DNNameGODBCC SHRINKFILE (N'DNName_Log' , 11, TRUNCATEONLY)GO '这里的DNName_Log 如果不知道在sys.database_files里是什么名字的话,可以用以下注释的语句进行查询'USE DNName'GO'SELECT file_id, nameFROM sys.database_files;'GOUSE [master]GOALTER DATABASE DNName SET RECOVERY FULL WITH NO_WAITGOALTER DATABASE DNName SET RECOVERY FULL --还原为完全模式GO 参考技术A

有一个简单的语句你可以尝试下:

DUMP TRANSACTION 数据库名称 WITH NO_LOG
 BACKUP LOG 数据库名称 WITH NO_LOG
 DBCC SHRINKDATABASE(数据库名称)
 EXEC sp_dboption '数据库名称', 'autoshrink', 'TRUE'

以上是关于SQL server数据库日志满了怎么处理?的主要内容,如果未能解决你的问题,请参考以下文章

SQL server数据库日志满了怎么处理?

SQL Server日志文件总结及日志满的处理

sqlserver 2012日志满了导致数据库挂起恢复,如何解决

SQL Server 快速清除日志文件的方法

sql2005查询为何提示满,收缩数据库和文件不管用

SQL SERVER日志限制增长