清除sql日志

合集下载

SQL日志文件太大清理方法

SQL日志文件太大清理方法

SQL日志文件太大清理方法当SQL日志文件太大时,清理方法包括:备份、压缩、归档和删除等步骤。

下面是一些具体的方法和步骤:1.备份日志文件:首先,需要确保已经备份了当前的SQL日志文件。

这是因为,在清理之前,需要先保存原始的日志文件,以防止出现意外情况。

可以使用数据库管理工具或命令行工具进行备份。

2.压缩日志文件:为了减小日志文件的大小,可以使用压缩工具将其进行压缩。

压缩后的日志文件可以占用更少的磁盘空间,同时也更容易存储和传输。

在压缩之前,要确保不再需要对日志进行任何操作,以免丢失任何重要信息。

3.归档日志文件:归档是将日志文件从当前位置移到另一个位置的过程。

通过归档,可以将旧的日志文件移动到一个备份或存档目录中,以便以后查看或还原。

这样,可以释放当前的日志文件空间,并保留原始的日志记录。

具体的归档方法可以根据数据库管理系统和应用程序的要求进行选择。

4.删除日志文件:一旦已经完成了备份、压缩和归档操作,就可以考虑删除较旧的日志文件。

删除日志文件可以释放磁盘空间,提高系统性能,并且可以避免日志文件过大对系统运行造成负面影响。

但是,在删除日志文件之前,要确保已经备份和归档了这些文件,以防止丢失重要的数据。

需要注意的是,清理SQL日志文件需要谨慎操作,以免出现数据丢失或其他不可预料的问题。

因此,在进行清理操作之前,建议先备份和归档日志文件,以便以后查看或还原。

此外,要保持日志文件的合理大小,可以定期进行备份和归档操作,避免日志文件不断增长而导致系统性能下降。

在执行清理操作时,最好在非繁忙的时间段进行,以减少对系统运行的干扰。

SQL SERVER清除日志的四种方法

SQL SERVER清除日志的四种方法
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'
AND @OriginalSize = (SELECT size FROM sysfiles WHERE name = @LogicalFileName)
AND (@OriginalSize * 8 /1024) > @NewSize
BEGIN -- Outer loop.
SELECT @Counter = 0
SET NOCOUNT ON
DECLARE @LogicalFileName sysname,
@MaxMinutes INT,
@NewSize INT
USE tablename -- 要操作的数据库名
SELECT @LogicalFileName = 'tablename_log', -- 日志文件名
DBCC SHRINKFILE (@LogicalFileName, @NewSize)
EXEC (@TruncLog)
-- Wrap the log if necessary.
WHILE @MaxMinutes > DATEDIFF (mi, @StartTime, GETDATE()) -- time has not expired

SQLSERVER清除日志的四种方法

SQLSERVER清除日志的四种方法

SQLSERVER清除日志的四种方法SQL Server 是一款功能强大的数据库管理系统,但由于其日志文件的持续增长,可能会占用大量的磁盘空间。

为了解决这个问题,SQL Server 提供了多种方法来清除日志。

本文将介绍 SQL Server 清除日志的四种常见方法。

方法一:备份日志备份日志是最常用的清除 SQL Server 日志的方法之一、备份日志将日志文件中已经提交的事务从日志文件中删除,并将未提交的事务保存在日志中。

这样可以大大减小日志文件的大小,释放磁盘空间。

备份日志的具体步骤如下:1. 在 SQL Server Management Studio 中选择要备份日志的数据库。

2.右键单击数据库,选择“任务”>“备份”。

3.在“备份数据库”对话框中,选择“事务日志”。

4.在“备份到”下拉列表中选择备份文件的位置和名称。

5.单击“确定”开始备份日志。

备份日志的频率取决于数据库的需求,可以每天备份一次,也可以根据业务需求更频繁地备份。

方法二:备份并截断日志备份并截断日志是另一种清除 SQL Server 日志的常见方法。

该方法包括备份日志和截断日志两个步骤。

备份日志的作用是和方法一相同,截断日志的作用是删除已经备份的日志,释放磁盘空间。

备份并截断日志的具体步骤如下:1. 在 SQL Server Management Studio 中选择要备份和截断日志的数据库。

2.右键单击数据库,选择“任务”>“备份”。

3.在“备份数据库”对话框中,选择“事务日志”。

4.在“备份到”下拉列表中选择备份文件的位置和名称。

5.单击“确定”开始备份日志。

6. 在 SQL Server Management Studio 中选择要截断日志的数据库。

7.右键单击数据库,选择“任务”>“收缩”>“数据库文件”。

