当前位置:首页 » 数据仓库 » sql数据库日志清理软件
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql数据库日志清理软件

发布时间: 2022-06-30 03:42:28

1. 如何清除sql数据库日志,清除后对数据库有什么影响

教你如何清除SQL日志

1.打开查询分析器,输入命令
DUMP TRANSACTION 数据库名 WITH NO_LOG
2.再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。

清除Log有两种方法:

1.自动清除法

开放数据库选项 Trunc Log on Chkpt,使数据库系统每隔一段时间自动清除Log。此方法的优点是无须人工干预,由SQL Server自动执行,并且一般不会出现Log溢满的情况;缺点是只清除Log而不做备份。

2.手动清除法

执行命令“mp transaction”来清除Log。以下两条命令都可以清除日志:

mp transaction with truncate_only
mp transaction with no_log

通常删除事务日志中不活跃的部分可使用“mp transaction with trancate_only”命令,这条命令写进事务日志时,还要做必要的并发性检查。SYBASE提供“mp transaction with no_log”来处理某些非常紧迫的情况,使用这条命令有很大的危险性,SQL Server会弹出一条警告信息。为了尽量确保数据库的一致性,你应将它作为“最后一招”。

以上两种方法只是清除日志,而不做日志备份,若想备份日志,应执行“mp transaction database_name to mpdevice”命令。

清除后对数据库没有影响

2. 如何清除SQL数据库日志清除后对数据库有什么影响

教你如何清除SQL日志

1.打开查询分析器,输入命令
DUMP TRANSACTION 数据库名 WITH NO_LOG
2.再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。

清除Log有两种方法:

1.自动清除法

开放数据库选项 Trunc Log on Chkpt,使数据库系统每隔一段时间自动清除Log。此方法的优点是无须人工干预,由SQL Server自动执行,并且一般不会出现Log溢满的情况;缺点是只清除Log而不做备份。

2.手动清除法

执行命令“mp transaction”来清除Log。以下两条命令都可以清除日志:

mp transaction with truncate_only
mp transaction with no_log

通常删除事务日志中不活跃的部分可使用“mp transaction with trancate_only”命令,这条命令写进事务日志时,还要做必要的并发性检查。SYBASE提供“mp transaction with no_log”来处理某些非常紧迫的情况,使用这条命令有很大的危险性,SQL Server会弹出一条警告信息。为了尽量确保数据库的一致性,你应将它作为“最后一招”。

以上两种方法只是清除日志,而不做日志备份,若想备份日志,应执行“mp transaction database_name to mpdevice”命令。

清除后对数据库没有影响

3. 怎么清理sql sever 的系统日志

使用“废客SQL日志清理软件吧”这款小软件,就能很方便的对日志文件进行清理.并有很好的安全措施,和自动备份还原功能,让您 万无一失。
我从网上查的,我也正在下载看看能不能使用
SQL Server 数据库长时间运行后会日志文件过大,造成用户使用空间不足的问题,使用以下代码可以轻松为你的日志减肥,最小可减到1M。使用时修改红色部分,改为你数据的名字,运行即可。

SET NOCOUNT ON
DECLARE @LOGICALFILENAME SYSNAME,
@MAXMINUTES INT,
@NEWSIZE INT
USE abc---要操作的数据库
SELECT @LOGICALFILENAME = 'abc_LOG',---日志文件名
@MAXMINUTES = 10,---LIMIT ON TIME ALLOWED TO WRAP LOG.
@NEWSIZE = 1---你想设定的日志文件大小(M)
--SETUP /INITIALIZE
DECLARE @ORIGINALSIZE INT
SELECT @ORIGINALSIZE = SIZE
FROM SYSFILES
WHERE NAME = @LOGICALFILENAME

SELECT 原日志大小='ORIGINAL SIZE OF ' + DB_NAME() + ' LOG IS ' +
CONVERT(VARCHAR(30),@ORIGINALSIZE)+'8K PAGES OR '+
CONVERT(VARCHAR(30),(@ORIGINALSIZE*8/1024))+'MB'
FROM SYSFILES
WHERE NAME = @LOGICALFILENAME

CREATE TABLE DUMMYTRANS
(DUMMYCOLUMN CHAR(8000) NOT NULL)

