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

合集下载

清理SQL Server数据库日志的两种方法

清理SQL Server数据库日志的两种方法

清理SQL Server数据库日志的两种方法sql server数据库使用时间长了,日志文件会很大,占用过多系统资源,数据库可能会报 log full 的错误,甚至磁盘空间占满让数据库处于不可用状态,这个时候我们需要清理数据库,以前有人开发了数据库日志清理工具,好像还要收费,其实很简单就可以完成这个操作,请跟我来:清理sql server数据库日志可用两种方法:方法一:清空日志。

1、打开查询分析器,输入命令DUMP TRANSACTION 数据库名 WITH NO_LOG2、再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至: ,这里会给出一个允许收缩到的最小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定期对数据库进行检查当数据库文件或日志文件的未用空间超过其大小的25%时,系统将会自动缩减文件使其未用空间等于25% 当文件大小没有超过其建立时的初始大小时不会缩减文件缩减后的文件也必须大于或等于其初始大小对事务日志文件的缩减只有在对其作备份时或将 Truncate log on checkpoint 选项设为True 时才能进行。

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

sql2012日志文件过大的处理方法

sql2012日志文件过大的处理方法

sql2012日志文件过大的处理方法SQL Server是一个广泛使用的关系型数据库管理系统,它的日志文件记录了数据库的所有操作,包括增删改查等。

随着数据库的使用增加,日志文件的大小也会不断增长,如果不及时处理,会占用大量磁盘空间,影响系统性能。

本文将介绍SQL Server 2012日志文件过大的处理方法。

1. 查看日志文件大小我们需要查看当前数据库的日志文件大小,可以使用以下SQL语句:```USE [数据库名]GOEXEC sp_helpfile```其中,[数据库名]为需要查看的数据库名称。

执行以上语句后,可以得到当前数据库的日志文件大小和路径信息。

2. 查看日志文件使用率接下来,我们需要查看当前日志文件的使用率,以确定是否需要进行日志文件的处理。

可以使用以下SQL语句:```USE [数据库名]GODBCC SQLPERF(logspace)```执行以上语句后,会返回当前数据库的日志文件使用情况,包括日志文件大小、已使用空间和剩余空间等信息。

3. 备份日志文件在进行日志文件处理之前,建议先备份当前的日志文件,以防止数据丢失。

可以使用以下SQL语句进行日志文件备份:```BACKUP LOG [数据库名] TO DISK = '备份路径'```其中,[数据库名]为需要备份的数据库名称,'备份路径'为备份文件的保存路径。

4. 缩小日志文件一旦确定需要处理日志文件,可以使用以下SQL语句缩小日志文件:```USE [数据库名]GODBCC SHRINKFILE (2, TRUNCATEONLY)```其中,[数据库名]为需要处理的数据库名称,2为日志文件的文件ID。

执行以上语句后,日志文件将被缩小到最小的可用大小。

5. 修改日志文件大小如果上述方法无法满足需求,还可以考虑修改日志文件的大小。

可以使用以下SQL语句修改日志文件的大小:```USE [数据库名]GOALTER DATABASE [数据库名] MODIFY FILE ( NAME = N'逻辑日志文件名', SIZE = 新大小)```其中,[数据库名]为需要修改的数据库名称,'逻辑日志文件名'为日志文件的逻辑名称,新大小为需要设置的日志文件大小。

如何清除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 中选择要截断的数据库,右键点击“任务”->“收缩”->“文件”,选择要收缩的文件类型为“日志”,即可完成事务日志的截断。

sql2014 主数据库日志文件过大的处理方法

sql2014 主数据库日志文件过大的处理方法

SQL Server 2014 是一款功能强大的关系型数据库管理系统,广泛应用于企业级应用程序和数据存储中。

在使用 SQL Server 2014 过程中,经常会遇到主数据库日志文件过大的问题,这会影响数据库性能和稳定性。

本文将介绍主数据库日志文件过大的处理方法,帮助数据库管理员和开发人员解决这一常见问题。

1. 分析日志文件过大的原因主数据库日志文件过大通常是由于以下原因引起的:1) 未及时备份日志文件2) 长时间未进行事务日志的截断3) 数据库中存在大量的大事务操作4) 数据库的恢复模式设置不当5) 数据库中存在大量的事务日志记录2. 备份日志文件备份日志文件是解决主数据库日志文件过大问题的最直接和有效的方法。

通过定期备份日志文件,可以将事务日志记录的信息写入到数据库文件中,并且释放已经写入到数据库文件中的空间。

