早上检查数据发现,有一台数据的硬盘空间只剩下几MB。习惯性检查日志文件,发现日志文件居然暴增到了350多GB

首先备份日志,再收缩-------无变化。(实际上日志备份每1小时1挡,正常在跑.)

---------------------------------------------------------------------------

检查日志空间占用及不能截断原因:

DBCC SQLPERF(LOGSPACE)
GO
SELECT name,recovery_model_desc,log_reuse_wait,log_reuse_wait_desc
FROM sys.databases
GO

可以看到log_reuse_wait_desc 为REPLICATION

在该库下执行DBCC loginfo(),可以看到该数据库的所有VLF的状态都为2,也就是active状态。

DBCC loginfo() 

-----------------------------------------------------------------------

网上找到一篇钊吉兄的解决方法

sp_removedbreplication 'XXXX'

实际上由于这个数据库之前并没有搭建过复制。服务器应该也没有改过名字,所以该大招无效。

-----------------------------------------------------------------------

既然不是复制为何log_reuse_wait_desc 为REPLICATION呢?

疑凶转移到了CDC(CDC和复制实际上底层都是使用LogReader的Job来扫描日志)。

SELECT   IS_CDC_ENABLED
,CASE WHEN IS_CDC_ENABLED = 0
THEN 'CDC功能禁用'
ELSE 'CDC功能启用'END 描述
FROM SYS.DATABASES
WHERE NAME = 'XXXX'

该库果然开启了CDC,继续检查CDC Job的运行状态:

Declare @Job_ID as UNIQUEIDENTIFIER
select @Job_ID=Job_ID from msdb.dbo.sysjobs where name = 'cdc.XXXX_capture'
Exec master..sp_MSget_jobstate @Job_ID

返回值为 4 - 表示完成(成功或失败),正常情况下CDC Capture的Job应该是1(正在运行)才对。

断定cdc.XXXX_capture这个Job由于某种原因被异常中止了。

------------------------------------------------------------------------------------

至少日志不能截断的原因终于找到了。

手动启动cdc.XXXX_capture。此处省略NNNN分钟等待(在此提醒各位硬盘空间不够的童鞋,cdc捕获也需要大量磁盘空间哦!!!腾出足够的硬盘空间或者新建个log文件在其他盘吧)。

等待log_reuse_wait_desc状态变为LOG_BACKUP。

备份日志后收缩日志成功!~

打完收工。

log_reuse_wait_desc为REPLICATION,日志暴大,无法收缩的更多相关文章

  1. 一个哥们看到数据库日志不断增大 [log_reuse_wait_desc]为replication 之后的做法

    一哥们看到数据库日志不断增大 [log_reuse_wait_desc]为replication 之后的做法 一天那个哥们看到数据库日志暴涨,用sys.databases 视图看一下[log_reus ...

  2. sqlserver 事务日志过大 收缩方法解决方案

    sqlserver 事务日志过大,可能会导致备份失败或者数据库出现异常,所以要定期清除sqlserver 事务日志 建议:为了防止日志文件无限扩大,可以对日志文件作一些限制. 清除sqlserver事 ...

  3. MSSQL收缩事务日志&日志文件过大无法收缩

    原文:MSSQL收缩事务日志&日志文件过大无法收缩 一.MS SQL SERVER 2005 --1.清空日志 exec('DUMP TRANSACTION 数据库名 WITH NO_LOG' ...

  4. SQLServer某个库log日志过大,无法收缩日志文件 ,因为该文件结尾的逻辑日志文件正在使用

    问题描述: 今天看到user库日志备份方面很久,然后查看到user库这个log日志很大 图片是我已经解决了,然后现在可以收缩的大小 解决方法: 1.先备份user库日志,因为很大,所以要等很久,这个只 ...

  5. 分享工作中遇到的问题积累经验 事务日志太大导致insert不进数据

    分享工作中遇到的问题积累经验 事务日志太大导致insert不进数据 今天开发找我,说数据库insert不进数据,叫我看一下 他发了一个截图给我 然后我登录上服务器,发现了可疑的地方,而且这个数据库之前 ...

  6. Sqlserver数据库日志太大如何快速删除

    sqlserver使用在windows系统中,如果文件超上百GB了,我们还直接删除不了,这个问题我以前的apache日志就碰到过,至今还没删除呢,那么Sqlserver数据库日志太大如何快速删除呢,有 ...

  7. Oracle归档日志暴增排查优化

    1.ORACLE归档日志介绍 归档日志暴增是oracle比较常见的问题,遇到归档日志暴增,我们该如何排查: 归档日志暴增一般都是应用或者人为引起的 理解归档日志存储的是什么 如何排查归档日志暴增原因 ...

  8. hadoop日志太大

    hadoop jobtracker日志太大在jobtracker服务器上的mapred-site.xml中添加以下参数: <property> <name>mapreduce. ...

  9. discuz论坛apache日志hadoop大数据分析项目:清洗数据核心功能解说及代码实现

    discuz论坛apache日志hadoop大数据分析项目:清洗数据核心功能解说及代码实现http://www.aboutyun.com/thread-8637-1-1.html(出处: about云 ...

随机推荐

  1. zedboard如何从PL端控制DDR读写(五)

    有了前面的一堆铺垫.现在终于开始正式准备读写DDR了,开发环境:VIVADO2014.2 + SDK. 一.首先要想在PL端通过AXI去控制DDR,我们必须要有一个AXI master,由于是测试,就 ...

  2. 返回记录结构时,如果需要返回为nil时 应该怎么办。

  3. mysql高可用架构

    高可用   高可用(High Availabiltity) 应用提供持续不间断(可用)的服务的能力 系统高可用性的评价通常用可用率表示   造成不可用的原因 硬件故障(各种) 预期中的系统软硬件维护 ...

  4. error C2259: 'CException' : cannot instantiate abstract class

    vc6.0编译通过,VS2008则报错 解决方法: 把CException改为CUserException

  5. JAVA如何获取GUID

    UUID.randomUUID().toString().toUpperCase().replaceAll("-", "")

  6. Tank游戏需求分析兼项目计划发布!

    项目计划 1.   编写目的 此需求文档旨在明确本游戏项目的详细规则和操作方法,供用户理解项目实现的具体功能,并作为项目详细设计开发的基础. 2.   项目背景 市面上游许多魔性小游戏,让广大玩家根本 ...

  7. MySQL高可用方案选型参考

    http://imysql.com/2015/09/14/solutions-of-mysql-ha.shtml#rd?sukey=b0cb5c5b9e501303123bd48e86555c35e0 ...

  8. CSS线性渐变

    /*CSS线性渐变*/ FILTER: progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr=#ffffff, ...

  9. win8.1 vs2010 C++环境下 编译Android Adb.exe

    1 IntelliSense: cannot open source file "usb100.h"  adb 这是因为没有安装sdk造成的.win7下安装wdk,vs2010能够 ...

  10. jsp学习--如何定位错误和JSP和Servlet的比较

    一.如何查找JSP页面中的错误  JSP页面中的JSP语法格式有问题,导致其不能被翻译成Servlet源文件,JSP引擎将提示这类错误发生在JSP页面中的位置(行和列)以及相关信息.JSP页面中的JS ...