Sqlserver2005日志文件太大如何减小_mssql2005

来源:脚本之家  责任编辑:小易  

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 时才能进行。注意:一般立成建立的数据库默认属性已设好,但碰到意外情况使数据库属性被更改,请用户清空日志后,检查数据库的以上属性,以防事务日志再次充满www.zgxue.com防采集请勿采集本网。

Sqlserver2005日志文件太大,使其减小的方法如下所示:

physname='c:\\Program Files\\Microsoft SQL Server\\MSSQL\\Data\\pubs.mdf ' 5.为了以后能自动收缩,做如下设置: 企业管理器-服务器-右键数据库-属性-选项-选择\"自动收缩 SQL语句设置方式: EXEC sp_dboption

运行下面的三行 dbName为数据库名:

详细的恢复方法: 1、停止数据库服务。2、将需要恢复的数据库文件复制到另外的位置。3、启动数据库服务。4、确认要恢复的数据库文件已经成功复制到另外的位置,然后在SQL Server Management

backup log dbNamewith NO_LOG

你说的是日志文件?如果是你可以这样。分离数据库,把日志文件拿到别的地方,然后再附加,附加的时候选好路径就行了

backup log dbNamewith TRUNCATE_ONLY

SQL Server 2005还会将SQL Server的错误日志存在系统盘的“D:\\Program Files\\Microsoft SQL Server\\MSSQL.X\\MSSQL\\LOG”目录下,文件名“ERRORLOG”和“ERRORLOG.X”,其中“X”是数字。用记事本可以打开

DBCC SHRINKDATABASE(dbName)

如果你要还原事务日志,首先你要有一个完整备份,先还原完整备份,并使用NORECOVERY选项,然后,按顺序还原日志备份。只要后续还有文件要还原,就使用NORECOVERY选项,如果后续没有文件或是不想再还原其他

日志文件减小到1MB

sql server清空日志文件2011-04-06 23:05

1: 删除LOG

1:分离数据库 企业管理器->服务器->数据库->右键->分离数据库

2:删除LOG文件

3:附加数据库 企业管理器->服务器->数据库->右键->附加数据库

此法生成新的LOG,大小只有520多K

再将此数据库设置自动收缩

或用代码:

下面的示例分离 77169database,然后将 77169database 中的一个文件附加到当前服务器。

EXEC sp_detach_db @dbname = "77169database"

EXEC sp_attach_single_file_db @dbname = "77169database",

@physname = "c:Program FilesMicrosoft SQL ServerMSSQLData77169database.mdf"

2:清空日志

DUMP TRANSACTION 库名 WITH NO_LOG

再:

企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了

3: 如果想以后不让它增长

企业管理器->服务器->数据库->属性->事务日志->将文件增长限制为2M

自动收缩日志,也可以用下面这条语句

ALTER DATABASE 数据库名

SET AUTO_SHRINK ON

故障还原模型改为简单,用语句是

USE MASTER

GO

ALTER DATABASE 数据库名 SET RECOVERY SIMPLE

GO

---------------------------------------------------------------------------------

截断事务日志:

BACKUP LOG { database_name | @database_name_var }

{

[ WITH

{ NO_LOG | TRUNCATE_ONLY } ]

}

--何问起 hovertree.com

--压缩日志及数据库文件大小

/*--特别注意

请按步骤进行,未进行前面的步骤,请不要做后面的步骤

否则可能损坏你的数据库.

--*/

1.清空日志

DUMP TRANSACTION 库名 WITH NO_LOG

2.截断事务日志:

BACKUP LOG 数据库名 WITH NO_LOG

