如何清除SQL日志.docx
《如何清除SQL日志.docx》由会员分享,可在线阅读,更多相关《如何清除SQL日志.docx(16页珍藏版)》请在冰点文库上搜索。
如何清除SQL日志
如何清除SQL日志
删除MS SQL Server 2000日志
1.打开MS SQL Server 2000企业管理器
2.打开数据库,选中需要删除日期的数据库,点击“察看”,选择“任务板”:
3.鼠标右键点中需要删除日期的数据库,选择右键菜单“所有任务”-“备份数据库”:
4.选择“事务日志”:
5.点击“添加”,选择“文件名”:
6.选择备份目录,输入文件名,点击“确定”:
7.点击“确定”:
8.选择“重写现有媒体”,点击“确定”:
9.开始备份:
10.备份完成:
事务日志删除了一部分,如果还不够小,则再重复一次。
11.重新鼠标右键点中需要删除日志的数据库,选择右键菜单“所有任务”-“收缩数据库”:
12.点击“文件”:
13.选择日志“数据库文件”,在“收缩操作”中选择“从文件结尾截断可用空间”,点击“确定”:
14.日志收缩完毕:
关于SQL Server事务日志的问题汇总
1、用BACKUP LOG database WITH NO_LOG清除日志
把数据库属性中的故障还原模型改为“简单”可以大大减慢日志增长的速度。
如果把还原模型调到简单,这样就不支持时间点还原了,但是日志文件会很小,如果数据比较重要推荐还是把数据库的还原模型调为完全。
用BACKUP LOG database WITH NO_LOG命名后,会截断不活动日志,不减小物理日志文件的大小,但逻辑日志会减小,收缩数据库后会把不活动虚拟日志删除来释放空间,不会损坏数据。
如果日志被截断并收缩数据库后,就不能直接用最近的一个全库备份做时间点还原,建议立即备份数据库,以防万一。
2、sql server运行中,删除主数据库事务日志文件
步骤如下:
(1)、分离数据库:
企业管理器--数据库--右击你要删除日志的数据库--所有任务--分离数据库
(2)、然后删除日志文件
(3)、然后再附加数据库:
企业管理器--数据库--右击数据库--所有任务--附加数据库。
这时候只附加mdf就可以了。
3、压缩SQL数据库及日志的详细方法
数据库在使用一段时间后,时常会出现因数据删除而造成数据库中空闲空间太多的情况,这时就需要减少分配给数据库文件和事务日志文件的磁盘空间,以免浪费磁盘空间。
当数据库中没有数据时,可以修改数据库文件属性直接改变其占用空间,但当数据库中有数据时,这样做会破坏数据库中的数据,因此需要使用压缩的方式来缩减数据库空间。
可以在数据库属性选项中选择“Auto shrink”选项,让系统自动压缩数据库,也可以用人工的方法来压缩。
人工压缩数据库有以下两种方式:
1)、用Enterprise Manager 压缩数据库
在Enterprise Manager 中在所要压缩的数据库上单击右键,从快捷菜单中的“所有任务(All Tasks)”中选择“Shrink Database(压缩数据库)”选项,可以在对话框中选择数据库的压缩方式,也可以选择使用压缩计划或压缩单个文件。
单击“Files”按钮,会出现压缩数据库文件对话框,可以针对每个数据库文件进行不同的压缩设置。
单击“Change” 按钮,会出现压缩计划编辑对话框,可以指定压缩计划的执行方式。
单击“Change” 按钮,会出现循环工作计划编辑对话框,可以编辑计划执行的周期或时间点。
设置完成后单击“OK” 按钮就开始压缩数据库,在压缩结束后会显示一个压缩情况信息框。
2)、用Transact-SQL 命令压缩数据库
可以使用DBCC SHRINKDATABASE 和DBCC SHRINKFILE 命令来压缩数据库。
其中DBCC SHRINKDATABASE 命令对数据库进行压缩,DBCC SHRINKFILE 命令对数据库中指定的文件进行压缩。
(1)、DBCC SHRINKDATABASE
DBCC SHRINKDATABASE 命令语法如下:
DBCC SHRINKDATABASE (database_name [, target_percent][, {NOTRUNCATE | TRUNCATEONLY}] )
各参数说明如下:
·target_percent 指定将数据库压缩后,未使用的空间占数据库大小的百分之几。
如果指定的百分比过大,超过了压缩前未使用空间所占的比例,则数据库不会被压缩。
并且压缩后的数据库不能比数据库初始设定的容量小。
·NOTRUECATE
将数据库缩减后剩余的空间保留在数据库,中不返还给操作系统。
如果不选择此选项,则剩余的空间返还给操作系统。
·TRUNCATEONLY
将数据库缩减后剩余的空间返还给操作系统。
使用此命令时SQL Server 将文件缩减到最后一个文件分配,区域但不移动任何数据文件。
选择此项后,target_percent 选项就无效了。
例:
压缩数据库mytest 的未使用空间为数据库大小的20%。
dbcc shrinkdatabase (mytest, 20)
运行结果如下:
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
(2)、DBCC SHRINKFILE
DBCC SHRINKFILE 命令压缩当前数据库中的文件。
其语法如下:
DBCC SHRINKFILE ( {file_name | file_id }{ [, target_size] |[, {EMPTYFILE | NOTRUNCATE | TRUNCATEONLY}] } )
各参数说明如下:
·file_id
指定要压缩的文件的鉴别号(Identification number, 即ID)。
文件的ID 号可以通过 FILE_ID()函数或如本章前面所讲述的Sp_helpdb 系统存储过程来得到。
·target_size
指定文件压缩后的大小。
以MB 为单位。
如果不指定此选项,SQL Server 就会尽最大可能地缩减文件。
·EMPTYFILE
指明此文件不再使用,将移动所有在此文件中的数据到同一文件组中的其它文件中去。
执行带此参数的命令后,此文件就可以用Alter DATABASE 命令来删除了。
其余参数NOTRUNCATE 和TRUNCATEONLY 与DBCC SHRINKDATABASE 命令中的含义相同。
例:
压缩数据库mydb 中的数据库文件mydb_data2 的大小到1MB。
use mydb dbcc shrinkfile (mydb_data2, 1)
目前的状况是:
MDF文件保存完好(已拷出来),LDF已丢失。
使用
EXEC sp_attach_single_file_db @dbname = 'TyBusiness',
@physname = 'E:
\Help\TyBusiness.MDF'
报如下错误:
未能打开新数据库 'TyBusiness'。
Create DATABASE 将终止。
设备激活错误。
物理文件名 'd:
\Program Files\Microsoft SQL Server\MSSQL\TyBusiness_log.ldf' 可能有误。
1.先建一个与你要恢复的数据库名称一样的数据库.
2.停止sql server,把你的数据库替换这个数据库
3.重起sql server,把数据库设成紧急状态:
sp_configure 'allow',1
reconfigure with overirde
update sysdatabases set status=32768 where name='yourdata'
4.重建日志文件
dbcc rebuild_log('yourdata','your data path\newdata_log.ldf')
5.取消紧急模式
update sysdatabases set status=0 where name='yourdata'
restore sysdatabases yourdata with recovery
sp_configure 'allow',0
reconfigure with override
6.重起sql server
7.ok
减小SQL日志。
use yourdatabasename
GO
backup log yourdatabasename with TRUNCATE_ONLY
GO
DBCC SHRINKFILE (逻辑文件名, 收缩后的大小)
GO
在Query Analyzer中:
1.執行:
EXEC sp_detach_db 'dbname', 'true'; --將你的數據庫卸除
然後將SQL Server安裝路徑下的data目錄中的dbname_log.ldf文件移走或刪除
2.
EXEC sp_attach_single_file_db
'dbname','d:
\mssql7\data\dbname.mdf';
--以單文件形式恢復數據庫,系統自動分配給你一個500K大小的日誌文件.
use yourdatabasename
GO
backup log yourdatabasename with TRUNCATE_ONLY
GO
DBCC SHRINKFILE (逻辑文件名, 收缩后的大小)
GO
彻底删除数据库日志的方法
现在私服运行了一段时间,特别是人比较多的服,相信大家的数据库日志log文件已经相当大了吧。
其实这些log文件对于我们普通用户来说是没什么用,上面只是详细的记录了所有对该数据库的每一步操作,实际的数据已经保存到数据库文件中了,所以是不可能有什么回档之类的问题的。
以前我们也问过微软的人,据说是如果你的数据库文件坏掉了,有这个他们有办法帮助你恢复数据库,但是由于方法并不公开,所以对于我们来说,这只是占空间的东西。
因为原先没觉得这个是问题,所以也没站出来介绍一下,现在看越来越多的朋友问这个问题,就提供一下方法。
下面是主题了:
1、进入企业管理器,选中数据库,比如muonline
2、所有任务->分离数据库
3、到数据库文件的存放目录,将MuOnline_log.LDF文件删除,你怕S的话可以拷出去
4、企业管理器->附加数据库,选muonline,这个时候你会看见日志文件这项是一个叉,不要紧继续,此时数据库就会提示你该数据库无日志是否创建一个新的,确定就是了。
5、记得数据库重新附加后用户要重新设置一下。
以后如果新的日志文件变大了,再继续这个步骤就行了
--假设test2为数据库名称
在查询分析器中执行:
backup log MuOnline with NO_LOG
backup log MuOnline with TRUNCATE_ONLY
DBCC SHRINKDATABASE(MuOnline)
将上面的语句多次执行,直到日志文件缩小。
exec sp_dboption MuOnline,autoshrink,on
建立作业,每半个小时一次日志备份,每天一次完全数据库备份。
在Log收缩到正常大小后,将autoshrink选项设置为off。
查询分析器里运行:
backup log MuOnlie with NO_LOG
backup log MuOnlie with TRUNCATE_ONLY
DBCC SHRINKDATABASE(MuOnlie)
关于SQL的日志清理命令!
大家看看有没有用吧!
BACKUP LOG MuOnline WITH NO_LOG
DBCC SHRINKDATABASE(MuOnline,10)
这是清理MuOnline日志的 千万点到MuOnline再选查询分析器 不然整理了其他数据库会出错的
看看这个
关于各种日志暴大的解决办法(3种)
关于各种日志暴大的解决办法
要限制sql日志的大小很容易,只要选到那两个数据库(muonline和ranking)然后右键属性,在数据文件和事务日志里面就可以改
关键是那个joinserver的日志,有时候很正常,一天下来顶多几十m,有时候1分钟就能赏到4个G,其实要他不生成那么大的日志很简单,只要到joinserver的目录里面把log那个目录删除或改名就可以了(我就是这么干的),一点都不影响使用,开joinserver的时候它只会说write log error,对正常使用没有影响,这样joinserver目录就一直是700多k了,哈哈
对于GS和其他的日志,因为都很小,所以就没改,个人认为其实也可以这么干的
真正解决数据库日志大的方法
首先在数据库属性里把按百分比增长从10%改为1%,这样就大大限制了增长速度
其次在每次重启服务器的时候,在查询器里执行下面的,这样的方法是我认为最安全也是最简单的,建议置顶
感觉好用的朋友顶了
backup log MuOnline with NO_LOG
backup log MuOnline with TRUNCATE_ONLY
DBCC SHRINKDATABASE(MuOnline)
解决数据库日志大的方法
、进入企业管理器,选中数据库,比如muonline
2、所有任务->分离数据库
3、到数据库文件的存放目录,将MuOnline_log.LDF文件删除,你怕S的话可以拷出去
4、企业管理器->附加数据库,选muonline,这个时候你会看见日志文件这项是一个叉,不要紧继续,此时数据库就会提示你该数据库无日志是否创建一个新的,确定就是了。
5、记得数据库重新附加后用户要重新设置一下
[推荐]数据库自动备份、缩小以及防止回档
不要在属性里限制数据库大小,这样文件容量满的时候会出现回档
建立作业,每天自动备份数据库,自动删除2天前的备份
建立作业,每天运行一次以下代码,缩小日志文件
backup log MuOnline with NO_LOG
backup log MuOnline with TRUNCATE_ONLY
DBCC SHRINKDATABASE(MuOnline)
我就是这么做的,什么问题都没有,MU服务端全部用到的空间顶多2个G
日志可以这样减肥!
!
右击MuOnline,所有任务,分离数据库
然后到D:
\Muserver\db 把那个.log文件删掉
你会发现MuOnline数据库消失了
右击一下,所有任务,点 附加数据库
路径指向D:
\Muserver\db 选中里面的.mdf
你会发现日志有个大叉叉
不管它,直接点确定。
系统提示找不到日志,要不要新建一个
新建一个就Ok了。
这样减肥效果不错吧。
解决方法
日志文件满而造成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日志的方法
--------------------------------------------------------------------------------
一:
分享]解决SQL日志增大的办*[望置顶]
--假设test2为数据库名称
在查询分析器中执行:
backup log MuOnline with NO_LOG
backup log MuOnline with TRUNCATE_ONLY
DBCC SHRINKDATABASE(MuOnline)
将上面的语句多次执行,直到日志文件缩小。
exec sp_dboption 'MuOnline','autoshrink','on'
建立作业,每半个小时一次日志备份,每天一次完全数据库备份。
在Log收缩到正常大小后,将autoshrink选项设置为off。
二:
数据库增大是因为你的日志增大了,以前大家讨论过的,最简单可行的办法就是在你数据库属性->选项->故障还原里面选成简单模式(缺省为完全模式),然后选收缩数据库进行一次收缩,以后你的数据库基本就不怎么会增长了
三:
1、进入企业管理器,选中数据库,比如muonline
2、所有任务->分离数据库
3、到数据库文件的存放目录,将MuOnline_log.LDF文件删除,你怕S的话可以拷出去
4、企业管理器->附加数据库,选muonline,这个时候你会看见日志文件这项是一个叉,不要紧继续,此时数据库就会提示你该数据库无日志是否创建一个新的,确定就是了。
5、记得数据库重新附加后用户要重新设置一下。