zoukankan      html  css  js  c++  java
  • 数据库 '***' 的日志已满。请备份该数据库的事务日志以释放一些日志空间的解决办法

    数据库 '***' 的日志已满。请备份该数据库的事务日志以释放一些日志空间。
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

    异常详细信息: System.Data.SqlClient.SqlException: 数据库 '***' 的日志已满。请备份该数据库的事务日志以释放一些日志空间。

    源错误:

    [没有相关的源行]


    源文件: c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\72899b79\f8dff11c\App_Web_uff-9q5u.28.cs   
    行: 0  

    可能引起的原因是:统计,排序这类操作太多了,太频繁了。   解决办法:还是要优化语句。 

    在tempdb库属性中,在[企业管理器]中把[事务日志]的 [文件属性] 中的 [文件自动增长] 前面打上钩,并且查看一下你的日志文件所在磁盘空间够不够了。如果不够,备份后换个地方存
    [注:tempdb你数据库名称。]


    1.清空日志
     DUMP  TRANSACTION  库名  WITH  NO_LOG   

    2.收缩数据库文件(如果不压缩,数据库的文件不会减小
     企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件
      --选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
      --选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
    先提供一种复杂的方法压缩日志及数据库文件如下: 1.清空日志
      DUMP TRANSACTION 库名 WITH NO_LOG
    2.截断事务日志:
      BACKUP LOG 数据库名 WITH NO_LOG
    3.收缩数据库文件(如果不压缩,数据库的文件不会减小
      企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件
      --选择日志文件--在收缩方式里选择收缩至天天上网M,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
      --选择数据文件--在收缩方式里选择收缩至天天上网M,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
      也可以用SQL语句来完成
      --收缩数据库
      DBCC SHRINKDATABASE(客户资料)
      --收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfiles
      DBCC SHRINKFILE(1)
    4.为了最大化的缩小日志文件(如果是sql 7.0,这步只能在查询分析器中进行)
      a.分离数据库:
      企业管理器--服务器--数据库--右键--分离数据库
      b.在我的电脑中删除LOG文件
      c.附加数据库:
      企业管理器--服务器--数据库--右键--附加数据库
      此法将生成新的LOG,大小只有500多K
      或用代码:
      下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。
      a.分离
      E X E C sp_detach_db @dbname = ’pubs‘
      b.删除日志文件
      c.再附加
      E X E C sp_attach_single_file_db @dbname = ‘pubs’,
      @physname = ’c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf‘
    5.为了以后能自动收缩,做如下设置:
      企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩"
      --SQL语句设置方式:
      E X E C sp_dboption ’数据库名‘, ’autoshrink‘, ’TRUE‘
    6.如果想以后不让它日志增长得太大
      企业管理器--服务器--右键数据库--属性--事务日志
      --将文件增长限制为xM(x是你允许的最大数据文件大小)
      --SQL语句的设置方式:
      alter database 数据库名 modify file(name=逻辑文件名,maxsize=20)
    特别注意:
      请按步骤进行,未进行前面的步骤,请不要做后面的步骤
      否则可能损坏你的数据库.
      一般不建议做第4,6两步
      第4步不安全,有可能损坏数据库或丢失数据
      第6步如果日志达到上限,则以后的数据库处理会失败,在清理日志后才能恢复.

    另外提供一种更简单的方法,本人屡试不爽,建议大家使用。
    更简单的方法:
    1。右建数据库属性窗口--故障还原模型--设为简单
    2。右建数据库所有任务--收缩数据库
    3。右建数据库属性窗口--故障还原模型--设为大容量日志记录 

  • 相关阅读:
    关于在MAC上进行 LARAVEL 环境 Homestead 安装过程记录
    js 贷款计算器
    js 实现阶乘
    js 两点间距离函数
    composer Your requirements could not be resolved to an installable set of packages
    vue 项目优化记录 持续更新...
    vue 项目打包
    vue 真机调试页面出现空白
    vue 真机调试
    谈谈-Android状态栏的编辑
  • 原文地址:https://www.cnblogs.com/limshirley/p/1533558.html
Copyright © 2011-2022 走看看