数据库日志收缩大小

/*--特别注意

请按步骤进行,未进行前面的步骤,请不要做后面的步骤    
否则可能损坏你的数据库.    
--*/

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

或用代码:      
下面的示例分离   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中可以用下面的方法来减少日志:  
1.将数据库恢复模式设置为简单(最小日志记录)  
alter   database   库名   set   recovery   simple

2.将设置数据库日志自动收缩  
alter   database   库名   set   auto_shrink   on

3.创建一个作业,定期执行下面的语句来清理日志:  
backup   log   库名   with   no_log

数据库日志收缩大小

时间: 2024-12-16 20:26:53

数据库日志收缩大小的相关文章

sqlserver 数据库日志收缩失败解决办法

1.数据库-收缩-日志-可以收缩百分之90多,但是收缩完,容量并没有减少.查资料有可能日志是被占用了,暂时无法收缩: 2.select   log_reuse_wait_desc  from   sys.databases  where   name ='HIS_CDC'  查询出来是replication,想到之前开启过cdc,后来不用,只是禁用了作业,cdc忘记禁用了: a.先查询哪些库开启了cdc  select * from sys.databases where is_cdc_enab

SqlServer 数据库日志无法收缩处理过程

今天按常用方法收缩一个测试用的数据库日志,发现没法收缩! dbcc sqlperf(logspace) USE [dbname] GO ALTER DATABASE [dbname] SET RECOVERY SIMPLE WITH NO_WAIT GO DBCC SHRINKFILE (N'dbname_log' , 0, TRUNCATEONLY) GO DBCC SHRINKDATABASE(N'dbname' ) GO 日志大小还是一样. DBCC OPENTRAN 查看是否打开的事务.

数据库日志文件收缩

项目所使用的数据库通过备份还原来的,导致日志文件很大,占用了很大的空间,在网上搜索了日志收缩的信息,整理了下. --清空日志 DUMP  TRANSACTION  EWABOQDB  WITH NO_LOG --截断事务日志 BACKUP LOG EWABOQDB WITH NO_LOG --收缩日志 右键要收缩的数据库--任务--收缩--文件--文件类型选择日志--收缩方式中选择收缩至XXM输入确定 以上已完成日志文件的收缩,日志文件所占空间已减少 下面是对日志文件的增长规则进行了个限制 右键

数据库日志无法收缩

在论坛里面经常有人遇到,数据库日志文件无法收缩的问题.这里详细介绍下这个问题怎么解决. 处理 遇到日志文件无法收缩的问题,第一步肯定是先运行下面的命令: SELECT name,log_reuse_wait_desc FROM sys.databases where name='dbname' 对应的log_reuse_wait_desc 说明如下图:

SQLServer数据库如何收缩日志空间?

SQLServer数据库如何收缩日志空间 说明:  SQLServer数据库日志会越来越大,尤其是服务器空间紧张时,你不得不收缩日志来放出部分空间,下面说方法. 版本:  SQLserver 2008 R2 方法: 新建查询,执行脚本.脚本如下 注意 红色部分需要修改成相应的数据库名. 绿色部分需要修改成相应数据库日志名称 USE [USRINF]GOALTER DATABASE USRINF SET RECOVERY SIMPLE WITH NO_WAITGOALTER DATABASE US

批量收缩数据库日志文件

declare @sql nvarchar(max),@paramDef nvarchar(100) declare dbname scroll cursor for select name,recovery_model from sys.databases where database_id>7 open dbname declare @dbname varchar(50),@recovery_model int,@db_log_file varchar(100) set @dbname=''

数据库日志文件(收缩管理)

sqlserver数据库的日志文件其实是由很多个逻辑上的日志文件组成,我们可以通过命令看一下数据库日志文件 ?可以看到的是sqlserver数据库日志文件是由很多文件组成的,当数据库日志文件已满的时候,自动增长就会生成新的文件,这些文件叫做VLF(虚拟日志文件),所以说在这个层面上来说,我们可以简单的把数据库日志理解为一列火车,一节一节的车厢理解为数据库的虚拟日志文件,当然如果不够存的下事务日志的时候,就要扩充,就是加一个火车厢. 所以说数据库事务日志其实是由很多个独立的虚拟事务日志文件组成的,

如何收缩数据库日志文件大小

数据库的日志文件(*.ldf)越来越大,怎么办? 收缩吧.收缩日志文件的操作真不简单哟,还跟数据库的恢复模式有关. 一."简单恢复模式"时的日志收缩 1. 截断日志 当数据库的恢复模式为"简单"的时候,日志文件会在以下情况被截断:(1)完整备份 (2)遇到检查点(checkpoint) 2. 手动收缩日志文件 当日志被截断后,日志文件的内部空间就会标记为"可复用",因此日志文件就不需要持续增长.手动收缩的操作可以参考本文稍后的说明. 二.&quo

收缩sql server数据库日志

项目中,可能数据库(sql server数据库)日志太多,占了很多磁盘空间,可以通过收缩数据库日志,减少日志文件大小. 下面以Northwind数据库为例: 1.把数据库的恢复模式设置为“简单模式”: 选择Northwind数据库-右键-属性, 在弹出的数据库属性窗口中,选择“选项”-设置恢复模式为“简单”, 点击确定按钮,如下图: 2.收缩数据库日志: 选择Northwind数据库-右键-任务-收缩-文件,如下图: 在弹出的“收缩文件”窗口里,文件类型选择“日志”,收缩操作勾选“释放未使用的空