• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    MS SQL Server数据库清理错误日志的方法
    SQL错误日志记录了数据库运行过程的遇到的各种问题及一些重要信息,作为排错需要,我们通常都不会主动去清理这些日志文件,只有每次重启服务器时,SQL会自动删除时间最老的日志文件,并新生成一个日志文件。
    通过在服务器上查看数据库的日志文件,发现存在大量的query notification dialog的信息,而且出现的频率非常的高,导致日志文件增大非常快。

    通过google了解到这个错误跟service broker的消息机制由关系,可以通过使用跟踪标记:DBCC TraceOn(4133,-1)可消除此信息。
    不过现在的当务之急是如何清掉这些日志信息,最简单的办法就是到SQL的日志目录中删除这些日志文件即可,不过考虑到删除之前需要停止SQL Server服务,可能会导致缓存中的数据丢失,因此,这不是推荐的做法。
    那么正确的做法应该怎样呢?
    执行如下语句:
    EXEC sp_cycle_errorlog;
    每执行一次SQL会自动初始化一个日志文件,将日志的内容清空,当SQL有7个日志文件时(默认),请执行7次该操作,每次会将日志文件时间最老那个清空。
    读者不必担心清空会消耗很长的时间,我这边的有个日志有40G,命令执行完后,该文件立即清空了。在时间紧急的情况,这种方式尤为方便。
    那么有没有办法设置每个日志文件的固定大小呢?
    查过这方面的资料,有人说可以在注册表中设置ErrorLogSizeInKb的大小,不过仅限于SQL2012,其他版本的数据库设置后不生效,这个我没有验证过,有兴趣的朋友可以一起讨论下。
    数据库无日志报错恢复
    造成原因,客户的SqlServer为2000版本,由于日志过大无人管理,没有空间了,然后客户分离数据库想删除日志(据说200G的日志=.=),然后显示分离出错,但是刷新后数据库却已经分离,删除日志后,数据库无法附加,经过在网上查询,总结出以下办法,幸好有用的表都没有损坏,只有统计表数据损坏,不过没关系反正作业会重置这些表的.
    --确保企业管理器没有打开任何数据库
    --设置数据库紧急状态
    use master
    go
    sp_configure 'allow updates',1
    go
    reconfigure with override
    go
    --设置数据库为紧急模式
    update sysdatabases set status=-32768 where dbid=DB_ID('Procurement')
    --重建数据库日志文件
    dbcc rebuild_log('Procurement','D:\Procurement_log.ldf')
    --验证数据库一致性(可省略)
    dbcc checkdb('Procurement')
    --设置数据库为正常状态
    sp_dboption 'Procurement','dbo use only','false'
    --最后一步,我们要将步骤E中设置的“允许对系统目录直接修改”一项恢复
    sp_configure 'allow updates',0
    go
    reconfigure with override
    go
    现在你的数据库就允许连接了,现在可以查看一下每个表的数据是否有问题,如果有问题,只能找专业的数据回复了。
    您可能感兴趣的文章:
    • Win2008中SqlServer2008 无法打开错误日志文件导致无法启动的解决方法
    • 关于 SQL Server ErrorLog 错误日志说明
    • 清除SQL SERVER错误日志出现操作系统错误的解决方法
    • sql server中错误日志errorlog的深入讲解
    上一篇:SQL查询某列指定长度的字符串多余的用省略号来表示
    下一篇:C#连接Excel2003和Excel2007以上版本做数据库的连接字符串
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    MS SQL Server数据库清理错误日志的方法 SQL,Server,数据库,清理,错误,