数据库管理员可以使用 SQL Server Management Studio 工具或者 Transact-SQL 语句来备份日志文件,具体操作步骤如下:1) 使用 SQL Server Management Studio 工具进行备份:选择数据库 -> 右键点击任务 -> 选择“备份” -> 在“备份类型”中选择“日志” -> 完成备份设置 -> 确认备份操作2) 使用 Transact-SQL 语句进行备份:执行如下命令BACKUP LOG database_name TO disk='backup_location'3. 收缩日志文件在备份日志文件之后,数据库管理员还可以通过收缩日志文件的方式来释放空间,具体操作步骤如下:1) 使用 SQL Server Management Studio 工具进行日志文件收缩:选择数据库 -> 右键点击任务 -> 选择“任务” -> 选择“收缩” -> 选择“文件” -> 完成收缩操作2) 使用 Transact-SQL 语句进行日志文件收缩:执行如下命令DBCC SHRINKFILE(logical_log_filename, target_size)4. 截断事务日志截断事务日志是指将事务日志记录的信息写入到数据库文件中,并且释放已经写入到数据库文件中的空间。

SQL数据库日志文件容量超大解决方法

SQL数据库日志文件容量超大解决方法

问题:数据库达到160G,怎样处理?
原因:
1、S QLSERVER数据库,分为日志文件.ldf和主要文件.mdf,主要文件就是我们
的原始数据库,日志文件主要用于灾难恢复,记录了对数据库的所有操作的日志。

2、数据库大的原因为日志文件ykchr.log很大,主要文件才3G多,日志文件增
长策略为不限制增长,导致日志只追加不会覆盖,所以才会很大。

解决办法:
将日志文件中的日志全部清空,修改日志文件的增长策略,目前调整为到最大10G,超过10G自动从头覆盖。

也可以将日志文件大小最大限制为5G
步骤:
1、查看数据库中,确认哪个文件占用空间较大。

2、选择目标数据库,分离数据库,为了可以删除日志文件。

3、现在可以修改日志文件名。

3、重新附加数据库,找到mdf文件即可。

5、删除找不到的日志文件目录。

6、直接恢复数据库即可。

7、刷新,显示出加附加的数据库。

8、找到目标数据库,打开属性,限制日志文件最大容量5G。

sqlserver2012日志文件超大,清除日志的处理过程

sqlserver2012日志文件超大,清除日志的处理过程
博客园 用户登录 代码改变世界 密码登录 短信登录 忘记登录用户名 忘记密码 记住我 登录 第三方登录/注册 没有账户, 立即注册
sqlserver2012日 志 文 件 超 大 , 清 除 日 志 的 处 理 过 程
有一个项目使用了sql server2012版本的数据库,一开始可能没有注意到日志文件,使得日志文件越来越大,当使用sql2008的收缩文件的方 法进行操作时,问题出现了。
查询到是LOG_BACKUP,所以我的解决办法就是
USE [dbname] GO backup log dbname to disk='D:\dbbackup\2014-08-24-2.log' GO DBCC SHRINKFILE (N'a23648263485_Log' , 700, TRUNCATEONLY) GO
DUMP TRANSACTION BigData WITH NO_LOG BACKUP LOG BigData WITH NO_LOG
使用上面的方法并不能解决问题,因为2012已决的办法: 给出原办法出处:
通过select log_reuse_wait_desc from sys.databases where name='DBNAME'确认log状态
Байду номын сангаас

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还提供了事务日志备份和清除功能。

sqlserver2008日志清理方法

sqlserver2008日志清理方法

sqlserver2008日志清理方法SQL Server 2008是Microsoft SQL Server系列中的一个版本,用于管理和存储大量数据。

在长期运行的数据库中,日志文件可能会变得庞大,影响性能和磁盘空间。

为了解决这个问题,需要定期清理和管理日志文件。

下面是SQL Server 2008中清理日志的几种常见方法。

1. 定期备份日志文件通过进行定期的日志备份,可以帮助缩小日志文件的大小,并释放磁盘空间。

在SQL Server Management Studio (SSMS)中,可以通过右键单击数据库,在“任务”菜单中选择“备份”来进行日志备份。

选择“备份类型”为“仅备份日志”,并设定一个合适的备份策略,可以根据业务需求灵活设置。

2. 收缩日志文件当日志文件变得过大时,可以使用收缩功能来减小文件大小并释放磁盘空间。