8.选择“日志文件”,设置“收缩动作”为“释放未使用的空间”,并选择“重新组织文件以使空间最优化”,然后单击“确定”开始截断日志。

清除sql2000日志文件

清除sql2000日志文件

sql 2000 事务日志的介绍及收缩1、事务日志简介作为大型的关系型数据库,最重要的事情之一就是数据库完整性,也就是说数据必须是正确的,不能因为一些不可知的突发事件(如突然掉电)损坏数据。

为了避免这种情况,SQL数据库采用了两步写入磁盘的办法,第一步先写我做了什么,比如开了一个进货单,这一步完成后,再执行第二步,把这个进货单的内容写入数据库,这两步都成功了,才算完成,有一步有问题,这个单据都不会记到数据库中。

这样,您的事务操作(对数据库的修改操作,查询不记事务)的每一步都要记录进日志文件,如果您不注意经常截断事务日志的话,随着时间的增长,事务日志会很快的增长,最后要比您的数据量大的多。

可以经常看到,数据库文件只有几十兆,而日志文件却几千兆的情况。

2、截断事务日志事务日志分成两部分,一部分是不活动的,也就是说这部分的操作都已经成功的写入数据库了,而另一部分是活动的,也就是说,这部分日志,只是确认执行了上述第一步,还没有确信已经写入数据库的部分。

我们需要截断的就是不活动的部分。

这部分可以如下方法截断:Backup Log ‘数据库名’with truncate_only警告:在运行上述截断日志之后,强烈建议进行数据库完全备份。

3、缩小文件大小使用上述第2步就把不活动的日志删除了,但是文件并没有变小,只是把原先旧日志占用的空间释放了,又可以向里面记入新的日志了。

要想把物理文件也变小(比如已经几千兆了),请使用如下命令:DBCC Shrinkdatabase (数据库名)运行上述命令后就可以把日志文件缩小了(一般都缩为1M左右)4、把数据文件或日志文件的增长不受限制如果您做不到经常维护数据库,不能经常的截断日志,日志文件就会逐渐变大,一旦大到您设置的大小限制,日志就再也不能写入了,您对数据库的所有改变操作也就无法进行了,这时候您就需要用上面的方法把日志文件截断。

不过,您可以把文件的大小设置大一些或不受限制,请在企业管理器中设置数据库属性即可。

如何清除SQL日志

如何清除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就可以了。

清理 sql server 数据库日志的几种方法

清理 sql server 数据库日志的几种方法

清理 SQL Server 数据库日志的几种方法随着企业数据量的不断增加,数据库的日志文件也会随之增长。

数据库日志文件的不断增长会消耗大量磁盘空间,甚至会影响数据库的性能。

定期清理数据库日志是数据库管理的一个重要环节。

本文将介绍清理 SQL Server 数据库日志的几种方法,帮助数据库管理员解决数据库日志文件过大的问题。

一、备份事务日志1. 利用 SQL Server Management Studio (SSMS) 进行备份通过使用 SSMS,可以进行数据库事务日志的定期备份。

在 SSMS 中选择要备份的数据库,右键点击“任务”->“备份”,在备份类型中选择“仅事务日志”,即可完成事务日志的备份。

2. 利用 T-SQL 命令进行备份在 SQL Server 中,可以通过使用 T-SQL 命令进行事务日志的备份。

例如:```BACKUP LOG [数据库名] TO DISK = '备份文件路径' WITH NOFORMAT, NOINIT, NAME = '备份名称', SKIP, NOUNLOAD, STATS = 10```通过上述两种备份方式,可以定期备份数据库的事务日志,避免日志文件过大。

二、修改日志文件的增长方式1. 修改日志文件增长的百分比在数据库管理中,可以通过修改数据库的日志文件的增长百分比来控制日志文件的增长。

通过减小增长百分比,可以减缓日志文件的增长速度,从而减少磁盘空间的消耗。

2. 修改日志文件的增长大小除了修改增长百分比外,还可以通过修改日志文件的增长大小来控制日志文件的大小。

将增长大小设置为一个合适的值,可以避免日志文件过大,减少磁盘空间的占用。

三、截断事务日志1. 利用 SQL Server Management Studio (SSMS) 进行截断通过使用 SSMS,可以对数据库的事务日志进行截断。

在 SSMS 中选择要截断的数据库,右键点击“任务”->“收缩”->“文件”,选择要收缩的文件类型为“日志”,即可完成事务日志的截断。

多方法清理SQL server日志

多方法清理SQL server日志