3.收缩数据库文件(如果不压缩,数据库的文件不会减小

企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件

--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了

--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了

也可以用SQL语句来完成

--收缩数据库

DBCC SHRINKDATABASE(客户资料)

--收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfiles

DBCC SHRINKFILE(1)

4.为了最大化的缩小日志文件(如果是sql 7.0,这步只能在查询分析器中进行)

a.分离数据库:

企业管理器--服务器--数据库--右键--分离数据库

b.在我的电脑中删除LOG文件

c.附加数据库:

企业管理器--服务器--数据库--右键--附加数据库

此法将生成新的LOG,大小只有500多K

或用代码:

下面的示例分离 77169database,然后将 77169database 中的一个文件附加到当前服务器。

a.分离

EXEC sp_detach_db @dbname = "77169database"

b.删除日志文件

c.再附加

EXEC sp_attach_single_file_db @dbname = "77169database",

@physname = "c:Program FilesMicrosoft SQL ServerMSSQLData77169database.mdf"

5.为了以后能自动收缩,做如下设置:

企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩"

--SQL语句设置方式:

EXEC sp_dboption "数据库名", "autoshrink", "TRUE"

6.如果想以后不让它日志增长得太大

企业管理器--服务器--右键数据库--属性--事务日志

--将文件增长限制为xM(x是你允许的最大数据文件大小)

--SQL语句的设置方式:

alter database 数据库名 modify file(name=逻辑文件名,maxsize=20)

-------------------------------------------------------------------------------------------

/*--压缩数据库的通用存储过程

压缩日志及数据库文件大小

因为要对数据库进行分离处理

所以存储过程不能创建在被压缩的数据库中

/*--调用示例exec p_compdb "test"--*/use master --注意,此存储过程要建在master数据库中goif exists (select * from dbo.sysobjects where id = object_id(N"[dbo].[p_compdb]") and OBJECTPROPERTY(id, N"IsProcedure") = 1)drop procedure [dbo].[p_compdb]GOcreate proc p_compdb@dbname sysname, --要压缩的数据库名@bkdatabase bit=1, --因为分离日志的步骤中,可能会损坏数据库,所以你可以选择是否自动数据库@bkfname nvarchar(260)="" --备份的文件名,如果不指定,自动备份到默认备份目录,备份文件名为:数据库名+日期时间as

--1.清空日志exec("DUMP TRANSACTION ["+@dbname+"] WITH NO_LOG")--2.截断事务日志:exec("BACKUP LOG ["+@dbname+"] WITH NO_LOG")--3.收缩数据库文件(如果不压缩,数据库的文件不会减小exec("DBCC SHRINKDATABASE(["+@dbname+"])")--4.设置自动收缩exec("EXEC sp_dboption """+@dbname+""",""autoshrink"",""TRUE""")--后面的步骤有一定危险,你可以可以选择是否应该这些步骤--5.分离数据库if @bkdatabase=1beginif isnull(@bkfname,"")="" set @bkfname=@dbname+"_"+convert(varchar,getdate(),112)+replace(convert(varchar,getdate(),108),":","")select 提示信息="备份数据库到SQL 默认备份目录,备份文件名:"+@bkfnameexec("backup database ["+@dbname+"] to disk="""+@bkfname+"""")end--进行分离处理create table #t(fname nvarchar(260),type int)exec("insert into #t select filename,type=status&0x40 from ["+@dbname+"]..sysfiles")exec("sp_detach_db """+@dbname+"""")--删除日志文件declare @fname nvarchar(260),@s varchar(8000)declare tb cursor local for select fname from #t where type=64open tb fetch next from tb into @fnamewhile @@fetch_status=0beginset @s="del ""+rtrim(@fname)+"""exec master..xp_cmdshell @s,no_outputfetch next from tb into @fnameendclose tbdeallocate tb--附加数据库set @s=""declare tb cursor local for select fname from #t where type=0open tb fetch next from tb into @fnamewhile @@fetch_status=0beginset @s=@s+","""+rtrim(@fname)+""""fetch next from tb into @fnameendclose tbdeallocate tbexec("sp_attach_single_file_db """+@dbname+""""+@s)go

通常建立数据库时,都会忘记要保存.mdf 和.ldf 文件,当以后再要用到的时候,找的天昏地暗也找不到,是不是很恨自己啊?在SQL Server 2005目录下的默认目录下,如果你不知道的话,你可以重新在SQL Server 2005新建立一个(当然不是真正的建),你取好名字后,在点击.mdf 和.ldf 文件保存的路径,点击保存路径,默认路径就为出来!内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • sql server 2008 清空删除日志文件(瞬间日志变几m)
  • 清理sql server 2008日志文件cannot shrink log file 2 的解决方案
  • win2008中sqlserver2008 无法打开错误日志文件导致无法启动的解决方法
  • sql server无法收缩日志文件的原因分析及解决办法
  • sqlserver修改数据库文件及日志文件存放位置
  • sql server 2005删除日志文件的几种方法小结
  • sqlserver2005 没有日志文件(*.ldf) 只有数据文件(*.mdf) 恢复数据库的方法
  • sql server 2008数据库日志文件收缩的方法
  • sqlserver2005 中的几个统计技巧
  • sql server 2005 management studio express企业管理器将英文变成
  • sqlserver 2005 无法在服务器上访问指定的路径或文件
  • sql server 移动系统数据库
  • sql2005 日志清理 sql2005压缩清除日志的方法
  • sql2005日志收缩方法
  • 使用sqlserver 2005/2008 递归cte查询树型结构的方法
  • win2008中安装的mssql2005后无法访问的解决方法
  • sqlserver2005安装提示服务无法启动原因分析及解决
  • sql2005clr函数扩展 - 关于山寨索引
  • sql server 2005数据库日志文件放在哪里?
  • 如何清空sql server 2005日志文件
  • SQL Server 2005中如何清理日志文件
  • 如何让SQL SERVER2005不记录操作日志
  • sql server 2005怎么删除日志文件
  • sql server2005 日志文件损坏怎么办
  • sql server 2005 如何移动日志的位置
  • 如何查看SQLSERVER 2005日志
  • SQL server 2005中 备份事物日志后,用什么命令可以还原?
  • 如何修改sql server 2005数据库系统日志保存路径 ?
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全mssqlmysqlmariadboracledb2mssql2008mssql2005sqlitepostgresqlmongodbredisaccess数据库文摘数据库其它首页mssql2005sql server 2008 清空删除日志文件(瞬间日志变几m)清理sql server 2008日志文件cannot shrink log file 2 的解决方案win2008中sqlserver2008 无法打开错误日志文件导致无法启动的解决方法sql server无法收缩日志文件的原因分析及解决办法sqlserver修改数据库文件及日志文件存放位置sql server 2005删除日志文件的几种方法小结sqlserver2005 没有日志文件(*.ldf) 只有数据文件(*.mdf) 恢复数据库的方法sql server 2008数据库日志文件收缩的方法sqlserver2005 中的几个统计技巧sql server 2005 management studio express企业管理器将英文变成sqlserver 2005 无法在服务器上访问指定的路径或文件sql server 移动系统数据库sql2005 日志清理 sql2005压缩清除日志的方法sql2005日志收缩方法使用sqlserver 2005/2008 递归cte查询树型结构的方法win2008中安装的mssql2005后无法访问的解决方法sqlserver2005安装提示服务无法启动原因分析及解决sql2005clr函数扩展 - 关于山寨索引sqlserver2005 安装图解教程以及超详细的sql2005图解安装全过程sql server 数据库清除日志的方法sql server 连接到服务器 错误23sql server安装出错,安装程序配置sql server 2005“备份集中的数据sqlserver2005安装提示服务无法启sqlserver2005 没有服务器名称的win7 32/64位系统下安装sql2005和sql server 2005安装时asp.net版sql2005的默认端口的修改方法mssql 大量数据时,建立索引或添加字段后保sql2005 四个排名函数(row_number、rank、win7系统安装mysql5.5.21图解教程sql2005 provider: 命名管道提供程序 errsql2005利用row_number() over实现分页功sql2008中通过dbcc opentran和会话查询事sqlserver2005 数据库同步配置图文详解sql2005 存储过程解密方法
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved