zoukankan      html  css  js  c++  java
  • sql server 2012 如何收缩事务日志

    BACKUP Log zxta with no_log

    截断事务日志 sql2008 提示错误如下 
     BACKUP LOG 数据库名 WITH NO_LOG 
    Msg 3032, Level 16, State 2, Line 1
    此语句不支持一个或多个选项(no_log)。请查阅文档以了解所支持的选项。

    事务日志截断

    若要避免数据库的事务日志被填满,例行备份至关重要。在简单恢复模式下,备份了数据库后会自动截断日志,而在完整恢复模式下,只有备份了事务日志后方才截断日志。但是,截断过程有时也可能发生延迟。有关识别和应对各种延迟因素的信息,请参阅可能延迟日志截断的因素。

     注意  
    BACKUP LOG WITH NO_LOG 和 WITH TRUNCATE_ONLY 选项已废止。使用完整恢复模式或大容量日志恢复模式时,如果必须删除数据库中的日志备份链,请切换至简单恢复模式。有关详细信息,请参阅有关从完整恢复模式或大容量日志恢复模式切换的注意事项。

    SQL SERVER 2008 中 BACKUP LOG WITH TRUNCATE_ONLY 已不再被支持,要收缩数据库日志,首先需要通过将数据库恢复模式设置为 SIMPLE 来截断该文件。

    语句如下:

    复制代码
    --BACKUP log testDB with no_log
    
    USE testDB; 
    GO
    
    -- Truncate the log by changing the database recovery model to SIMPLE.
    
    ALTER DATABASE testDB SET RECOVERY SIMPLE;
    
    GO
    
    -- Shrink the trun cated log file to 1 MB.
    
    DBCC SHRINKFILE (testDB_Log, 1); 
    GO
    
    -- Reset the database recovery model.
    
    ALTER DATABASE testDB SET RECOVERY FULL; 
    GO
    复制代码

    也可以通过图形界面来完成。

    通过先备份日志,然后再收缩日志文件,如下:

    复制代码
     --先执行完整备份
    backup database mydb to disk='D:dbmydb.bak' WITH init;
    --再执行日志备份(默认追加)
    backup log mydb to disk='D:dbmydb.bak' 
    --修改数据库恢复模式
    ALTER DATABASE mydb SET RECOVERY SIMPLE
    --收缩日志至10MB 
    DBCC SHRINKFILE (mydb_Log, 10); 
    --修改数据库恢复模式
    ALTER DATABASE testDB SET RECOVERY FULL; 
  • 相关阅读:
    Android 内存溢出解决方案(OOM) 整理总结
    mysql数据库基本操作
    java基础集合框架——List、Set、Map概述(java集合一)
    Android基础常用日期操作工具类
    Android 中的adapter和作用以及常见的adapter
    Android中的SimpleAdapter
    android中selector使用
    Android 中消息处理机制-Looper、Handler、Thread(一)
    Android 中消息处理机制-Looper、Handler、Thread (二)
    android中MessageQueue , Message , Looper , Handler(三)
  • 原文地址:https://www.cnblogs.com/lpbca/p/6381853.html
Copyright © 2011-2022 走看看