• 数据库日志文件太大如何处理


    今天遇到一个状况,一个数据库的日志文件过大,导致占用了过多的服务器硬盘空间。需要对于数据库的日志文件进行瘦身。网上查询了一下资料,分享几个链接。

    由于SQL2008对文件和日志管理进行了优化,所以部分在SQL2005中可以运行,在SQL2008中已经被取消。

    如:DUMP TRANSACTION 库名 WITH NO_LOG

    参考文章

    http://jimshu.blog.51cto.com/3171847/932669

    http://www.cnblogs.com/TLLi/archive/2012/07/15/2592042.html

    http://www.cnblogs.com/tylerdonet/p/3550434.html

    http://www.cnblogs.com/qingyuan/p/4238071.html

    http://www.cnblogs.com/Joe-T/archive/2011/12/22/2298051.html

    自己总结

    1.收缩数据(一种是界面操作,一种是执行sql语句,个人倾向于执行sql语句)

    界面操作

    第一,

    -- 修改数据为SIMPLE类型

    ALTER DATABASE 数据库名 SET RECOVERY SIMPLE   

    GO

    第二,

    选择要收缩的数据库,右键-->任务-->收缩-->文件

    第三,

    ALTER DATABASE 数据库名 SET RECOVERY FULL
    GO

    sql语句执行

    -- 检查日志文件名称
    USE 数据库名
    SELECT NAME, size FROM sys.database_files

    一般_log 就是日志文件,记录一下

    最终执行语句

    USE master
    GO
    ALTER DATABASE 数据库名 SET RECOVERY SIMPLE WITH NO_WAIT
    GO
    ALTER DATABASE 数据库名 SET RECOVERY SIMPLE   
    GO
    
    USE 数据库名 
    GO
    DBCC SHRINKFILE (N'数据库日志名' , 2, TRUNCATEONLY)
    GO
    
    USE master
    GO
    ALTER DATABASE 数据库名 SET RECOVERY FULL WITH NO_WAIT
    GO
    ALTER DATABASE 数据库名 SET RECOVERY FULL   
    GO

    以下是常用语句

    -- 检查日志文件名称
    USE 数据库名
    SELECT NAME, size FROM sys.database_files

    -- 查看数据库的recovery_model_desc类型
    SELECT NAME, recovery_model_desc FROM sys.databases

    -- 如果是FULL类型,修改为SIMPLE类型  
    ALTER DATABASE ChinaKnowledgeDB SET Recovery simple

    -- 收缩日志文件大小(单位是M)
    DBCC SHRINKFILE (N'ChinaKnowledgeDB_log' , 10)

    -- 恢复成FULL类型
    ALTER DATABASE ChinaKnowledgeDB SET Recovery FULL

    总结:收缩日志一定要把数据变为简单模式

  • 相关阅读:
    iOS MDM证书制作
    iOS 跳转到设置界面
    创建自己的远程私有库
    制作属于自己的cocoapod仓库和spec
    iOS 推送通知证书制作
    自定义导航栏之滑动返回
    xcode使用xib创建cell ,出现崩溃问题
    Xcode使用xib拖线时出现: could not insert new outlet connection
    2014年糯米网校招测试工程师题目解析
    JAVA操作LDAP的详解(JLDAP)
  • 原文地址:https://www.cnblogs.com/tfiremeteor/p/5811190.html
Copyright © 2020-2023  润新知