多方法清理SQL Server日志1.手动清理1. 将恢复模式改成“简单”右键要清理的数据库名-属性,切换到选项,将恢复模式修改为简单,如下图1,然后点确定。

2、收缩日志还是右键要清理的数据库名—任务—收缩—文件,按如图2进行设置,设置完后点确定即可3.清理完手动恢复完整模式二、自动清理(使用SQL代理定时执行清理任务)1、新建作业如下图3,我们右键作业—新建作业即可开始新建一个作业了USE [master]GOALTER DATABASE 数据库名称SET RECOVERY SIMPLE WITH NO_WAITGOALTER DATABASE 数据库名称SET RECOVERY SIMPLE --简单模式GOUSE 数据库名称GODBCC SHRINKFILE (N'DEMO_log' , 1, TRUNCATEONLY)--将数据库日志文件收缩到1MGO------DEMO_LOG是日志文件名称,可以新建查询用select * from sys.database_files查看USE [master]GOALTER DATABASE 数据库名称SET RECOVERY FULL WITH NO_WAITGOALTER DATABASE 数据库名称SET RECOVERY FULL --还原为完全模式GO三、新建维护计划定时清理1.维护计划向导2.选择维护任务3.选择需要收缩的数据库之后,下一步至完成4.视图--工具箱--把执行I-SQL语句拉到右窗品--把收缩数据库箭头关联至“执行T-sql语句”5.双击“执行T-SQL语句”任务,打开对话框键入语句5.记得编辑“新建作业计划”。

SQLSERVER清除日志的四种方法

SQLSERVER清除日志的四种方法

SQLSERVER清除日志的四种方法SQL Server是一种关系型数据库管理系统,它将数据存储在表格中,并使用结构化查询语言(SQL)来管理和操作这些数据。

在SQL Server中,日志文件用于记录数据库的各种操作,包括插入、更新和删除数据的操作。

随着时间的推移,日志文件可能会变得庞大,导致数据库性能下降。

为了解决这个问题,SQL Server提供了多种方法来清除日志。

1.使用备份和恢复备份和恢复是清除日志的最常用方法之一、通过定期备份数据库并将日志截断,可以清除日志文件并释放空间。

备份可以选择完整备份、差异备份或增量备份。

完整备份将整个数据库备份到一个文件中,差异备份将备份自上次完整备份以来发生更改的部分,增量备份则只备份自上次备份以来发生更改的部分。

备份完成后,可以通过将数据库设置为简单恢复模式或完全恢复模式来截断日志,以释放日志空间。

2.使用事务日志管理SQL Server提供了事务日志管理功能,可以帮助清除日志。

通过调整事务日志的大小和日志增长的百分比,可以限制日志文件的增长。

可以使用以下命令来管理事务日志大小和增长:- ALTER DATABASE <database_name> SET RECOVERY SIMPLE:将数据库设置为简单恢复模式,该模式只保留最近的日志信息,并定期截断日志。

- ALTER DATABASE <database_name> MODIFY FILE (NAME =<log_file_name>, SIZE = <new_size>):调整日志文件的大小。

- ALTER DATABASE <database_name> MODIFY FILE (NAME =<log_file_name>, FILEGROWTH = <new_growth>):调整日志文件的增长百分比。

3.使用事务日志备份和清除除了备份和恢复,SQL Server还提供了事务日志备份和清除功能。

SQL日志文件太大,清理方法

SQL日志文件太大,清理方法
也可以用SQL语句来完成
--收缩数据库
DBCC SHRINKDATABASE(客户资料)
--收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfiles
DBCC SHRINKFILE(1)
4.为了最大化的缩小日志文件(如果是sql 7.0,这步只能在查询分析器中进行)
5.为了以后能自动收缩,做如下设置:
企业管理器--服务器--右键数据库--属性--选项--选择&quot;自动收缩&quot;
--SQL语句设置方式:
EXEC sp_dboption &#39;数据库名&#39;, &#39;autoshrink&#39;, &#39;TRUE

企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件
--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
07. exec(&#39;DBCC SHRINKDATABASE([&#39;+@DBName+&#39;])&#39;)
08.End
view plaincopy to clipboardprint?
01.--删除数据库日志
02.ALTER PROCEDURE [dbo].[NS_ShrinkLog]
03.@DBName nchar(50)
04.AS
05.Begin

MSSQL清空日志删除日志文件

MSSQL清空日志删除日志文件

MSSQL清空日志删除日志文件最近的项目主要做数据的归档,把数据从一个数据库拉到另一个数据库,造成新数据库的日志文件非常大;或者数据库在使用过程中会使日志文件不断增加,使得数据库的性能下降,并且占用大量的磁盘空间。

于是想把日志文件删除。

最简单就是先分离数据库-》删除日志文件-》最后附加数据,我这里需要在SSIS中调用,所以已sql脚本为主。

两种简单的清除日志的方法:一分离附加法: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=1select @datafilename=physical_name from sys.database_files where type=0然后切换到master下,分离数据库use masterexec sp_detach_db @dbname='TestVFA';紧接下来就是删除数据库日志文件----Remove fileDECLARE @Result intDECLARE @FSO_T oken intEXEC @Result = sp_OACreate 'Scripting.FileSystemObject', @FSO_Token OUTPUTEXEC @Result = sp_OAMethod @FSO_Token, 'DeleteFile', NULL, @logfilenameEXEC @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;。

SQL Server自动备份 自动清除日志文件

SQL Server自动备份 自动清除日志文件

在指定备份计划时候,由于需要每日备份,因此要更改调度。点击“更改”编辑调度。发生频率选择每天;每日频率选择作业开始时间,最好选择数据库访问量小时进行,多为半夜时间,可根据流量图确定具体时间;持续时间通常不用做改动,开始日期为编辑日期,无结束日期。
编辑好上述维护计划后,还要注意下 sql server代理服务是否启动了,因为每日调度维护计划是要启动这个服务才能执行的。如果该服务没有启动,需要手动启动一下,这是可以在其子项“作业”中看到刚刚添加过的数据库维护计划。
BACKUP LOG DBName WITH NO_LOG
DBCC SHRINKDATABASE(DBName )
DBCC SHRINKFILE(1)
上边的数据库名称填写需要维护的数据库名称,数据库日志文件名填写其对应的日志文件名,注意,不是资源管理器里看到的带后缀名的那个名字,而是企业管理器里,数据库属性里日志选项卡中日志的名字(通常也只是差一个后缀名……),确定后添加一个作业步骤。 如果需要维护多个数据库,用上述方法重复添加作业步骤,注意每个步骤成功或失败后的动作即可,最后选择一下开始的步骤。
打开企业管理器,进入“管理”-“sql server代理服务”-“作业”,在右侧窗口点击右键,选择“新建作业”。“常规”选项卡中,填写作业名称,具体描述,注意所有者最好还是用sa或者默认的管理帐号。
转到“步骤”选项卡,新建作业步骤,填写步骤名称,类型为脚本,数据库为需要清理日志的数据库,在下边命令中填写以下命令:
1、每日自动备份
打开企业管理器,进入“管理”-“数据库维护计划”,在右侧窗口点击右键,选择“新建维护计划”,启动“数据库维护计划向导”;点击“下一步”选择需要维护的数据库,维护特性数据库时,选择最后一个单选框并勾选需要维护的数据库名称;“下一步”选择更新数据优化信息、“下一步”检查数据库完整性、“下一步”指定数据库备份计划、“下一步”指定备份存放位置、“下一步”指定事务日志备份计划、“下一步”指定报表,“下一步”指定历史纪录维护,最后设定维护作业名称;通常来说,如果只需要备份数据库文件,则只需要指定备份计划以及存放位置即可,其他项目不做改动。

sqlserver数据库清除日记的方式

sqlserver数据库清除日记的方式

SQL Server 数据库清除日记的方式方式一:一、打开查询分析器,输入命令BACKUP LOG database_name WITH NO_LOG二、再打开企业管理器--右键要紧缩的数据库--所有任务--收缩数据库--收缩文件--选择日记文件--在收缩方式里选择收缩至xxm,这里会给出一个允许收缩到的最小m数,直接输入这个数,肯定就可以够了。

方法二:设置检查点,自动截断日志一般情况下,SQL数据库的收缩并非能很大程度上减小数据库大小,其主要作用是收缩日志大小,应当按期进行此操作以避免数据库日志过大1、设置数据库模式为简单模式:打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server-->SQL Server组-->双击打开你的服务器-->双击打开数据库目录-->选择你的数据库名称(如用户数据库cwbase1)-->然后点击右键选择属性-->选择选项-->在故障还原的模式当选择“简单”,然后按确定保留2、在当前数据库上点右键,看所有任务中的收缩数据库,一般里面的默许设置不用调整,直接点确定3、收缩数据库完成后,建议将您的数据库属性从头设置为标准模式,操作方法同第一点,因为日志在一些异样情况下往往是恢复数据库的重要依据方法三:通过SQL收缩日志把代码复制到查询分析器里,然后修改其中的3个参数(数据库名,日志文件名,和目标日志文件的大小),运行即可SET NOCOUNT ONDECLARE @LogicalFileName sysname,@MaxMinutes INT,@NewSize INTUSE tablename -- 要操作的数据库名SELECT @LogicalFileName = 'tablename_log', -- 日志文件名@MaxMinutes = 10, -- Limit on time allowed to wrap log. @NewSize = 1 -- 你想设定的日志文件的大小(M)-- Setup / initializeDECLARE @OriginalSize intSELECT @OriginalSize = sizeFROM sysfilesWHERE name = @LogicalFileNameSELECT 'Original Size of ' + db_name() + ' LOG is ' + CONVERT(VARCHAR(30),@OriginalSize) + ' 8K pages or ' + CONVERT(VARCHAR(30),(@OriginalSize*8/1024)) + 'MB' FROM sysfilesWHERE name = @LogicalFileNameCREATE 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) > @NewSizeBEGIN -- Outer loop.SELECT @Counter = 0WHILE ((@Counter < @OriginalSize / 16) AND (@Counter < 50000))BEGIN -- updateINSERT DummyTrans VALUES ('Fill Log')DELETE DummyTransSELECT @Counter = @Counter + 1ENDEXEC (@TruncLog)ENDSELECT 'Final Size of ' + db_name() + ' LOG is ' +CONVERT(VARCHAR(30),size) + ' 8K pages or ' +CONVERT(VARCHAR(30),(size*8/1024)) + 'MB'FROM sysfilesWHERE name = @LogicalFileNameDROP TABLE DummyTransSET NOCOUNT OFF方法四:删除日志文件。

