大家知道清空MySQL日志吗?下面我们就给大家详细介绍一下吧!MySQLserver运行有1年多时间,最近无法正常运行,启动也失败,后来检查了一下日志,发现没有空间写日志,只好找清理日志的方法,本来想直接删除那些日志,可是仔细一想,这些日志都是严格编号的,万一删除一个,导致mysql无法运行岂不误事。
一分离附加法:
1、首先把数据库分离,分离数据库之前一定要做好数据库的全备份,选择数据库——右键——任务——分离,其中药勾选删除连接!
分离后在数据库列表将看不到已分离的数据库。
2、删除数据库的LOG文件数据库文件夹下的对应数据库的 ldf文件
3、附加数据库,附加的时候会提醒找不到log文件。到时附加上后会自动创建一个新的日志文件,从而达到清理数据库的目的
二、sql语句清除mssql日志
DUMP TRANSACTION TestDB WITH NO_LOG 清除日志
DBCC SHRINKFILE ('TestDB_log',1) 收缩数据库文件
BACKUP LOG TestDB WITH NO_LOG 截断事务日志
该命令在SQL Server 2008也是不支持,在SQL Server 2005和2000可以使用。
首先我们需要获取数据库文件的路径:
declare @logfilename varchar(100)
declare @datafilename varchar(100)
select @logfilename=physical_name from sys.database_files where type=1
select @datafilename=physical_name from sys.database_files where type=0
然后切换到master下,分离数据库
use master
exec sp_detach_db @dbname='TestVFA';
紧接下来就是删除数据库 日志文件
----Remove file
DECLARE @Result int
DECLARE @FSO_Token int
EXEC @Result = sp_OACreate 'Scripting.FileSystemObject', @FSO_Token OUTPUT
EXEC @Result = sp_OAMethod @FSO_Token, 'DeleteFile', NULL, @logfilename
EXEC @Result = sp_OADestroy @FSO_Token
最后就是附加数据库
exec sp_attach_single_file_db @dbname='TestVFA',@physname=@datafilename
注意:默认Ole Automation Procedures 是禁用的我们需要启用它
exec sp_configure 'show advanced options', 1;
RECONFIGURE;
exec sp_configure 'Ole Automation Procedures',1;
RECONFIGURE;
来源: http://www.51edu.com/it/bckf/482920.html