首页 > SQL Server 数据库清除日志的方法

SQL Server 数据库清除日志的方法

方法一: 

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 清除日志语句 



dump transaction 数据库名称 with no_log 

backup log 数据库名称 with no_log 

dbcc shrinkdatabase(数据库名称) 





2.sql server 2008 清除日志语句 



sp_dboption 数据库名称, "trunc. log on chkpt.", true 

checkpoint 

sp_dboption 数据库名称, "autoshrink", true 



清除SQLSERVER数据库日志文件的方法: 



1、先将这个数据库卸载: 

EXEC sp_detach_db 'database_name', 'true' 

然后将该数据库所对应的Log文件删掉; 

最后,再将这个数据库注册到系统里面: 



EXEC sp_attach_db @dbname = N'database_name', 

@filename1 = N'e:mssql7datadatabase_name_data.mdf' 



2、数据库上点右键-所有任务-收缩数据库-选择收缩文件为LOG 。 



3、清除SQLSERVER数据库日志的方法: 



*******下面是转发的邮件***** 



The shrinking of log files is not immediate in SQL Server 7.0. The 

shrinking of log files does not occur until the active portion of the 

log moves. As updates are performed on the database, the shrink 

operation occurs at checkpoints or transaction log backups. Each log 

file is marked with the target_percent for the shrink operation. Each 

subsequent log backup or log truncation attempts to shrink the file to 

bring its size as close to the target_percent as possible. Because a log 

file can be shrunk only to a virtual log file boundary, it may not be 

possible to shrink a log file to a size smaller than the size of a 

virtual log file even if it is not being used. Please refer to SQL Book 

Online for the details. 



RESOLUTION 



Below script will help to shrink the log file immediately, pls keep it 

running for 3~4 minutes and then stop it manually. 



* Run "select fileid, name,filename from ..sysfiles" to get 

the fileid which you want to shrink * 



use 

go 

dbcc shrinkfile(fileid,notruncate) 

dbcc shrinkfile(fileid,truncateonly) 

create table t1 (char1 char(4000)) 

go 

declare @i int 

select @i = 0 

while (1 = 1) 

begin 

while (@i < 100) 

begin 

insert into t1 values ('a') select @i = @i +1 

end 

truncate table t1 

backup log with truncate_only 

end 

go 



*****转发内容结束***** 



SQLServer数据库日志清理 清除sqlserver2005日志 



有时候当系统运行时间比较长的时候,我们把备份的数据库还原的时候发现,数据库中数据文件和日志文件变的好大,特别是日志文件。现在给大家介绍如何清理SQLServer数据库日志;有两种方法如下:



方法一:手动清除sqlserver2005日志 



1.右键在清除日志的数据库,如“TestDB”,点击[新建查询(Q)] 

2.输入以下SQL语句,其中“TestDB”是数据库名称 

DUMP TRANSACTION TestDB WITH NO_LOG 

3.执行该SQL,成功后继续以下操作 

4.右键该数据库节点,点击[任务(T)] -> [收缩(S)] -> [文件(F)] 

5.在弹出的“收缩文件”对话框中,将“文件类型(T)”选为“日志”,将“收缩操作”选中“在释放未使用的空间前重新组织页(O)” 

6.在“将文件收缩到(K)”文本框中输入后面提示的最小大小的数值,点击[确定]即可。 



方法二:用工具软件SqlServer日志清除专家3.0,可对Sql Server 6.5到Sql Server 2005的各种版本的数据库日志的清除;其使用方法非常简单;SqlServer 日志清除专家绿色版 V3.5下载地址: 



下载地址 http://www.jb51.net/softs/21840.html 



方法一操作起来相对麻烦一些,可是可以定制日志的大小,清理日志后其相应的数据库数据文件在也会变小,数据也不会丢失;方法二操作比较方便,可以把数据库中的日志文件清理到1M大小;

原文链接:http://www.jb51.net/article/30811.htm

转载于:https://www.cnblogs.com/xuhongfei/archive/2013/04/03/2997444.html

