backup log [database name]
  to [device name]
if it return result was fail then:
backup log [database name]
  with truncate_only

解决方案 »

  1.   

    arrow_gx,怎么截断日志,我没有找到具体选项呀,麻烦说的清楚一点好吗?谢谢!
    另外,wrong—wingmoon你给的sql语句是备份用的吧,怎么能删除呢?
      

  2.   

    --假设test2为数据库名称
    日志文件已经很大的时候用方法一
    此方法适用于7.0和2000。
    1、在查询分析器中执行:
    exec sp_detach_db 'DB_Name','true'
    2、在我的电脑中将日志的物理文件xxx_Log.LDF改名。
    3、在查询分析器中执行:
    exec sp_attach_single_file_db 'DB_Name','C:\Program Files\Microsoft SQL Server\MSSQL\Data\DB_Name.MDF'
    4、如果上一步成功,将步骤3中改名后的文件删除。如果上一步不成功,改回原来的文件名,用sp_attach_db将数据库附加到服务器,然后用方法二。
    方法二
    6.X中
    DUMP TRANSACTION test2 with NO_LOG
    DUMP TRANSACTION test2 with TRUNCATE_ONLY
    DBCC SHRINKDB(test2)
    将上面的语句多次执行,直到数据库缩小。
    7.0和2000中
    backup log test2 with NO_LOG
    backup log test2 with TRUNCATE_ONLY
    DBCC SHRINKDATABASE(test2)
    将上面的语句多次执行,直到数据库缩小。
    上面的方法治标不治本,标本兼治要要用下面的方法。方法三:
    exec sp_dboption 'test2','trunc. log on chkpt.','on'
    --7.0中改为日志截断模式,2000中恢复模型改为简单恢复
    exec sp_dboption 'test2','autoshrink','on'
    通常用于测试环境。方法四:
    exec sp_dboption 'test2','trunc. log on chkpt.','off'
    --7.0中改为不处于日志截断模式,2000中恢复模型改为完全恢复
    exec sp_dboption 'test2','autoshrink','on'
    建立作业,每半个小时一次日志备份,每天一次完全数据库备份。
    在Log收缩到正常大小后,将autoshrink选项设置为off。
    通常用于真实环境。方法三和方法四适用于7.0和2000。
    6.x中没有autoshrink选项,exec sp_dboption 'test2','autoshrink','on'可改为建立作业定期收缩数据库(DBCC SHRINKDB)。
    在产品化系统中将autoshrink选项设置为开启状态并非明智之举(除非您真的需要这样做),这是因为,当您的系统正在忙于完成其它任务时,autoshrink选项可能会同时启动,从而降低系统运行速度。然而,对于那些数据库管理员无暇估计并且数据库尺寸有可能在您毫无察觉的情况下超出控制范围的桌面或远程系统来说,开启这一选项却是一种非常有效的措施。