在SSMS中,可以通过以下脚本执行收缩操作:```DBCC SHRINKFILE('日志文件名','目标大小')```请注意:收缩日志文件可能会导致数据库变得不可用一段时间。

3. 设置适当的恢复模式在SQL Server中,数据库有三种恢复模式:完整恢复模式、简单恢复模式和大容量恢复模式。

完整恢复模式和大容量恢复模式会生成大量的日志,而简单恢复模式只会保留最少的日志信息。

根据业务需求和恢复要求,选择适当的恢复模式可以控制和管理日志的大小。

可以通过以下脚本更改数据库的恢复模式:```ALTER DATABASE 数据库名 SET RECOVERY 模式```4. 设置适当的自动收缩日志文件选项在SQL Server中,可以通过设置自动收缩日志文件的选项来控制日志文件的大小。

可以使用以下脚本启用自动收缩:```ALTER DATABASE 数据库名 SET AUTO_SHRINK ON```5. 清除不必要的事务日志有时,数据库中可能存在不必要的事务日志,例如一些测试事务或创建和删除对象的操作。

SQL2000日志清理方法

SQL2000日志清理方法

SQL2000日志清理方法SQL Server 2000是一个非常古老的数据库管理系统,虽然已经过时,但仍然有一些组织使用它。

在SQL Server 2000中,日志文件经常会变得非常大,占用大量磁盘空间。

为了有效管理和清理日志文件,以下是一些可以使用的方法。

1.设计合适的恢复模式SQL Server 2000有三种恢复模式:完全恢复模式、大容量日志恢复模式和简单恢复模式。

对于需要恢复到特定时间点的组织,可以选择完全或大容量日志恢复模式,但需要定期备份日志文件和清理旧的备份。

对于一些不需要恢复到特定时间点的组织,可以选择简单恢复模式,它会自动清除日志文件。

2.定期备份日志文件在完全恢复模式或大容量日志恢复模式下,定期备份日志文件非常重要。

这样可以释放事务日志,使其不再继续增长。

可以使用`BACKUPLOG`命令来备份日志文件,并设置相应的计划任务以确保定期备份。

3.缩减日志文件当执行一次日志备份后,`BACKUPLOG`命令可以触发事务日志的缩减。

可以使用`DBCCSHRINKFILE`命令来缩减日志文件的大小,从而释放磁盘空间。

但需要注意,缩减日志文件可能导致性能下降,因此需要在低峰期执行。

4.数据库挂起和启动将数据库挂起并重新启动可以清除事务日志并释放磁盘空间。

可以使用 `ALTER DATABASE [DatabaseName] SET ONLINE/OFFLINE` 命令来完成这个操作。

挂起数据库会中断对数据库的访问,因此需要在低峰期执行。

5.自动备份和清理使用SQL Server代理任务和T-SQL命令,可以创建计划任务来自动备份和清理日志文件。

可以定期执行 `BACKUP LOG` 和 `DBCC SHRINKFILE` 命令,以确保日志文件的大小保持在合理的范围内。

6.监控日志文件大小和使用率7.定期查询性能和优化定期查询数据库性能和优化可以帮助提高数据库的整体性能,并防止日志文件过大。

SQL日志清除方法1

SQL日志清除方法1