SQL自动备份及自动清除日志文件

SQL自动备份及自动清除日志文件

mssql自动备份及自动清除日志文件教程2009-08-08 17:24mssql自动备份及自动清除日志文件教程1、每日自动备份强烈建议有条件的用户进行此操作!1、打开企业管理器,在控制台根目录中依次点开Microsoft SQL Server--SQL Server组--双击打开你的服务器2、然后点上面菜单中的工具--选择数据库维护计划器3、下一步选择要进行自动备份的数据--下一步更新数据优化信息,这里一般不用做选择--下一步检查数据完整性,也一般不选择4、下一步指定数据库维护计划,默认的是1周备份一次,点击更改选择每天备份后点确定5、下一步指定备份的磁盘目录,选择指定目录,如您可以在D盘新建一个目录如:ddatabak,然后在这里选择使用此目录,如果您的数据库比较多最好选择为每个数据库建立子目录,然后选择删除早于多少天前的备份,一般设定4-7天,这看您的具体备份要求,备份文件扩展名一般都是bak就用默认的6、下一步指定事务日志备份计划,看您的需要做选择--下一步要生成的报表,一般不做选择--下一步维护计划历史记录,最好用默认的选项--下一步完成7、完成后系统很可能会提示Sql Server Agent服务未启动,先点确定完成计划设定,然后找到桌面最右边状态栏中的SQL绿色图标,双击点开,在服务中选择Sql Server Agent,然后点击运行箭头,选上下方的当启动OS时自动启动服务8、这个时候数据库计划已经成功的运行了,他将按照您上面的设置进行自动备份修改计划:1、打开企业管理器,在控制台根目录中依次点开Microsoft SQL Server--SQL Server组--双击打开你的服务器--管理--数据库维护计划--打开后可看到你设定的计划,可以进行修改或者删除操作2、定期自动清理数据库日志文件数据库日志文件是随着时间增长而增长的,如果长时间不清理,文件会变得特别大,因此需要定期清空,但是日至文件是恢复数据库的重要依据,不用日志文件也是不明智的。

教你如何清除SQL日志

教你如何清除SQL日志

教你如何清除SQL日志在数据库管理系统中,SQL日志(又称事务日志)是记录数据库操作的重要组成部分。

它包含了每个SQL语句的详细信息,包括执行时间、执行结果、错误信息等等。

虽然SQL日志对于数据库运维和故障排查非常有用,但它也会占用大量的存储空间。

当日志文件过大时,不仅会占用磁盘空间,还会影响数据库性能。

1.压缩日志文件压缩日志文件是清除SQL日志的一种简单方法。

在许多数据库管理系统中,可以通过执行特定的备份命令来完成该过程。

备份会将日志文件中的已提交事务信息保存到备份文件中并压缩原始日志文件。

这种方法不会丢失任何已提交的事务数据,并且可以减小日志文件的大小。

但需要注意的是,压缩日志文件的操作可能会导致一些数据库性能下降,因为日志文件被磁盘I/O操作占用。

2.截断日志截断日志是一种将日志文件中已经完成的事务信息删除的方法。

截断日志可以实现通过释放日志文件空间来减小文件大小的目的。

虽然这种方法可以很好地清除日志文件,但需要谨慎处理。

如果在截断操作过程中出现故障或错误,可能会导致未提交的事务数据丢失。

因此,在执行截断日志之前,务必备份数据库以确保数据的安全。

3.调整日志文件大小另一种清除SQL日志的方法是调整日志文件的大小。

在一些数据库管理系统中,可以通过修改配置文件或使用特定的命令来调整日志文件的大小。

通过减小日志文件的大小,可以释放磁盘空间,并且可以同时减少数据库系统需要维护的日志信息量。

4.增加日志文件的自动增长阈值大多数数据库管理系统允许设置日志文件的自动增长阈值。

当日志文件达到预设的阈值时,数据库系统会自动增加文件的大小。

通过增加自动增长阈值,可以在一定程度上减少频繁清除日志文件的操作。

但需要注意的是,如果设置的阈值过大,可能会导致日志文件变得过大,影响数据库性能。

因此,需要根据数据库的负载和磁盘空间等因素进行合理的设置。

总的来说,清除SQL日志是数据库维护的重要任务之一、根据具体的数据库管理系统和运维需求,可以采用不同的方法进行清除。

清除sql日志方法

清除sql日志方法

志文件满而造成SQL数据库无法写入文件时,可用两种方法:一种方法:清空日志。

1.打开查询分析器,输入命令DUMP TRANSACTION 数据库名 WITH NO_LOG2.再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至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清理日志文件

Sql清理⽇志⽂件场景:我们导⼊MR数据时发现磁盘空间不够⽤了,导致的结果就是我们的程序很可能会抛出异常了,我们需要导⼊数据的时候进⾏⽇志瘦⾝。

问1:导⼊数据的时候,瘦⾝是否会造成数据库的异常?DBA提供解决⽅案:回答问1:没有问题。

不会产⽣冲突。

不过要给⽇⼦预留空间,防⽌被填满。

1. 确认M_Develop 的恢复模式是否为简单simple。

查看脚本如下。

select recovery_model_desc,namefrom sys.databaseswhere name='M_Develop'2. 如果不是simple。

请改为simple修改脚本如下:USE [master]GOALTER DATABASE [M_Develop] SET RECOVERY SIMPLE WITH NO_WAITGO。

3.恢复模式为simple之后。

确认⽇志⼤⼩,和占⽤百分⽐:脚本如下:dbcc sqlperf(logspace)4.如果数据库是simple之后,log space used(%) ⽇志占⽐应该⽐较⼩。

