sqlserver日志文件

过程:   昨天下午数据库奔溃,表现就是连不上数据库了,重启服务之后好了。

查询日文文件 , “Autogrow of file ‘XX_log‘ in database ‘XX‘ was cancelled by user or timed out after 1896 milliseconds. Use ALTER DATABASE to set a smaller FILEGROWTH value for this file or to explicitly set a new file size.”。

找到原因: 数据库在自动增长,所以连接超时。

分析:数据库日志文件满了,开始自动增长,自动增长方式是按默认的10%。这个初期是没有问题的,但是到了后期。日志文件巨大,有几十G,几十g的百分之十也有几个G,所以再去磁盘上再分配这么大的空间,很容易超时。

解决办法:1,把自动增长的方式设置为固定,太小了,容易造成磁盘碎片,太大容易超时。一般500M是没有问题的。

     2,定期收缩日志文件。

其他:sqlserver 数据库的文件有mdf文件和ldf文件。mdf是数据文件,ldf是日志文件。假如有完整的日志文件,可以把数据库恢复到任何一个时间点的状态 。可见日志文件的重要性,但是日志文件一般增长很快,所以需要定期收缩。

USE[master]
GO
ALTER DATABASE 数据库名 SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE 数据库名 SET RECOVERY SIMPLE   --简单模式
GO
USE Rk
GO
DBCC SHRINKFILE (N‘数据库名_log‘ , 2, TRUNCATEONLY)  --设置压缩后的日志大小为2M,可以自行指定
GO
USE[master]
GO
ALTER DATABASE 数据库名 SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE 数据库名 SET RECOVERY FULL  --还原为完全模式
GO  

可以分为三步,把数据表设置为简单模式,收缩,再设置回完整模式。

数据库有三种模式,简单恢复模式,完整恢复模式,大容量日志恢复模式

,可以看这里   https://www.cnblogs.com/OpenCoder/p/5708226.html

原文地址:https://www.cnblogs.com/jimsfriend/p/8970569.html

时间: 2024-10-14 07:25:06

sqlserver日志文件的相关文章

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

SqlServer 数据库中与备份和恢复相关的日志文件有MDF和LDF文件 存在于\\sqlserver_install_dir\MSSQL\Data\1.文件解释.mdf文件    MDF是SQL Server数据库文件. .ldf文件    LDF是SQL的日志文件,是不能直接打开的.LDF记录每一个操作:SELECT.INSERT.DELETE.UPDATE..日志 2.通过MDF和LDF文件恢复数据库的方法:1).sql语句下面的示例将   pubs   中的两个文件附加到当前服务器.

sqlserver日志文件太大解决方法

SQL Server 的事务日志意外增大或充满的处理方法 事务日志文件Transaction Log File是用来记录数据库更新情况的文件,扩展名为ldf. 在 SQL Server 7.0 和 SQL Server 2000 中,如果设置了自动增长功能,事务日志文件将会自动扩展. 一般情况下,在能够容纳两次事务日志截断之间发生的最大数量的事务时,事务日志的大小是稳定的,事务日志截断由检查点或者事务日志备份触发. 然而,在某些情况下,事务日志可能会变得非常大,以致用尽空间或变满.通常,在事务日

sqlserver 删掉日志文件ldf以后 救命语句

sqlserver 删掉日志文件ldf以后  救命步骤: 先新建一个新数据库, 删掉新建的 .mdb 用想要还原的mdb覆盖 执行下面的语句 ALTER DATABASE 'DB_Core' SET RECOVERY SIMPLE; alter database DB_Core set emergency alter database DB_Core set single_user dbcc checkdb('DB_Core',REPAIR_ALLOW_DATA_LOSS) dbcc check

SqlServer修改数据库文件及日志文件存放位置

--查看当前的存放位置 select database_id,name,physical_name AS CurrentLocation,state_desc,size from sys.master_files  where database_id=db_id(N'数据库名');   --修改文件的存放位置下次启动生效 --testDb为数据库名, alter database 数据库名 modify file ( name = 文件名(不包含后缀), filename = '文件存储路径')

SqlServer 2012 让人蛋疼的日志文件

一天上班看到一台sql server 2012的数据库D盘上80%,瞬间感觉不好.于是乎看了看硬盘情况,一个小小的200M数据库文件,拖着一个6G的日志文件.但是就觉得郁闷. 于是就简单点开数据库-->任务-->收缩-->文件 点了确定后,发现效果不明显.必要时候还是敲command好用. USE DBNAME GO backup database DBNAME to disk='D:\DataBases\Backup\DBNAME.bak' WITH init; backup log 

sqlserver大容量日志文件处理

针对SqlServer2000 .SqlServer2005.SqlServer2008.SqlServer2012.SqlServer2014库日志文件优化处理,减少磁盘空间. 处理方法: 下面以SqlServer2012为列: 恢复模式:完整->简单 ,然后点击确定 右击数据库->任务->收缩->文件,文件类型选择日志,然后点击确定就可以还原成10M左右的日志 QQ群号: 8017417   身份认证:Rach技术讨论 如有转载,请保留原有地址:http://www.cnblo

菜鸟学SQLServer--数据文件和日志文件

昨天讲到的是 页和区, 今天就想写一些 数据文件和日志文件那些事. 根据MSDN library,SQL Server有三种类型的文件,分别是: 主数据文件 -- 后缀为 .mdf 次要数据文件 -- 后缀为 .ndf 日志文件 -- 后缀为.ldf 数据文件: 从示例数据库我们可以看到,里面有一个主数据文件和一个日志文件,次要数据文件不是必须的. 同时每个文件都有一个文件号,fileID or filenum,用来标识该文件. 比如上一篇文章的DBCC page 命令,唯一标识数据库中的一页,

[转]SQLServer2008日志文件无法收缩处理方法

问题描述     发现有的数据库日志文件太大,无论如何收缩执行几次SQL语句都不行.事务日志达30+G,而且使用常规的截断.收缩方法均无法减小日志物理文件的尺寸,经过一番寻找,终于找到了解决方法. 查看日志信息       在查询分析器中执行如下代码来查看日志信息:      DBCC LOGINFO('数据库名称')       我们看到status=0的日志,代表已经备份到磁盘的日志文件:而status=2的日志还没有备份.当我们收缩日志文件时,收缩掉的空间其实就是status=0的空间,如

通过sqlserver日志恢复误删除的数据

原文:通过sqlserver日志恢复误删除的数据 如果你已经急的焦头烂额,看到这篇文章的时候,请你换个坐姿,深呼吸几次,静下心来将这篇文章读完,也许你的问题迎刃而解. 我遇到的情况是这样的,网站被植入木马,盗取了我的web.config文件,web.config文件里面的数据库连接字符串没有加密,而我的数据库远程连接又没有做IP限制,黑客通过数据库客户端连上我的数据库后,将所有的表都Delete掉了,所以大家一定要有一个好习惯将数据库连接字符串加密或者对远程访问数据库的IP作限制. 因被黑客De