更多相关:

  • 【知识点梳理】 ________________________ 一、熟练Spring操作数据库 bean → IoC:控制反转 完成实现类的单例生成 property → DI:依赖注入 各种属性(属性类ref) DI 注入方式 → 1、setter注入;2、构造器注入;3、注解注入 _______________________...

  • 安装数据库 安装数据库的时候我们需要安装三个软件,使用下面的命令,可能还会出现一些问题,关于数据库的安装,大家可以上网自行百度 yum install mysql yum install mysql-server yum install mysql-devel 我个人的理解大概是这个样子的,我们首先需要在自己的操作系统里面安装m...

  • 1.SQL的定义 结构化查询语言(Structured Query Language)简称SQL,SQL语句就是对数据库进行操作的一种语言。   2.SQL的作用 通过SQL语句我们可以方便的操作数据库中的数据、表、数据库等。 3.SQL的分类 1. DDL(Data Definition Language)数据定义语言用来定义数据库...

  • 云计算时代的高可用数据库是可扩展、容错且与任何私有云或公共云兼容的数据库实例。它们旨在提供业务连续性,而不会因任何类型的硬件或网络故障而导致用户体验的影响。其核心设计原则是消除任何单点故障,并提供平稳的故障转移体验。 公共云和私有云使企业能够摆脱容易出错的传统架构,并运行具有可靠性为5个9和6个9的应用程序。业务应用程序可以按需、即...

  • java的代码就不说了,毕竟不是我的主业。 1.c#数据库连接池Hikari.    (1)动态加载各类数据库驱动   (2)支持简单配置文件 (3)支持按照名称多数据库调用 (4)使用简洁  单数据库使用: HikariConfig hikariConfig = new HikariConfig(); hikariConfig.L...

  • ELK:(ELK 由 ElasticSearch 、 Logstash 和 Kiabana 三个开源工具组成),Elasticsearch用于存储日志信息,Logstash用于收集日志,Kibana用于图形化展示。上一节我们介绍了如何使用docker-compose搭建ELK日志分析系统。传送门:传说中的ELK日志分析系统,手把手教你...

  • 欢迎关注头条号:老顾聊技术精品原创技术分享,知识的组装工目录前言常用日志组件什么是日志门面和日志实现常见的日志框架日志使用@slf4j注解日志的配置logback-spring配置总结前言日志是我们系统必备的功能之一,可以帮助我们开发人员定位系统的异常、错误以及运行流程的重要的工具。今天老顾就来介绍一下Spring boot的默认的l...

  • glog简介 glog是著名的google开源C++日志库glog(https://github.com/google/glog)的golang版本,glog是一个轻量级的日志库,上手简单不需要配置文件并且稳定高效,可以自定义控制的内容比较少。  glog主要有以下几个特点:  1. glog有四种日志等级INFO < WARING...

  • 应用场景 该配置文件用于ATS用作反向代理模式,访问日志被server域名分隔。比如,我想将sohu和ifeng的域名的日志分别记在两个不同的日志文件中,其它的日志统一记在默认的日志文件中。 配置 为了将不同源站的HTTP transaction记录在不同的日志文件中,你必须在log_hosts.config中列举出每...

  • 缘起 近来因为公司项目需要,阅读了一部分ATS logging system的源码实现,越发觉得logs_xml.config文件的配置非常重要,而我目前只是实践了一点它的皮毛。为此,根据自己的理解,翻译了官网的这篇文档,以作备忘。 logs_xml.config文件定义了自定义日志文件格式,过滤器和处理选项。文件格式采用x...

  • 本文来自 运维人生 ,作者:fly是个稻草人链接:http://www.ywadmin.com/?id=76误删除linux系统文件了?不用急,本文将给你一个恢复linux文件的方法,让你轻松应对运维中的各风险问题。方法总比问题多~说在前面的话针对日常维护操作,难免会出现文件误删除的操作。大家熟知linux文件系统不同win有回收...

  • 原文来自SecIN社区—作者:WiHat0x00 什么是WebShell渗透测试工作的一个阶段性目标就是获取目标服务器的操作控制权限,于是WebShell便应运而生。Webshell中的WEB就是web服务,shell就是管理攻击者与操作系统之间的交互。Webshell被称为攻击者通过Web服务器端口对Web服务器有一定的操作权限,而...

  • 断电时文件系统发生了什么?硬盘又发生了什么?下一次开机时写到一半的文件在系统层面还在吗?在底层还在吗?更进一步的, 文件系统如何保证事务性, 会不会存在某种极端情况导致例如最后几个bit还没写完, 文件系统却认为它成功了的情况?回答不限任何文件系统,谢谢!下面是「北极」的回复分享断电的一瞬间,很多事情是无法确定的:1. 你无法确定...

  • 接到项目需求。需要搭建一个页面进行交互,慢慢来b (2).jpg使用python django框架进行页面的搭建在项目文件下打开窗口,输入命令;django-admin startproject helloword#在文件helloword/helloword/创建view.py在view.py文件中输入以代码from django....

  • 常见的错误集合解决方案(一)No.1提示错误'Microsoft.VC90.CRT,version="9.0.21022.8"把Microsoft.NET Framework 3.5.1下面的全部勾选上。No.2解决Qt Designer设计的图标但是VS生成不显示问题描述:在Qt designer中为菜单栏和工具栏设计的图标,但是...