5.收缩⽇志⽂件⼤⼩use M_Developgo--找到库的⽇志⽂件名称select namefrom sys.database_filesw here type_desc='log'--缩⼩⽇志,假设上述查询结果⽇志名为M_Develop_log,收缩⾄10G,那么脚本如下dbcc shrinkfile (M_Develop_log,10240)--再次检查⽇志量⼤⼩dbcc sqlperf(logspace)(备注:其中将数据库模式改为simple是为了性能考虑。

如果不更改,那么需要备份⽇志,backup log。

不推荐)解决多线程改写问题当我们改为多线程之后,之前DBA给提出使⽤单独的表来站位对应的MR表的OID,防⽌多线程在执⾏BulkCopy相关存储过程中出现抢占同⼀个OID,导致出现异常:存储过程操作源数据使⽤的站位表BulkCopyTempM1ToM1_0ImportTemp_M1_01M1及其相关⼦表M1_M2及其相关⼦表Global_MaxM1OID Global_MaxM1_M2OIDBulkCopyTempM2ToM2_0ImportTemp_M2_01M1及其相关⼦表M1_M2及其相关⼦表Global_MaxM2OID Global_MaxM1_M2OIDBulkCopyTempM3ToM3_0ImportTemp_M3_01M3_RIP及M3_RIP_PDFGlobal_MaxM3OID之前避免出现占⽤同⼀个OID的⽅案为:以M1为例:Begin Transaction1. 查询出当前当前Global_MaxM1OID中MaxOID的值,存储为@MaxOID;2. Set @MaxOID=@MaxOID+@TempCount;3. 修改Global_MaxM1OID中的MaxOID值Commit但这⾥是出现问题的:1. 查询出当前当前Global_MaxM1OID中MaxOID的值,存储为@MaxOID;该语句出现在Begin Transaction的第⼀⾏就不能保证会锁定表Global_MaxOID;修改⽅案:添加新列:Flag int到表Global_MaxM1OID中,事务语句块改写为:Set XACT_ABORT ON;Begin Transaction----- 确保⼀进⼊事务语句块就锁表(TN.Global_MaxM1OID,TN.Global_MaxM1_M2OID),防⽌其他存储过程实例再次操作这些表,直到该语句块结束为⽌Update TN.Global_MaxM1OID Set Flag=1 Where OID=1;Update TN.Global_MaxM1_M2OID Set Flag=1 Where OID=1;Select @MAXM1OID =MaxOID From TN.Global_MaxM1OID Where oid=1;Select @MAXM1_M2OID =MaxOID From TN.Global_MaxM1_M2OID Where oid=1;Update TN.Global_MaxM1OID SET MaxOID=(@MaxM1OID+@TempCount), Flag=0 where oid=1;Update TN.Global_MaxM1_M2OID SET MaxOID=(@MaxM1_M2OID+@TempCount), Flag=0 where oid=1;Commit Transaction;数据不⼀致调试跟踪⽅案:当我们导⼊数据时发现数据导⼊的数据量很⼩很显然是导⼊的数据很多没有⼊库,DBA采⽤⽇志表TN.Logger跟踪的⽅案;1. TN.Logger表中字段的意义:Logger字段字段值意义OID编号,⾃增列,⾮主键ENodeBID当前操作的基站编号ENODEBIDProcedureName当前记录写在哪⼀个存储过程中EntryM3OID该存储过程占位之前Global_MaxM3OID值ExportM3OID该存储过程占位之后Global_MaxM3OID值EntryM1OID该存储过程占位之前Global_MaxM1OID值ExportM1OID该存储过程占位之后Global_MaxM1OID值EntryM2OID该存储过程占位之前Global_MaxM2OID值ExportM2OID该存储过程占位之后Global_MaxM2OID值EntryM1_M2OID该存储过程占位之前Global_MaxM1_M2OID值ExportM1_M2OID该存储过程占位之后Global_MaxM1_M2OID值ReportTime该基站MR上报时间CurrentRowCount当前临时表操作数据记录数量OperateDateTime当前⽇志记录时间1. 在web.config中添加了配置<AppSettings><!—当配置项为true:时,开启⽇志;false时,关闭⽇志 -à<add Key=”IsLogger” Value=”true|false”></AppSettings>1. 在BulkCopy中添加以下语句块:把解析⼊库的TempM1,TempM2,TempM3不从临时表中删除,以便我们能监控到我们解析了多少数据,我们写⼊到M1,M2,M3分别有多少记录,从⽽达到跟踪的效果;同时还记录了每次线程进⼊占⽤的MaxOID值,从⽽也可以调试到每个线程占⽤MaxOID的情况.。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.收缩数据库文件(如果不压缩,数据库的文件不会减小
企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件
--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
a.分离数据库:
企业管理器--服务器--数据库--右键--分离数据库
b.在我的电脑中删除LOG文件
c.附加数据库:
企业管理器--服务器--数据库--右键--附加数据库
此法将生成新的LOG,大小只有500多K
或用代码:
下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。
日志文件满而造成SQL数据库无法写入文件时,可用两种方法:
一种方法:清空日志。
1.打开查询分析器,输入命令
DUMP TRANSACTION 数据库名 WITH NO_LOG
2.再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。
或不能备份日志(truncate log on checkpoint选项为1),那么就无法进行数据的恢复了,或者
只能恢复到最近一次的备份的数据了。
以下简单说明恢复数据方法:
1,如果误操作之前存在一个全库备份(或已有多个差异备份或增量备份),首先要做的事就是进进行一次日志备份(如果为了不让日志文件变大而置trunc. log on chkpt.选项为1那你就死翘了)
以上两种方法只??清除日志,而不做日志备份,若想备份日志,应执行“dump transaction database_name to dumpdevice”命令。
PS:附一个更好的方法
先分离数据库后,直接删除日志以后,再在查询分析器里用
exec sp_attach_single_file_db '数据库名', '.mdf文件路径'
backup log dbName to disk='fileName'
2,恢复一个全库备份,注意需要使用with norecovery,如果还有其他差异或增量备份,则逐个恢复
restore database dbName from disk='fileName' with norecovery
dump transaction with truncate_only
dump transaction with no_log
通常删除事务日志中不活跃的部分可使用“dump transaction with trancate_only”命令,这条命令写进事务日志时,还要做必要的并发性检查。SYBASE提供“dump transaction with no_log”来处理某些非常紧迫的情况,使用这条命令有很大的危险性,SQL Server会弹出一条警告信息。为了尽量确保数据库的一致性,你应将它作为“最后一招”。
另外,Truncate log on checkpoint(此选项用于SQL7.0,SQL 2000中即故障恢复模型选择为简单模型)当执行CHECKPOINT 命令时如果事务日志文件超过其大小的70% 则将其内容清除在开发数据库时时常将此选项设置为True Auto shrink定期对数据库进行检查当数据库文件或日志文件的未用空间超过其大小的25%时,系统将会自动缩减文件使其未用空间等于25% 当文件大小没有超过其建立时的初始大小时不会缩减文件缩减后的文件也必须大于或等于其初始大小对事务日志文件的缩减只有在对其作备份时或将Truncate log on checkpoint 选项设为True 时才能进行。
3。右建数据库属性窗口--故障还原模型--设为大容量日志记录
可能有不少朋友遇到过这样的问题:
update或delete语句忘带了where子句,或where子句精度不够,执行之后造成了严重的后果,
这种情况的数据恢复只能利用事务日志的备份来进行,所以如果你的SQL没有进行相应的全库备份
BACKUP LOG 数据库名 WITH NO_LOG
3.收缩数据库文件(如果不压缩,数据库的文件不会减小
企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件
--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
2:清空日志
DUMP TRANSACTION 库名 WITH NO_LOG /// DUMP TRANSACTION ulionmis WITH NO_LOG
再:
企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
命令附加数据库。 OVER.在别的地方看到的 不错。
数据库日志操作
先提供一种复杂的方法压缩日志及数据库文件如下:
1.清空日志
DUMP TRANSACTION 库名 WITH NO_LOG
2.截断事务日志:
BACKUP LOG 数据库名 WITH NO_LOG
GO
-------------------------------------------------------------------------------
截断事务日志:
BACKUP LOG { database_name | @database_name_var }
{
[ WITH
3: 如果想以后不让它增长
企业管理器->服务器->数据库->属性->事务日志->将文件增长限制为2M
自动收缩日志,也可以用下面这条语句
Alter DATABASE 数据库名
SET AUTO_SHRINK ON
故障还原模型改为简单,用语句是
USE MASTER
GO
Alter DATABASE 数据库名 SET RECOVERY SIMPLE
注意:一般立成建立的数据库默认属性已设好,但碰到意外情况使数据库属性被更改,请用户清空日志后,检查数据库的以上属性,以防事务日志再次充满。
当然,如果误操作是一些不记日志的操作比如truncate table,select into等操作,那么是无法利
用上述方法来恢复数据的...
删除SQL日志1: 删除LOG
一般不建议做第4,6两步
第4步不安全,有可能损坏数据库或丢失数据
第6步如果日志达到上限,则以后的数据库处理会失败,在清理日志后才能恢复.
另外提供一种更简单的方法,本人屡试不爽,建议大家使用。
更简单的方法:
1。右建数据库属性窗口--故障还原模型--设为简单
2。右建数据库所有任务--收缩数据库
1:分离数据库 企业管理器->服务器->数据库->右键->分离数据库
2:删除LOG文件
3:附加数据库 企业管理器->服务器->数据库->右键->附加数据库
此法生成新的LOG,大小只有520多K
再将此数据库设置自动收缩
或用代码:
下面的示例分离 77169database,然后将 77169database 中的一个文件附加到当前服务器。
--将文件增长限制为xM(x是你允许的最大数据文件大小)
--SQL语句的设置方式:
alter database 数据库名 modify file(name=逻辑文件名,maxsize=20)
特别注意:
请按步骤进行,未进行前面的步骤,请不要做后面的步骤
否则可能损坏你的数据库.
5.为了以后能自动收缩,做如下设置:
企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩"
--SQL语句设置方式:
E X E C sp_dboption '数据库名', 'autoshrink', 'TRUE'
6.如果想以后不让它日志增长得太大
企业管理器--服务器--右键数据库--属性--事务日志
如何清除sql server日志
1.打开查询分析器,输入命令
DUMP TRANSACTION 数据库名 WITH NO_LOG
2.再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。
此法生成新的LOG,大小只有500多K。
注意:建议使用第一种方法。
如果以后,不想要它变大。
SQL2000下使用:
在数据库上点右键->属性->选项->故障恢复-模型-选择-简单模型。
或用SQL语句:
alter database 数据库名 set recovery simple
EXEC sp_detach_db @dbname = '77169database'
EXEC sp_attach_single_file_db @dbname = '77169database',
@physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\77169database.mdf
a.分离
E X E C sp_detach_db @dbname = 'pubs'
相关文档
最新文档