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
现在你的数据库就允许连接了,现在可以查看一下每个表的数据是否有问题,如果有问题,只能找专业的数据回复了。

(0)

相关推荐

  • 一段压缩MS SQLServer日志的语句

    复制代码 代码如下: --==================================================================== -- SQL:数据库压缩语句 ---------------------------------------------------------------------- -- Description: 压缩数据库 -- Modify: x.zhong --=======================================

  • MS SQL SERVER 数据库日志压缩方法与代码

    MS SQL性能是很不错的,但是数据库用了一段时间之后,数据库却变得很大,实际的数据量不大.一般都是数据库日志引起的!数据库日志的增长可以达到好几百M. 网上的MSSQL虚拟主机价格也贵,要想不让数据库超容,只好压缩下数据库日志,或者删除数据库日志. 下面我给大家介绍一个方法 1.打开企业管理器 2.打开要处理的数据库 3.点击菜单>工具>SQL查询分析器 4.在输入窗口里面输入: 复制代码 代码如下: DUMP TRANSACTION [数据库名] WITH  NO_LOG  BACKUP 

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

    SQL错误日志记录了数据库运行过程的遇到的各种问题及一些重要信息,作为排错需要,我们通常都不会主动去清理这些日志文件,只有每次重启服务器时,SQL会自动删除时间最老的日志文件,并新生成一个日志文件.通过在服务器上查看数据库的日志文件,发现存在大量的query notification dialog的信息,而且出现的频率非常的高,导致日志文件增大非常快.通过google了解到这个错误跟service broker的消息机制由关系,可以通过使用跟踪标记:DBCC TraceOn(4133,-1)可消

  • 易语言调用MS SQL SERVER数据库方法

    Microsoft SQL SERVER 数据库存储过程,根据其输入输出数据,笼统的可以分为以下几种情况或其组合:无输入,有一个或多个输入参数,无输出,直接返回(return)一个值,通过output参数返回一个或多个值,返回一个记录集(recordset).无论哪一种情况,无论输入输出参数多复杂的存储过程,都可以在易语言中正确调用,准确的传入参数,并获取正确的输出数据.下面我(liigo)分多种情况介绍在易语言中调用MS SQL SERVER数据库存储过程的详细方法,使用数据库操作支持库(eD

  • SQL SERVER 2000 9003错误的解决方法(只适用于SQL2000)

    关于SQLSERVER 9003错误解决方法 只适用于SQL2000: "无法打开新数据库 'POS'.CREATE DATABASE 中止. (Microsoft SQL Server,错误: 9003)" 看是9003错误,就想到可能是由于日志文件的原因,再看数据库文件可能损坏,于是想到dbcc checkdb指令. 方法如下: 1.我们使用默认方式建立一个供恢复使用的数据库(如pos).可以在SQL Server Enterprise Manager里面建立. 2.停掉数据库服务

  • 配置SQL Server数据库恢复模式(2种方法)

    下面主要介绍配置SQL Server数据库恢复模式的两种方法. 用T-SQL设置恢复模式 你可以使用"ALTER DATABASE"命令加"SET RECOVERY"语句来修改数据库的恢复模式.例如,下面的查询语句把"AdventureWorks"数据库的恢复模式设置为完全恢复模式. ALTER DATABASE AdventureWorks SET RECOVERY FULL ; 你可以查询"sys.databases"的目

  • ms SQL server数据库备份、压缩与SQL数据库数据处理的方法

    一.备份数据库 1.打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server 2.SQL Server组-->双击打开你的服务器-->双击打开数据库目录 3.选择你的数据库名称(如论坛数据库Forum)-->然后点上面菜单中的工具-->选择备份数据库 4.备份选项选择完全备份,目的中的备份到如果原来有路径和名称则选中名称点删除,然后点添加,如果原来没有路径和名称则直接选择添加,接着指定路径和文件名,指定后点确定返回备份窗口,接着点确定进行备份 二.还原

  • 将MS SQL SERVER数据库运行在普通用户(独立用户)状态下的设置方法终结篇

    看了我们网上的很多文章,整理了如下步骤,基本上可以说是终结解决方法了,这里给详细的整理下了, 希望可以帮助更新的朋友,让我们的服务器更加安全.我们奉献. 首先是大家已经安装好了sqlserver 企业版. 第一步: Win2003 MSSQL以普通用户运行安全设置篇 这个里面主要是讲解了,普通用户的创建与设置,但需要注意的是,权限的设置 C盘需要以下权限: C:\administrators 全部权限 System 全部权限 IIS_WPG只读与运行的权限(只应用在当前文件夹) SQL2000的

  • sql server数据库高可用日志传送的方法

    一. 日志传送概述 SQL Server使用日志传送,可以自动将主服务器的事务日志备份发送到一个或多个辅助数据库上.事务日志备份分别应用于每个辅助数据库. 可选的第三个服务器实例(称为"监视服务器")记录备份和还原操作的历史记录及状态,还可以在无法按计划执行这些操作时引发警报. 可选的监视服务器,记录备份和还原操作的历史记录及状态. 下面话不多说了,来一起看看详细的介绍吧. 优点 提供灾难恢复解决方案 支持对辅助数据库的受限的只读访问权限 允许用户定义日志发送的延迟时间(如果主数据库上

  • 在JSP中访问MS SQL Server数据库

    下面介绍如何用SQL Server实现一个动态FAQ(常见问题及答案)网站.首先建立一个数据库faq,其中的表faqs有字段id(int,自动增量,并设为主关键字).subject(varchar,200).answers(text).这个表中可以存放一些编程知识的常见问题及答案.然后,在Control Panel(控制面板)的ODBC Datasource模块中加入System DSN,取名faq,并指向faq数据库.创建一个JavaBean,名为faq.java,并保存在C:\JBuilde

  • 获取SQL Server数据库元数据的几种方法

    元数据简介 元数据 (metadata) 最常见的定义为"有关数据的结构数据",或者再简单一点就是"关于数据的信息",日常生活中的图例.图书馆目录卡和名片等都可以看作是元数据.在关系型数据库管理系统 (DBMS) 中,元数据描述了数据的结构和意义.比如在管理.维护 SQL Server 或者是开发数据库应用程序的时候,我们经常要获取一些涉及到数据库架构的信息: ◆某个数据库中的表和视图的个数以及名称: ◆某个表或者视图中列的个数以及每一列的名称.数据类型.长度.精度

随机推荐