Welcome 微信登录

首页 / 数据库 / MySQL / SQL Server 2008数据库清除日志的问题

SQL2008 的收缩日志   
由于SQL2008对文件和日志管理进行了优化,所以以下语句在SQL2005中可以运行但在SQL2008中已经被取消:  
(SQL2005)  
  1. Backup Log DNName with no_log   
  2. go   
  3. dump transaction DNName with no_log   
  4. go   
  5. USE DNName    
  6. DBCC SHRINKFILE (2)   
  7. Go   
(SQL2008):  
在SQL2008中清除日志就必须在简单模式下进行,等清除动作完毕再调回到完全模式。  
  1. USE [master]   
  2.     GO   
  3.     ALTER DATABASE DNName SET RECOVERY SIMPLE WITH NO_WAIT   
  4.     GO   
  5.     ALTER DATABASE DNName SET RECOVERY SIMPLE   --简单模式   
  6.     GO   
  7.     USE DNName    
  8.     GO   
  9.     DBCC SHRINKFILE (N"DNName_Log" , 11, TRUNCATEONLY)   
  10.     GO   
  11.     USE [master]   
  12.     GO   
  13.   
  14.     ALTER DATABASE DNName SET RECOVERY FULL WITH NO_WAIT   
  15.   
  16.     GO   
  17.   
  18.     ALTER DATABASE DNName SET RECOVERY FULL  --还原为完全模式   
  19.   
  20.     GO  
优点:此清除日志所运行消耗的时间短,90GB的日志在分钟左右即可清除完毕,做完之后做个完全备份在分钟内即可完成。 缺点: 不过此动作最好不要经常使用,因为它的运行会带来系统碎片。普通状态下LOG和DIFF的备份即可截断日志。 此语句使用的恰当环境:当系统的日志文件异常增大或者备份LOG时间太长可能影响生产的情况下使用。 AIX6下安装DB2 9使用SQL语句清空数据库所有表的数据相关资讯      SQL Server  SQL Server 2008 
  • Build2016喜讯:Linux用户注册微软  (03月17日)
  • SQL Server on Linux 理由浅析  (03月09日)
  • 管理SQL Server服务的登录(启动)  (02月13日)
  • 微软要抢甲骨文用户?从Oracle迁移  (03月13日)
  • 微软发布面向Linux的SQL Server预  (03月08日)
  • SQL Server 2008数据库同步札记  (01月29日)
本文评论 查看全部评论 (0)
表情: 姓名: 字数