--压缩日志及数据库文件大小/*--特别注意请按步骤进行,未进行前面的步骤,请不要做后面的步骤否则可能损坏你的数据库.一般不建议做第4,6两步第4步不安全,有可能损坏数据库或丢失数据第6步如果日志达到上限,则以后的数据库处理会失败,在清理日志后才能恢复.--*/1.清空日志DUMP TRANSACTION 库名WITH NO_LOG2.截断事务日志:BACKUP LOG 数据库名WITH NO_LOG3.收缩数据库文件(如果不压缩,数据库的文件不会减小企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了也可以用SQL语句来完成--收缩数据库DBCC SHRINKDA TABASE(客户资料)--收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfiles DBCC SHRINKFILE(1)4.为了最大化的缩小日志文件(如果是sql 7.0,这步只能在查询分析器中进行)a.分离数据库:企业管理器--服务器--数据库--右键--分离数据库b.在我的电脑中删除LOG文件c.附加数据库:企业管理器--服务器--数据库--右键--附加数据库此法将生成新的LOG,大小只有500多K或用代码:下面的示例分离pubs,然后将pubs 中的一个文件附加到当前服务器。

a.分离EXEC sp_detach_db @dbname = 'pubs 'b.删除日志文件c.再附加EXEC sp_attach_single_file_db @dbname = 'pubs ',@physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf '5.为了以后能自动收缩,做如下设置:企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩"--SQL语句设置方式:EXEC sp_dboption '数据库名', 'autoshrink ', 'TRUE '6.如果想以后不让它日志增长得太大企业管理器--服务器--右键数据库--属性--事务日志--将文件增长限制为xM(x是你允许的最大数据文件大小)--SQL语句的设置方式:alter database 数据库名modify file(name=逻辑文件名,maxsize=20)。

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

SQL 2008清理数据库日志文件

SQL 2008清理数据库日志文件

SQL 2008清理数据库日志文件
首先,清理数据库日志文件的脚本是这样的。

其次,需要清理的数据库日志文件有多大,可以在SQL Server Management Studio看到:鼠标右键点击对应的数据库,选择属性,在“文件”这个标签下就能看到日志文件大小。

现在开始清理:
打开SQL Server Management Studio。

连接上数据库服务器后,新建查询。

新建查询的方式有两种,结果都是一样的。

第一步:新建查询。

1:右击需要进行清理的数据库,选择“新建查询”。

或者,
2:点击“新建查询”,然后在下方选择需要处理的数据库。

第二步:录入查询脚本。

以打开或者手工录入的形式,将脚本文件内容输入进去。

最后是这样一个情况,请注意左上的数据库名。

第三步:开始清理。

接下来将脚本中的“数据库名”更换为需要清理的数据库的名字。

因为我的数据库名字中有特殊字符“-”,所以需要用到“[”“]”。

如果您的数据库名称第一位是数字,也需要这么处理。

点击执行:
接下来出现了这个:
切换到“结果”:
将这里的数据库Name填写进刚才的脚本中。

再次执行。

完成收工。

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数据库日志过大

sql数据库日志过大

数据库恢复模式为完整模式的情况下做日志缩小处理:use masterDBCC SQLPERF(LOGSPACE)GOSELECT name,recovery_model_desc,log_reuse_wait,log_reuse_wait_descFROM sys.databases where name=’DBname ‘GO查看log_reuse_wait_desc,如果为LOG_BACKUP,则是因为数据库未做过事务日志备份,那么做一下事务日志备份即可,因为事务日志未产生截断,所以不能进行收缩处理。

做事务日志备份就可以产生截断了。

做完事务日志的备份后,再执行上述语句,查看log_reuse_wait_desc,则此时为nothing.那么就可以直接做数据库收缩操作了。

收缩后,按需要指定事务日志的大小,并据需要做数据库的事务日志备份。

事务日志(Transaction logs)是数据库结构中非常重要但又经常被忽略的部分。

由于它并不像数据库中的schema那样活跃,因此很少有人关注事务日志。

事务日志是针对数据库改变所做的记录,它可以记录针对数据库的任何操作,并将记录结果保存在独立的文件中。

对于任何每一个事务过程,事务日志都有非常全面的记录,根据这些记录可以将数据文件恢复成事务前的状态。

从事务动作开始,事务日志就处于记录状态,事务过程中对数据库的任何操作都在记录范围,直到用户点击提交或后退后才结束记录。

每个数据库都拥有至少一个事务日志以及一个数据文件。

出于性能上的考虑,SQL Server将用户的改动存入缓存中,这些改变会立即写入事务日志,但不会立即写入数据文件。

事务日志会通过一个标记点来确定某个事务是否已将缓存中的数据写入数据文件。

当SQL Server重启后,它会查看日志中最新的标记点,并将这个标记点后面的事务记录抹去,因为这些事务记录并没有真正的将缓存中的数据写入数据文件。

这可以防止那些中断的事务修改数据文件。

SQL Server 2005 日志文件过大处理

SQL Server 2005 日志文件过大处理

由于安装的时候没有计划好空间,默认装在系统盘,而且又没有做自动备份、截断事务日志等,很快LDF文件就达到十几G,或者几十G ,此时就不得不处理了。

备份和计划就不说了,现在就说下怎么把它先删除吧:1:先分离数据库2:为了保险,先不要删除,把LDF文件重命名下3:附件数据库。

4:OK。

以上可能遇到的问题:1:有用户连接,无法分离(勾选“断开所有连接”)2:附件数数据库的时候提示找不到LDF文件,不要慌,在附件的时候,把LDF的路径一项删除,然后点击"确定",这样就附件成功了,再去数据库数据目录下看看,LDF 只有几百K,这是自动生成的,附件成功。

3:OK,附件成功,打开应用,看访问是否正常(如果数据库还要连接网络中的其他机器,这个时候需要修复下IP,或者禁用再启用就可以了,因为有时候修复的窗口总是关不掉),正常之后就可以把那个大大的文件给删除了。

当然,最好的办法还是事前计划好,设置好,添加个作业计划,这样以后就会自动备份,收缩之类的,控制在一定大小范围内。

学习之后,其他的简单处理方法:1:清空日志DUMP TRANSACTION 库名WITH NO_LOG2:收缩日志企业管理器--右键点击你要收缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至**M,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了(建议在200~300M,以防止需要恢复使用)3: 删除LOG1:分离数据库企业管理器->服务器->数据库->右键->分离数据库(有连接情况下勾选“断开所有连接”)2:删除LOG文件3:附加数据库企业管理器->服务器->数据库->右键->附加数据库此法生成新的LOG,大小只有几百K。

再将此数据库设置自动收缩4: 如果想以后不让它一直增长:企业管理器--服务器--右键数据库--属性--事务日志--将文件增长限制为xM(x是你允许的最大数据文件大小)--SQL语句的设置方式:alter database 数据库名modify file(name=逻辑文件名,maxsize=20)5.设置为自动收缩企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩"。

教你如何清除SQL日志

教你如何清除SQL日志

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
所有任务->分离数据库
到数据库文件的存放目录,将dbname_log.LDF文件删除,怕S的话可以拷出去
企业管理器->附加数据库,选dbname,这个时候你会看见日志文件这项是一个叉,不要紧继续,此时数据库就会提示你该数据库无日志是否创建一个新的,确定就是了
方法3:
进入企业管理器,选中数据库
--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
也可以用SQL语句来完成
--收缩数据库
DBCC SHRINKDATABASE(客户资料)
SQL日志文件太大,清理方法
最佳答案方法1:
在查询分析仪里面运行下面代码:
view plaincopy to clipboardprint?
01.backup log dbname with NO_LOG
02.backup log dbname with TRUNCATE_ONLY
--*/
1.清空日志
DUMP TRANSACTION 库名 WITH NO_LOG
2.截断事务日志:
BACKUP LOG 数据库名 WITH NO_LOG
3.收缩数据库文件(如果不压缩,数据库的文件不会减小
企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件
03.@DBName nchar(50)
04.AS
05.Begin
06. exec('BACKUP LOG ['+@DBName+'] WITH NO_LOG')
07. exec('DBCC SHRINKDATABASE(['+@DBName+'])')
--收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfiles
DBCC SHRINKFILE(1)
4.为了最大化的缩小日志文件(如果是sql 7.0,这步只能在查询分析器中进行)
a.分离数据库:
企业管理器--服务器--数据库--右键--分离数据库
03.DBCC SHRINKDATABASE(dbname)
backup log dbname with NO_LOG
backup log dbname with TRUNCATE_ONLY
DBCC SHRINKDATABASE(dbname)
方法2:
进入企业管理器,选中数据库
--SQL语句的设置方式:
alter database 数据库名 modify file(name=逻辑文件名,maxsize=20)
ቤተ መጻሕፍቲ ባይዱ
view plaincopy to clipboardprint?
01.--删除数据库日志
02.ALTER PROCEDURE [dbo].[NS_ShrinkLog]
所有任务->收缩数据库
SQL日志文件太大,清理方法
--压缩日志及数据库文件大小
/*--特别注意
请按步骤进行,未进行前面的步骤,请不要做后面的步骤,否则可能损坏你的数据库.
一般不建议做第4,6两步
第4步不安全,有可能损坏数据库或丢失数据
第6步如果日志达到上限,则以后的数据库处理会失败,在清理日志后才能恢复.
08.End
企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩"
--SQL语句设置方式:
EXEC sp_dboption '数据库名', 'autoshrink', 'TRUE'
6.如果想以后不让它日志增长得太大
企业管理器--服务器--右键数据库--属性--事务日志
--将文件增长限制为xM(x是你允许的最大数据文件大小)
b.在我的电脑中删除LOG文件
c.附加数据库:
企业管理器--服务器--数据库--右键--附加数据库
此法将生成新的LOG,大小只有500多K
或用代码:
下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。
a.分离
EXEC sp_detach_db @dbname = 'pubs'
b.删除日志文件
c.再附加
EXEC sp_attach_single_file_db @dbname = 'pubs',
@physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf'
5.为了以后能自动收缩,做如下设置:
相关文档
最新文档