sql2014 主数据库日志文件过大的处理方法
- 格式:docx
- 大小:37.28 KB
- 文档页数:3
清理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日志文件太大时,清理方法包括:备份、压缩、归档和删除等步骤。
下面是一些具体的方法和步骤:1.备份日志文件:首先,需要确保已经备份了当前的SQL日志文件。
这是因为,在清理之前,需要先保存原始的日志文件,以防止出现意外情况。
可以使用数据库管理工具或命令行工具进行备份。
2.压缩日志文件:为了减小日志文件的大小,可以使用压缩工具将其进行压缩。
压缩后的日志文件可以占用更少的磁盘空间,同时也更容易存储和传输。
在压缩之前,要确保不再需要对日志进行任何操作,以免丢失任何重要信息。
3.归档日志文件:归档是将日志文件从当前位置移到另一个位置的过程。
通过归档,可以将旧的日志文件移动到一个备份或存档目录中,以便以后查看或还原。
这样,可以释放当前的日志文件空间,并保留原始的日志记录。
具体的归档方法可以根据数据库管理系统和应用程序的要求进行选择。
4.删除日志文件:一旦已经完成了备份、压缩和归档操作,就可以考虑删除较旧的日志文件。
删除日志文件可以释放磁盘空间,提高系统性能,并且可以避免日志文件过大对系统运行造成负面影响。
但是,在删除日志文件之前,要确保已经备份和归档了这些文件,以防止丢失重要的数据。
需要注意的是,清理SQL日志文件需要谨慎操作,以免出现数据丢失或其他不可预料的问题。
因此,在进行清理操作之前,建议先备份和归档日志文件,以便以后查看或还原。
此外,要保持日志文件的合理大小,可以定期进行备份和归档操作,避免日志文件不断增长而导致系统性能下降。
在执行清理操作时,最好在非繁忙的时间段进行,以减少对系统运行的干扰。
数据库日志文件过大处理方法
一般情况下,是由于某些设置引起的,因为作为OLAP数据库,其没有必要保留日志文件来重做,所以需要设置如下设置
'trunc. log on chkpt.' :在检查点截断日志
‘autoshrink’ :自动收缩
假定数据库名为hsics
1.执行语句
sp_dboption 'hsics','trunc. log on chkpt.'
检查结果是否为
如果是OFF的话,请执行
sp_dboption 'hsics','trunc. log on chkpt.' ,true
将其打开
2. 执行语句
sp_dboption 'hsics','autoshrink'
检查结果是否为
如果是OFF的话,请执行
sp_dboption 'hsics','autoshrink', true
将其打开
1.收缩日志文件
a)use hsics
go
select * from sysfiles
查询结果
找到其中的.ldf对应的name
B) 只收缩日志文件,不要收缩物理文件(物理文件时间会非常的长,并且收缩不了多少)
执行
backup log hsics with no_log
dbcc shrinkfile(‘hsics_log’)。
SQL数据库文件太大的解决方法1.数据库清理和维护:-清理不必要的数据和记录:删除过期的数据、清理未使用的表和列。
-优化查询语句:通过合理地使用索引和优化查询语句,可以减少数据库文件的大小和查询的执行时间。
-定期执行数据库维护任务:例如,重新生成索引、重组表格以减少碎片、更新统计信息等。
2.分区数据:-将数据分成多个表或表空间,根据不同的条件进行分区,可以降低单个数据库文件的大小,提高数据库的性能。
-可以根据日期、地理位置、业务规则等将数据分区,使数据在物理上分布在不同的磁盘存储上。
- 可以使用数据库的分区功能,如MySQL的分区表和Oracle的分区表空间。
3.压缩数据库文件:-对数据库文件进行压缩,可以减小文件的大小,节省磁盘空间。
- 主流的数据库管理系统都提供了压缩数据库文件的功能,例如MySQL的InnoDB引擎可以使用压缩表和压缩页的功能。
4.数据库备份和恢复:-定期备份数据库文件,并将备份文件存储在不同的位置,以防止数据丢失。
-当数据库文件过大时,备份和恢复数据库可能会变得非常困难,因此可以考虑使用增量备份和差异备份来减少备份的时间和存储空间。
5.数据库分库分表:-当数据库文件非常大且无法压缩时,可以考虑将数据库进行分库分表。
-通过将数据分散存储在多个数据库和表中,可以降低单个数据库文件的大小,提高数据库的性能。
-这种方法需要进行设计和调整应用程序来支持分库分表,但可以极大地提高数据库的扩展性和性能。
6.数据库升级和优化:-更新数据库管理系统的版本,以获得更好的性能和空间管理功能。
-针对数据库的性能和空间使用情况,进行优化和调整配置参数,以达到最佳的性能和空间管理效果。
在实施以上方法时,我们需要根据具体情况来选择最合适的方法,可以通过监控数据库的性能和空间使用情况来判断哪种方法最有效。
此外,数据库设计和应用程序的性能、查询语句的优化也是减小数据库文件大小的重要因素。
DBCC SHRINKDATABASE收缩指定数据库中的数据文件大小。
语法DBCC SHRINKDATABASE( database_name [ , target_percent ][ , { NOTRUNCATE | TRUNCATEONLY } ])参数database_name是要收缩的数据库名称。
数据库名称必须符合标识符的规则。
有关更多信息,请参见使用标识符。
target_percent是数据库收缩后的数据库文件中所要的剩余可用空间百分比。
NOTRUNCATE导致在数据库文件中保留所释放的文件空间。
如果未指定,将所释放的文件空间释放给操作系统。
TRUNCATEONLY导致将数据文件中的任何未使用的空间释放给操作系统,并将文件收缩到上一次所分配的大小,从而减少文件大小,而不移动任何数据。
不试图重新定位未分配页的行。
使用TRUNCATEONLY 时,忽略target_percentis。
注释Microsoft® SQL Server™可收缩:特定数据库的所有数据和日志文件。
执行DBCC SHRINKDATABASE。
一次一个特定数据库中的数据或日志文件。
执行DBCC SHRINKFILE。
DBCC SHRINKDATABASE 以每个文件为单位对数据文件进行收缩。
然而,DBCC SHRINKDATABASE 在对日志文件进行收缩时,看起来好像所有的日志文件都存在于一个连续的日志池中。
假设名为mydb 的数据库有两个数据文件和两个日志文件。
这些数据文件和日志文件大小都为10 MB。
第一个数据文件包含6 MB 数据。
对于每个文件,SQL Server 计算目标大小,即要收缩文件到的大小。
当用target_percent 指定DBCC SHRINKDATABASE 时,SQL Server 计算的目标大小是收缩后文件中的target_percent可用空间大小。
例如,如果指定按target_percent 为25 收缩mydb。
SQLServer日志过大处理
注意:需要在应用停服状态下进行操作,并做好数据库备份1.查看数据库属性,找到数据库文件路径
常见路径为SQLServer默认DATA目录
可以在对应路径看到这个数据库的MDF和LDF文件
2.右键选择需要处理的数据,选择分离,分离之后数据库会从管理界面消失,分离时需要
勾选如下选项
3.剪切过大的LDF文件至其他目录,或者直接删除
4.数据库位置右键,选择附加mdf文件,删除找不到的日志文件,附加之后,日志会重新
生成
附加完成之后,数据库会出现在管理界面
5.至此完成过大日志处理,新增日志较小。
可以启动服务继续使用。
网站MSSQL数据库中的_log.ldf日志文件容量太大如何删除
现在网站运行了一段时间,特别是人比较多的网站,相信大家的数据库日志log文件已经相当大了吧。
其实这些log文件对于我们普通用户来说是没什么用,上面只是详细的记录了所有对该数据库的每一步操作,实际的数据已经保存到数据库文件中了,所以是不可能有什么回档之类的问题的。
以前我们也问过微软的人,据说是如果你的数据库文件坏掉了,有这个他们有办法帮助你恢复数据库,但是由于方法并不公开,所以对于我们来说,这只是占空间的东西。
因为原先没觉得这个是问题,所以也没站出来介绍一下,现在看越来越多的朋友问这个问题,就提供一下方法。
(这是牺牲以后的服务换来的,但这种服务一般用不上,只要经常备份数据就可以了)
下面是主题了:
1、进入企业管理器,选中数据库,比如it,所有任务->分离数据库。
2、如果数据库正在连接使用,要先点清除,才可以选确定。
3、到数据库文件的存放目录,将it_log.LDF文件删除,不放心可以先拷到别的地方。
4、进入企业管理器,数据库->所有任务->附加数据库。
5、选择it_Data.MDF,这个时候你会看见日志文件这项是一个红叉,不要紧点确定。
6、此时数据库就会提示你该数据库无日志是否创建一个新的,确定就是了。
7、以后如果新的日志文件变大了,再继续这个步骤就行了。
问题:数据库达到160G,怎样处理?
原因:
1、S QLSERVER数据库,分为日志文件.ldf和主要文件.mdf,主要文件就是我们
的原始数据库,日志文件主要用于灾难恢复,记录了对数据库的所有操作的日志。
2、数据库大的原因为日志文件ykchr.log很大,主要文件才3G多,日志文件增
长策略为不限制增长,导致日志只追加不会覆盖,所以才会很大。
解决办法:
将日志文件中的日志全部清空,修改日志文件的增长策略,目前调整为到最大10G,超过10G自动从头覆盖。
也可以将日志文件大小最大限制为5G
步骤:
1、查看数据库中,确认哪个文件占用空间较大。
2、选择目标数据库,分离数据库,为了可以删除日志文件。
3、现在可以修改日志文件名。
3、重新附加数据库,找到mdf文件即可。
5、删除找不到的日志文件目录。
6、直接恢复数据库即可。
7、刷新,显示出加附加的数据库。
8、找到目标数据库,打开属性,限制日志文件最大容量5G。
SQL Server2000数据库收缩、分离与附加当日记文件储存满以后,会出现SQL数据库数据无法保存现象。
这就造成了我们在运行KJ2008软件的时候出现,数据库连接正常,但报表打印出现“SQL 2009-4-11数据无效”。
此时,首先应该对kj2006数据库进行手动收缩。
收缩不成功才考虑分离和附加。
一、收缩数据库1、点击“程序》Microsoft SQL Server》企业管理》”,打开企业管理器2、展开服务器组,然后展开服务器,选中要分离的数据库(kj2006)3、点击鼠标右键“所有任务》收缩数据库”,出现如下窗口4、点击“文件”,出现如下窗口选择:kj2006_log(日记文件),然后单独对日记文件进行收缩。
点:确定。
即完成对日记文件的收缩。
然后查看日记文件是否缩小。
SQL Server 2000允许分离数据库的数据和事务日志文件,然后将其重新附加到同一台或另一台服务器上。
分离数据库将从SQL Server 删除数据库,但是保证在组成该数据库的数据和事务日志文件中的数据库完好无损。
然后这些数据和事务日志文件可以用来将数据库附加到任何SQL Server 实例上,这使数据库的使用状态与它分离时的状态完全相同。
数据库分离和附加其实很简单,您即使是初次接触数据库,做起来也很容易。
一、分离数据库1、点击“程序》Microsoft SQL Server》企业管理》”,打开企业管理器2、展开服务器组,然后展开服务器,选中要分离的数据库3、点击鼠标右键“所有任务》分离数据库”,出现如下窗口4、点击确定,该选定的数据库就被分离(分离后的数据库和事务日志文件路径就是它们原先所在的路径)。
应注意,只有“使用本数据库的连接”数为0时,该数据库才能分离。
所以分离数据库时尽量断开所有对要分离数据库操作的连接,如果还有连接数据库的程序,会出现数据库的连接状态窗口,显示正在连接此数据库的机器以及名称,点击清除按钮将从服务器强制断开现有的连接。
数据库日志文件过大的处理方法
当数据库日志文件过大时,可以采取以下处理方法:
1. 增加日志文件的大小限制:可以通过修改数据库的配置参数来增加日志文件的大小限制,例如增加每种类型日志文件的最大大小限制,或者增加整个日志文件组的最大大小限制。
2. 压缩或归档日志文件:可以通过压缩或归档数据库的日志文件来减小其占用的磁盘空间。
可以使用压缩工具,例如gzip
或7-Zip等,来对日志文件进行压缩。
或者可以将已经归档的
日志文件移到其他存储介质,例如磁带库或远程备份服务器上。
3. 定期清理日志文件:可以定期清理数据库的日志文件,删除不再需要的旧日志。
可以设置一个保留期限,例如保留最近一周或一个月的日志文件,然后定期删除超过保留期限的日志文件。
4. 增加日志文件的切割频率:可以通过增加日志文件的切割频率来减小单个日志文件的大小。
可以将一个较大的日志文件切割成多个较小的日志文件,每个文件都包含一段时间范围内的日志。
5. 导出日志数据到其他存储介质:可以将数据库的日志数据导出到其他存储介质,例如分布式文件系统或集中式日志服务器上。
这样可以减小数据库的日志文件大小,同时还可以方便地对日志数据进行分析和检索。
需要注意的是,在处理数据库日志文件过大时,要确保同时满足数据库的恢复和故障恢复要求。
因此,在实施上述处理方法之前,应该详细了解数据库管理系统的日志管理机制,并根据具体情况进行操作。
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. 截断事务日志
截断事务日志是指将事务日志记录的信息写入到数据库文件中,并且释放已经写入到数据库文件中的空间。
数据库管理员可以使用Transact-SQL 语句来截断事务日志,具体操作步骤如下:
1) 执行如下命令来截断事务日志
BACKUP LOG database_name WITH TRUNCATE_ONLY
5. 优化数据库设计和应用程序
除了通过备份、收缩和截断日志文件来解决主数据库日志文件过大的问题之外,数据库管理员还应当优化数据库设计和应用程序,避免数据库中存在大量的大事务操作和事务日志记录。
具体措施包括:
1) 合理设计数据库表结构和索引
2) 优化查询和事务操作
3) 限制事务日志的记录量
6. 合理设置恢复模式
合理设置数据库的恢复模式也是解决主数据库日志文件过大问题的关键措施。
数据库管理员可以根据实际业务需求和数据安全性要求来选择合适的恢复模式,包括完整恢复模式、简单恢复模式和大容量日志模式等。
7. 总结
主数据库日志文件过大会严重影响数据库性能和稳定性,因此数据库管理员和开发人员需要认真对待这一问题,采取有效的措斀。
以上介绍了主数据库日志文件过大的处理方法,包括备份日志文件、收缩日志文件、截断事务日志、优化数据库设计和应用程序、合理设置恢复模式等。
希望本文能够帮助读者更好地解决主数据库日志文件过大的问题,提高数据库管理和应用开发的效率和质量。