SQL数据库sql删除日志文件件 可以删除吗

SQL数据库日志文件已满,怎么删除
来源:http://blog.csdn.net/angelz/
1.清空日志
&DUMPTRANSACTION库名WITHNO_LOG
2.收缩文件(如果不压缩,的文件不会减小
&企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件
& --选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
& --选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
顶一下(0) 踩一下(1)
热门标签:清除日志: 复制代码 代码如下: DECLARE @LogicalFileName sysname, @MaxMinutes INT, @NewSize INT USE szwzcheck -- 要操作的数据库名 SELECT @LogicalFileName = 'szwzc
清除日志: 复制代码 代码如下: DECLARE @LogicalFileName sysname, @MaxMinutes INT, @NewSize INT USE szwzcheck -- 要操作的数据库名 SELECT @LogicalFileName = 'szwzcheck_Log', -- 日志文件名 @MaxMinutes = 10, -- Limit on time allowed to wrap log. @NewSize = 20 -- 你想设定的日志文件的大小(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 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
把szwzcheck换成你数据库的名字即可,在查询分析器里面运行。 有全角的空格(为了显示好看),你自己把他换一下. 脚本之家编辑注:一般情况下,用下面的语句更简单复制代码 代码如下:DUMP TRANSACTION [jb51] WITH NO_LOG BACKUP LOG [jb51] WITH NO_LOG DBCC SHRINKDATABASE([jb51])其中jb51就是你要处理的数据库名。专业管家 -
&&整站搜索:
服务器维护
网站维护 数据维护 系统安全配置
专业定制网站
企业建站一条龙、软件定制开发、系统集成
备案一条龙,稳定快捷通道
诚信守诺 客户至上 专业精神 专心贯注
SQL数据库日志文件总结及充满处理方式
作者:荣森网安SQL维护基地 来源: 浏览次数:0
本篇关键词:
荣森网安网讯:  交易日志(Transaction&logs)是数据库结构中非常重要但又经常被忽略的部分。由于它并不像数据库中的schema那样活跃,因此很少有人关注交易日志。  交易日志是针对数据库改变所做的记...
  交易日志(Transaction logs)是数据库结构中非常重要但又经常被忽略的部分由于它并不像数据库中的schema那样活跃因此很少有人关注交易日志
  交易日志是针对数据库改变所做的记录它可以记录针对数据库的任何操作,并将记录结果保存在独立的文件中。对于任何每一个交易过程,交易日志都有非常全面的记录,根据这些记录可以将数据文件恢复成交易前的状态。从交易动作开始,交易日志就处于记录状态,交易过程中对数据库的任何操作都在记录范围,直到用户点击提交或后退后才结束记录。每个数据库都拥有至少一个交易日志以及一个数据文件。
  出于性能上的考虑, Server将用户的改动存入缓存中,这些改变会立即写入交易日志,但不会立即写入数据文件。交易日志会通过一个标记点来确定某个交易是否已将缓存中的数据写入数据文件。当 Server重启后,它会查看日志中最新的标记点,并将这个标记点后面的交易记录抹去,因为这些交易记录并没有真正的将缓存中的数据写入数据文件。这可以防止那些中断的交易修改数据文件。
  维护交易日志
  因为很多人经常遗忘交易日志,因此它也会给系统带来一些问题。随着系统的不断运行,日志记录的内容会越来越多,日志文件的体积也会越来越大,最终导致可用磁盘不足。除非日常工作中经常对日志进行清理,否则日志文件最终会侵占分区内的全部可用。日志的默认配置为不限容量,如果以这种配置工作,它就会不断膨胀,最终也会占据全部可用空间。这两种情况都会导致数据库停止工作。
  对交易日志的日常备份工作可以有效的防止日志文件过分消耗磁盘空间。备份过程会将日志中不再需要的部分截除。截除的方法是首先把旧记录标记为非活动状态,然后将新日志覆盖到旧日志的位置上,这样就可以防止交易日志的体积不断膨胀。如果无法对日志进行经常性的备份工作,最好将数据库设置为"简单恢复模式"。在这种模式下,系统会强制交易日志在每次记录标记点时,自动进行截除操作,以新日志覆盖旧日志。
  截除过程发生在备份或将旧标记点标为非活动状态时,它使得旧的交易记录可以被覆盖,但这并不会减少交易日志实际占用的磁盘空间。就算不再使用日志,它依然会占据一定的空间。因此在维护时,还需要对交易日志进行压缩。压缩交易日志的方法是删除非活动记录,从而减少日志文件所占用的物理硬盘空间。
  通过使用DBCC SHRINKDATABASE语句可以压缩当前数据库的交易日志文件,DBCC SHRINKFILE语句用来压缩指定的交易日志文件,另外也可以在数据库中激活自动压缩操作。当压缩日志时,首先会将旧记录标记为非活动状态,然后将带有非活动标记的记录彻底删除。根据所使用的压缩方式的不同,你可能不会立即看到结果。在理想情况下,压缩工作应该选在系统不是非常繁忙的时段进行,否则有可能影响数据库性能。
  恢复数据库
  交易记录备份可以用来将数据库恢复到某一指定状态,但交易记录备份本身不足以完成恢复数据库的任务,还需要备份的数据文件参与恢复工作。恢复数据库时,首先进行的是数据文件的恢复工作。在整个数据文件恢复完成前,不要将其设为完成状态,否则交易日志就不会被恢复。当数据文件恢复完成,系统会通过交易日志的备份将数据库恢复成用户希望的状态。如果在数据库最后一次备份后,存在多个日志文件的备份,备份程序会按照它们建立的时间依次将其恢复。
  另一种被称为log shipping的过程可以提供更强的数据库备份能力。当log shipping配置好后,它可以将数据库整个复制到另一台上。在这种情况下,交易日志也会定期发送到备份上供恢复数据使用。这使得服务器一直处于热备份状态,当数据发生改变时它也随之更新。另一个服务器被称作监视(monitor)服务器,可以用来监视按规定时间间隔发送的shipping信号。如果在规定时间内没有收到信号,监视服务器会将这一事件记录到事件日志。这种机制使得log shipping经常成为灾难恢复计划中使用的方案。
&&&&荣森网安服务器维护方案本篇连接:
网站维护教程更新时间: 02:26:13&&【】&&【】
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。荣森网安服务器维护基地招商进行中!请致电24小时热线:010- 王先生
-荣森网安服务器维护基地为您提供专业的,,服务
(建议采用分辨率,以达到最佳视觉效果)&Powered&by&
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async =
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + './ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);SQL Server 2008 R2下如何清理数据库日志文件
SQL Server 2008 R2下如何清理日志文件
废话不多说,直接上代码,清理后日志文件为1M
USE [master]
ALTER DATABASE [数据库名] SET RECOVERY SIMPLE WITH NO_WAIT
ALTER DATABASE [数据库名] SET RECOVERY SIMPLE
USE [数据库名]
DBCC SHRINKFILE (N'[数据库日志文件名称]' , 0,TRUNCATEONLY)
USE [master]
ALTER DATABASE [数据库名] SET RECOVERY FULL WITH NO_WAIT
ALTER DATABASE [数据库名] SET RECOVERY FULL
--查询指定数据库的日志文件名称 &
USE [数据库名]
SELECT name FROM SYS.database_files WHERE type_desc='LOG'
08R2通过,其他版本未测试
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'}

我要回帖

更多关于 删除数据库归档日志 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信