SQL Server 2008压缩数据库日志文件



1、ALTER DATABASE 数据库名称 SET RECOVERY SIMPLE   --简单模式

2、数据库--任务--收缩--选择日志文件
3、ALTER DATABASE 数据库名称 SET RECOVERY FULL  --还原为完全模式

转:

压缩(清除)数据库日记文件:

  SQL2008清空删除日志:

   一、查看日志信息

         DBCC loginfo('MyDBName');

         status=0的日志,代表已经备份到磁盘的日志文件。

         status=2的日志,代表还没有备份。

         当收缩日志文件时,收缩掉的空间其实就是 status=0的空间,如果日志物理文件无法减小,这里一定能看到非常多status=2的记录。

  二、清除status=2的记录

         sp_removedbreplication 'MyDBName';

 三、对数据库日志文件进行收缩

       在SQL2008中清除日志就必须在简单模式下进行,等清除动作完毕再调回到完全模式。

  USE [master]

  Go

  ALTER DATABASE MyDBName SET RECOVERY SIMPLE WITH NO_WAIT

  GO

  ALTER DATABASE MyDBName SET RECOVERY SIMPLE --简单模式

  GO 

 

  USE MyDBName

  GO

  DBCC SHRINKFILE(N'MyDBName_log' , 11, TRUNCATEONLY)

  GO

 

  USE [master]

  GO

  ALTER DATABASE MyDBName SET RECOVERY FULL WITH NO_WAIT

  GO

  ALTER DATABASE MyDBName SET RECOVERY FULL --还原为完全模式

  GO

 

说明:

 1、如果执行上面语句时报“在 sys.database_files 中找不到数据库 'master' 的文件 'MyDBName_log'。该文件不存在或者已被删除。”的错误,原因是数据库的逻辑文件名和物理文件名不一致所造成的。

 2、查询数据库逻辑文件名

      SELECT file_id,name from sys.master_files WHERE database_id=db_id('wac_mall');

      SELECT file_id, name FROM sys.database_files;

      如果数据库通过备份文件还原并重新命名后,数据库的逻辑文件名和数据库名(物理文件名)不一致。

      修改数据库逻辑文件名:

  alter database MyDBName modify file(name=MyDBName_old, newname=MyDBName); 

  alter database MyDBName modify file(name=MyDBName_old_log, newname=MyDBName_log);

 

四、查询数据库服务器各数据库日志文件的大小及利用率

       DBCC SQLPERF(LOGSPACE);

五、查询当前数据库的磁盘使用情况

       Exec MyDBName.dbo.sp_spaceused;

六、查询数据库的数据文件及日志文件的相关信息

       select * from MyDBName.[dbo].[sysfiles];

七、查询各个物理磁盘分区的剩余空间

       Exec master.dbo.xp_fixeddrives;  

 

 SQL SERVER2005清空删除日志:

  Backup Log MyDBName with no_log
  go
  dump transaction MyDBName with no_log
  go
  USE MyDBName
  DBCC SHRINKFILE (2)
  go

 

SQL SERVER2000压缩日志:

 DUMP TRANSACTION MyDBName WITH NO_LOG
 BACKUP LOG MyDBName WITH NO_LOG
 DBCC SHRINKDATABASE(MyDBName)



  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值