数据库镜像中成功收缩事务日志文件 (转载)

数据库镜像中成功收缩事务日志文件

数据库已经运行在数据库镜像的时候怎么收缩事务日志文件呢??

我们有一个产品数据库发现事务日志文件已经到到了60GB,而数据库本身才30GB。需要收缩事务日志文件。

经过一个礼拜的观察,平均没有有1.5GB的日志,99%的日志是在晚上产生的,周末有16GB的日志,看来大部分是非工作时间批处理产生的。

我觉得收缩日志文件,怎么做呢??google来半天也没什么好的办法,大部分说是要切换到simple模式,重新构建数据库镜像数据库。这对产品环境影响比较大。

只有自己摸石头过河了:

先按自己的想法做:

BACKUP LOG dbname TO DISK=‘path/dbname_tx_log.timestamp‘;
GO
DBCC SHRINKFILE(‘dbname_Log‘, 4096)
GO只收缩到了50GB左右,报告有数据被使用。重复执行没有效果,google没有答案

我再次备份日志文件

BACKUP LOG dbname TO DISK=‘path/dbname_tx_log.timestamp‘;
GO
DBCC SHRINKFILE(‘dbname_Log‘, 4096)
GO

发现成功了

验证发现确实收缩到了4GB

dbcc sqlperf(logspace);

验证数据库镜像,一切正常,镜像端也同步收缩了(从数据库里查询没有变)

看来要2次备份才能释放文件末尾的事务信息

PS:我们要避免频繁收缩数据库和事务日志文件,周期新的备份日志文件,释放空间,让其稳定在一个合理的大小上比较重要

时间: 2024-07-30 10:08:22

数据库镜像中成功收缩事务日志文件 (转载)的相关文章

根据backup-my.cnf来生成新的事务日志文件

使用rpm包安装xtrabackup ## 安装依赖包yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-mysql rsync## 安装libev4包rpm -ivh libev4-4.15-7.1.x86_64.rpm## 安装percona-xtrabackuprpm -ivh percona-xtrabackup-24-2.4.4-1.el6.x86_64.rpm 为备份操作创建MySQL

sql server 2012 如何收缩事务日志

sql2008不再支持 BACKUP LOG 数据库名 WITH NO_LOG   语句 BACKUP Log zxta with no_log 截断事务日志 sql2008 提示错误如下 BACKUP LOG 数据库名 WITH NO_LOG Msg 3032, Level 16, State 2, Line 1此语句不支持一个或多个选项(no_log).请查阅文档以了解所支持的选项. 事务日志截断 若要避免数据库的事务日志被填满,例行备份至关重要.在简单恢复模式下,备份了数据库后会自动截断日

事务日志文件该设多大

既然事务日志如此重要,如果设置不当可能会带来性能问题,那么我们究竟该给事务日志分配多大空间呢?额,这个没有明确的答案,要具体情况具体对待. 一般做为正常的日常操作,建议为起始数据文件大小的 25%.因此,如果您的数据文件是 20 GB,那么日志文件设置为 5 GB.还要持续的监视它,看它是否会不断的增长并超越 5GB.正如我们之前说的,频繁的添加小的日志空间将会增加新的虚拟日志文件,过多的虚拟日志文件会带来性能问题.25%是一个正常操作的起点,如果你的系统每晚都要重建索引和其他高利用日志的操作如

在Spring的项目中配置Log4j存放日志文件到指定目录下

在Spring中使用LOG4J为日志输出的插件已有一段日子了,但有时候发现日志文件虽然是已经在根据自己的理想存放了,但还会有些莫名其妙的项目日志文件出现tomcat内(因为项目的日志文件都以项目命名嘛,所以比较容易区分这些log).这些令我纠结的日志文件,让我在改善一下LOG4J的配置.才发现,之前用的配置方式真是弱爆了. 1.先说自己比较理想的存放日志路径. 我比较喜欢把日志文件放在项目的WEB-INF下,然后当然有个文件夹叫logs.logs相信很多人都会存在在这样的目录下,但放在WEB-I

(转)对SQLSERVER数据库事务日志的疑问

本文转载自桦仔的博客http://www.cnblogs.com/lyhabc/archive/2013/06/10/3130856.html 对SQLSERVER数据库事务日志的疑问 摸不透SQLSERVER了 实验环境:SQLSERVER2005 SP4,Windows7 本来没什么心情写文章,反正没人看,关于我文章中提到的问题,有些可以从文章结尾的MSDN补充那里找到答案,而有些还没有答案 根据CSDN博客的这篇文章介绍,大家可以先看一下,然后再继续往下看,因为下面会引用到CSDN博客里的

翻译:SQL Server事务日志管理的阶段,1级:事务日志概述

原文链接:http://www.sqlservercentral.com/articles/Stairway+Series/73775/ 原文作者: Tony Davis, 2013/10/30 (第一次出版: 2011/06/17) 该系列 本文是SQL Server中"Stairway系列:事务日志管理的阶梯"的一部分 当事情进展顺利的时候,没有必要特别意识到事务日志的作用或工作原理. 你只需要确信每个数据库都有正确的备份机制. 当事情出错时,对事务日志的理解对于采取纠正措施是非常

SQL Server移除事务日志后sys.master_files依然存在记录问题

原文:SQL Server移除事务日志后sys.master_files依然存在记录问题 在SQL Server中移除了事务日志文件后,使用sys.master_files检查时发现,对应的事务日志文件记录信息依然存在sys.master_files里面,只是状态state_desc为OFFLINE.需要经过一段时间,这条记录在这个系统视图才会消失. DECLARE @db_name NVARCHAR(32); SET @db_name=N'TEST'; SELECT   f.database_

SQL Server-聚焦事务对本地变量、临时表、表变量影响以及日志文件存满时如何收缩(三十一)

前言 接下来我们将SQL Server基础系列还剩下最后几节内容结束,后续再来讲解SQL Server性能调优,我们开始进入主题. SQL Server事务对本地变量影响 事务对变量影响具体是指什么意思呢,换句话说就是当我们回滚事务和提交事务之后对本地变量是否起作用呢,下面我们来看下具体例子. PRINT '回滚事务之后测试' DECLARE @FlagINT INT SET @FlagInt = 1 PRINT @FlagInt ---- 此时变量值为1 BEGIN TRANSACTION S

数据库日志文件收缩

项目所使用的数据库通过备份还原来的,导致日志文件很大,占用了很大的空间,在网上搜索了日志收缩的信息,整理了下. --清空日志 DUMP  TRANSACTION  EWABOQDB  WITH NO_LOG --截断事务日志 BACKUP LOG EWABOQDB WITH NO_LOG --收缩日志 右键要收缩的数据库--任务--收缩--文件--文件类型选择日志--收缩方式中选择收缩至XXM输入确定 以上已完成日志文件的收缩,日志文件所占空间已减少 下面是对日志文件的增长规则进行了个限制 右键