DECLARE @COUNT INT,
@STARTTIME DATETIME,
@TRUNCLOG VARCHAR(255)
SELECT @STARTTIME = GETDATE(),
@TRUNCLOG = 'BACKUP LOG '+DB_NAME()+' WITH TRUNCATE_ONLY'
DBCC SHRINKFILE (@LOGICALFILENAME,@NEWSIZE)
EXEC(@TRUNCLOG)
--WRAP THE LOG IF NECESSARY
WHILE @MAXMINUTES >DATEDIFF(MI,@STARTTIME,GETDATE()) --TIME HAS NOE EXPIRED
AND @ORIGINALSIZE =(SELECT SIZE FROM SYSFILES WHERE NAME = @LOGICALFILENAME)
AND (@ORIGINALSIZE*8/1024)>@NEWSIZE
BEGIN --OUTER LOOP.
SELECT @COUNT = 0
WHILE((@COUNT<@ORIGINALSIZE/16) AND (@COUNT<50000))
BEGIN -- UPDATE
INSERT DUMMYTRANS VALUES ('FILL LOG')
DELETE DUMMYTRANS
SELECT @COUNT = @COUNT + 1
END
EXEC (@TRUNCLOG)
END
SELECT 新日志大小='FINAL SIZE OF ' + db_NAME() +' LOG IS '+
CONVERT(VARCHAR(30),SIZE)+'8K PAGES OR '+
CONVERT(VARCHAR(30),(SIZE*8/1024))+'MB'
FROM SYSFILES
WHERE NAME = @LOGICALFILENAME
DROP TABLE DUMMYTRANS
SET NOCOUNT OFF

4. sql server数据库日志怎么清理

2.截断事务日志: BACKUP LOG 数据库名WITH NO_LOG 3.收缩数据库文件(如果不压缩,数据库的文件不会减小 企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件 --选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了 --选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了 也可以用SQL语句来完成 --收缩数据库 DBCC SHRINKDATABASE(客户资料) --收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfiles DBCC SHRINKFILE(1) 代码如下复制代码backup, log, 模式 -- 第一步:清空日志 DUMP TRANSACTION [YZGA] WITH NO_LOG -- 第二步:截断事务日志 BACKUP LOG [YZGA] WITH NO_LOG -- 第三步:收缩数据库 尽管可用该选项手动截断事务日志,但是我们极力建议您不要这样做,因为这会将日志链断开。在下一次完整备份或完整差异备份之前,将无法为数据库提供媒体故障保护。只在非常特殊的情况下才手动截断日志,并立即创建数据备份。 删除日志方法二1、进入企业管理器,选中数据库,比如it,所有任务->分离数据库。2、如果数据库正在连接使用,要先点清除,才可以选确定。3、到数据库文件的存放目录,将it_log.LDF文件删除,不放心可以先拷到别的地方。4、进入企业管理器,数据库->所有任务->附加数据库。5、选择it_Data.MDF,这个时候你会看见日志文件这项是一个红叉,不要紧点确定。6、此时数据库就会提示你该数据库无日志是否创建一个新的,确定就是了。

5. SqlClear清除数据库日志

1、数据库不能启动

SQL> startup
ORACLE 例程已经启动。

Total System Global Area 289406976 bytes
Fixed Size 1248576 bytes
Variable Size 83886784 bytes
Database Buffers 197132288 bytes
Redo Buffers 7139328 bytes
数据库装载完毕。
ORA-16038: 日志 2 序列号 44 无法归档
ORA-19809: 超出了恢复文件数的限制
ORA-00312: 联机日志 2 线程 1:
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG'

2、查看$ORACLE_HOME\admin\SID\bmp\alert_SID.log日志

Thu Feb 19 09:45:33 2009
Errors in file d:\oracle\proct\10.2.0\admin\orcl\bmp\orcl_arc1_660.trc:
ORA-19815: WARNING: db_recovery_file_dest_size of 2147483648 bytes is 99.95% used, and has 1129472 remaining bytes available.

Thu Feb 19 09:45:33 2009
Errors in file d:\oracle\proct\10.2.0\admin\orcl\ump\orcl_ora_4708.trc:
ORA-19815: 警告: db_recovery_file_dest_size 字节 (共 2147483648 字节) 已使用 99.95%, 尚有 1129472 字节可用。

Thu Feb 19 09:45:33 2009
************************************************************************
You have following choices to free up space from flash recovery area:
1. Consider changing RMAN RETENTION POLICY. If you are using Data Guard,
Thu Feb 19 09:45:33 2009
************************************************************************
then consider changing RMAN ARCHIVELOG DELETION POLICY.
2. Back up files to tertiary device such as tape using RMAN
You have following choices to free up space from flash recovery area:
BACKUP RECOVERY AREA command.
3. Add disk space and increase db_recovery_file_dest_size parameter to
1. Consider changing RMAN RETENTION POLICY. If you are using Data Guard,
reflect the new space.
then consider changing RMAN ARCHIVELOG DELETION POLICY.
4. Delete unnecessary files using RMAN DELETE command. If an operating
system command was used to delete files, then use RMAN CROSSCHECK and
2. Back up files to tertiary device such as tape using RMAN
DELETE EXPIRED commands.
************************************************************************
BACKUP RECOVERY AREA command.
Thu Feb 19 09:45:34 2009
Errors in file d:\oracle\proct\10.2.0\admin\orcl\bmp\orcl_arc1_660.trc:
ORA-19809: limit exceeded for recovery files
ORA-19804: cannot reclaim 44217856 bytes disk space from 2147483648 limit

从上面信息知道是flash recovery area闪回恢复空间中默认2G的空间被归档日志占满了,没有空间进行存放归档日志。

3、退出sqlplus,进入rman

SQL> exit
从 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Proction
With the Partitioning, OLAP and Data Mining options 断开

C:\Documents and Settings\mengzhaoliang>rman target/

恢复管理器: Release 10.2.0.1.0 - Proction on 星期四 2月 19 09:57:48 2009

Copyright (c) 1982, 2005, Oracle. All rights reserved.

已连接到目标数据库: ORCL (DBID=1193443472, 未打开)

4、查看归档日志
RMAN> list archivelog all;

使用目标数据库控制文件替代恢复目录

已存档的日志副本列表
关键字 Thrd Seq S 短时间 名称
------- ---- ------- - ---------- ----
40 1 1 A 17-11月-08 D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\O
RCL\ARCHIVELOG\2008_11_18\O1_MF_1_1_4L44Z9CQ_.ARC
41 1 2 A 18-11月-08 D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\O
RCL\ARCHIVELOG\2008_11_18\O1_MF_1_2_4L4W4O0H_.ARC
42 1 3 A 18-11月-08 D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\O

5、可以先把归档日志备份到其他的空间,然后用rman删除归档日志;

RMAN> delete archivelog all;

释放的通道: ORA_DISK_1
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=151 devtype=DISK

已存档的日志副本列表
关键字 Thrd Seq S 短时间 名称
------- ---- ------- - ---------- ----
40 1 1 A 17-11月-08 D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\O
RCL\ARCHIVELOG\2008_11_18\O1_MF_1_1_4L44Z9CQ_.ARC
是否确定要删除以上对象 (输入 YES 或 NO)? yes
已删除的存档日志
存档日志文件名 =D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\200
_11_18\O1_MF_1_1_4L44Z9CQ_.ARC 记录 ID=40 时间戳 =671101294

6、退出rman,进入sqlplus,打开数据库

RMAN> exit

恢复管理器完成。

C:\Documents and Settings\mengzhaoliang>sqlplus "/as sysdba"

SQL*Plus: Release 10.2.0.1.0 - Proction on 星期四 2月 19 10:03:02 2009

Copyright (c) 1982, 2005, Oracle. All rights reserved.

连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Proction
With the Partitioning, OLAP and Data Mining options

SQL> alter database open;

数据库已更改。

数据库已经打开!

6. 如何清除mssql数据库日志

方法一:
1、backup log database_name with no_log
mp transaction with no_log
或者 backup log database_name with truncate_only --no_log和truncate_only是在这里是同义的,随便执行哪一句都可以
2、收缩特定数据库的所有数据和日志文件,执行 dbcc shrinkdatabase (database_name,[,target_percent])--database_name是要收缩的数据库名称;target_percent是数据库收缩后的数据库文件中所要的剩余可用空间百分比
收缩一次一个特定数据库中的数据或日志文件,执行 dbcc shrinkfile(file_id,[,target_size]) --file_id是要收缩的文件的标识 (ID) 号,若要获得文件 ID,请使用 FILE_ID 函数或在当前数据库中搜索 sysfiles;target_size是用兆字节表示的所要的文件大小(用整数表示)。如果没有指定,dbcc shrinkfile 将文件大小减少到默认文件大小
两个dbcc都可以带上参数notruncate或truncateonly,具体意思看帮助。

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

方法二:(这个方法在sqlserver2000的环境下做一般能成功,在sqlserver7及以下版本就不一定了):
1、先备份整个数据库以备不测
2、备份结束后,在Query Analyzer中执行如下的语句:
exec sp_detach_db DBName,true --卸除这个DB在MSSQL中的注册信息
3、到日志的物理文件所在的目录中去删除该日志文件或者将该日志文件移出该目录
4、在Query Analyzer中执行如下的语句:
exec sp_attach_single_file_db DBName,'d:\mssql7\data\DBName_data.mdf'
--以单文件的方式注册该DB,如果成功则MSSQL将自动为这个DB生成一个500K的日志文件。

方法三:自动清除法
开放数据库选项 Trunc Log on Chkpt,使数据库系统每隔一段时间自动清除Log。此方法的优点是无须人工干预,由SQLServer自动执行,并且一般不会出现Log溢满的情况;缺点是只清除Log而不做备份。

7. sql数据库满了怎么清理

-- 清空日志
--压缩日志及数据库文件大小

/*--特别注意
请按步骤进行,未进行前面的步骤,请不要做后面的步骤
否则可能损坏你的数据库.
--*/
select*fromsysfiles
--1.清空日志
DUMPTRANSACTIONusernameWITHNO_LOG

--2.截断事务日志:
BACKUPLOGusernameWITHNO_LOG

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

-- 也可以用SQL语句来完成
--收缩数据库
DBCCSHRINKDATABASE(username)

--收缩指定数据文件,1是文件号,可以通过这个语句查询到:select*fromsysfiles

DBCCSHRINKFILE(2)

--4.为了最大化的缩小日志文件(如果是sql7.0,这步只能在查询分析器中进行)
-- a.分离数据库:
-- 企业管理器--服务器--数据库--右键--分离数据库

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

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

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

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

execsp_dboptionusername,'singleuser',true
a.分离
EXECsp_detach_db@dbname='username'

b.删除日志文件
execmaster..xp_cmdshell'delD:\ProgramFiles\SQL\database\username_LOG.ldf'

c.再附加
EXECsp_attach_single_file_db@dbname='username',
@physname='D:\ProgramFiles\SQL\database\username_Data.MDF'

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

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

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

--SQL语句的设置方式:
alterdatabase数据库名modifyfile(name=逻辑文件名,maxsize=20)

8. 请问大佬有SQL Server日志清理小助手 V1.0 绿色中文版软件免费百度云资源吗

链接:

提取码:iveb

软件名称:SQLServer日志清理小助手V1.0绿色中文版

语言:简体中文

大小:335.86KB

类别:系统工具

介绍:SQLServer日志清理小助手是一款简单实用的SQLServer数据库日志清理工具,能够帮助用户轻松快速的清除数据库中的各种日志文件,为数据库的稳定运行提供了帮助,软件操作简单便捷,还支持日志大小、空间占用情况等查看,满足用户的各种日志清理功能需求。

9. 如何清理sql server 已满的数据库日志

SQLSERVER的数据库日志占用很大的空间,下面提供三种方法用于清除无用的数据库日志文件
方法一:
1、打开查询分析器,输入命令
backup log database_name WITH NO_log
2、再打开企业管理器--右键要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至xxm,这里会给出一个允许收缩到的最小m数,直接输入这个数,确定就可以了。

方法二:
设置检查点,自动截断日志

一般情况下,SQL数据库的收缩并不能很大程度上减小数据库大小,其主要作用是收缩日志大小,应当定期进行此操作以免数据库日志过大
1、设置数据库模式为简单模式:打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server-->SQL Server组-->双击打开你的服务器-->双击打开数据库目录-->选择你的数据库名称(如用户数据库cwbase1)-->然后点击右键选择属性-->选择选项-->在故障还原的模式中选择“简单”,然后按确定保存
2、在当前数据库上点右键,看所有任务中的收缩数据库,一般里面的默认设置不用调整,直接点确定
3、收缩数据库完成后,建议将您的数据库属性重新设置为标准模式,操作方法同第一点,因为日志在一些异常情况下往往是恢复数据库的重要依据

方法三:通过SQL收缩日志

把代码复制到查询分析器里,然后修改其中的3个参数(数据库名,日志文件名,和目标日志文件的大小),运行即可

SET NOCOUNT on
DECLARE @logicalFileName sysname,
@MaxMinutes int,
@NewSize int

USE tablename -- 要操作的数据库名
select @logicalFileName = 'tablename_log', -- 日志文件名
@MaxMinutes = 10, -- Limit on time allowed to wrap log.
@NewSize = 1 -- 你想设定的日志文件的大小(M)

-- Setup / initialize
DECLARE @OriginalSize int
select @OriginalSize = size
from sysfiles
WHERE name = @logicalFileName
select 'Original Size of ' + db_name() + ' log is ' +
ConVERT(VARCHAR(30),@OriginalSize) + ' 8K pages or ' +
ConVERT(VARCHAR(30),(@OriginalSize*8/1024)) + 'mb'
from sysfiles
WHERE name = @logicalFileName
CREATE TABLE DummyTrans
(DummyColumn char (8000) not null)

DECLARE @Counter int,
@StartTime DATETIME,
@Trunclog VARCHAR(255)
select @StartTime = getdate(),
@Trunclog = 'backup log ' + db_name() + ' WITH TRUNCATE_onLY'

DBCC SHRINKFILE (@logicalFileName, @NewSize)
EXEC (@Trunclog)
-- Wrap the log if necessary.
WHILE @MaxMinutes > datediff (mi, @StartTime, getdate()) -- time has not expired
AND @OriginalSize = (select size from sysfiles WHERE name = @logicalFileName)
AND (@OriginalSize * 8 /1024) > @NewSize
BEGIN -- Outer loop.
select @Counter = 0
WHILE ((@Counter < @OriginalSize / 16) AND (@Counter < 50000))
BEGIN -- update
INSERT DummyTrans VALUES ('Fill log')
DELETE DummyTrans
select @Counter = @Counter + 1
END
EXEC (@Trunclog)
END
select 'Final Size of ' + db_name() + ' log is ' +
ConVERT(VARCHAR(30),size) + ' 8K pages or ' +
ConVERT(VARCHAR(30),(size*8/1024)) + 'mb'
from sysfiles
WHERE name = @logicalFileName
DROP TABLE DummyTrans
SET NOCOUNT off

方法四:删除日志文件。

此方法有一定的风险性,因为sql server的日志文件不是即时写入数据库主文件的,如处理不当,会造成数据的损失。1、操作前请断开所有数据库连接。
2、分离数据库
分离数据库:企业管理器->服务器->数据库->cwbase1->右键->分离数据库
分离后,cwbase1数据库被删除,但保留了数据文件和日志文件
3、删除log物理文件
删除LOG物理文件,然后附加数据库: 企业管理器->服务器->数据库->右键->附加数据库
此法生成新的log,大小只有500多k。

注意:建议使用第一种方法。操作前请确保所有操作员都已经推出系统,断开数据库的连接。

以上操作前,请务必做好数据备份!

1.sql server 2005 清除日志语句

mp transaction 数据库名称 with no_log
backup log 数据库名称 with no_log
dbcc shrinkdatabase(数据库名称)

10. sql server日志清理这个软件谁可以给我一份

前言:此版本的软件安装包附加破解教程我可以给您一份,不过仅供个人使用,切勿传播,希望可以帮助您

点击下载sql server日志清理

sqlserver软件特色

1、可以快速安全的清除SqlServer的日志

2、可以实时运行,定时安全清除SqlServer的日志,自定义按每月执行或是按每天执行清除操作

3、定时运行时采用伪密码安全层,有效的保护您的SqlServer密码不被"看星星"等软件的破解

4、件包含完善的操作日志记录,通过AES(Advanced Encryption Standard)128位加密保存,安全可靠