Exchange的循环日志和备份

很多Exchange管理员都碰到一个头痛的问题:日志文件霸占磁盘空间。

磁盘空间是有限的;但是Exchange只要在运行,日志文件的产生就是无限的,虽然每个只有5M大小,但是日志文件的产量很惊人的,大部分的磁盘空间都被日志文件霸占了;微软在设计Exchange的时候,提供了一个“启用循环日志”功能,启用这个功能后,系统只会产生5个5M大小的日志文件,循环更替使用,日志文件霸占磁盘空间的问题是被解决了,不过从这一刻开始,你就向上帝祈求吧,祈求你的Exchange数据库在你的任职期间一路平安。如果有个三长两短,mount不上去的时候,你就找个地方哭吧!因为你有一段时间内的邮件丢了。

我之这样肯定说丢了邮件是因为:

第一,我就不相信你有做到时时备份;

第二,除非你很幸运,你上次备份到现在,你的Exchange没有处理过一封邮件。

第三,数据库修复或恢复是需要日志文件的,你那5个循环日志能帮你多少?

就凭借以上三个原因,我绝对是举双手双脚建议你关闭“循环日志”功能的。

依据一、我自己的教训与经验;

依据二、微软官方对Exchange数据库的说明。

具体的原因,就请你看下面的内容,以下内容是根据微软官方资料说明以及自己对Exchange Server的管理经验整理出来的,供各位参考,以便更清楚的认识Exchange Server的存储系统,以及各部分的作用。

一、IS服务和ESE的层次关系

IS服务我们一定很了解了,它是Exchange服务器中重要的服务之一,它控制着对MS(Mail Store)和PF(public Folder)的存储操作请求,如果这个服务没有启动,Exchange服务器就是名存实亡。我们也知道,Exchange服务器的存储实际上是由叫ESE的数据库引擎来管理的。这个ESE引擎是微软专门为保存非关系型数据而开发的,目前在微软的很多产品中都有广泛的应用,如:AD数据库、DHCP、WINS、SRS等等。

Exchange的数据库是由EDB文件、STM文件和LOG文件组成的。在这些文件里,微软使用了“B+树”的内部数据结构。ESE的引擎的任务之一,就是当IS服务请求访问数据库的时候,把这些请求转化为对内部数据结构的读写访问。“B+树”的特点是能够对存储在硬盘上的数据提供快速访问能力。微软利用“B+树”作为ESE的后台结构的主要原因,就是尽可能的提高访问数据时I/O性能。当然,这些结构对于EXCHANGE STORE来说是透明的。

另外,作为一个数据库系统,ESE有责任提供事务级别的操作的支持,并维护数据库的完整性和一致性。对数据库系统而言,我们提到事务时,一般用ACID来描述事务的特点:

A - Atomic(原子的):事务必须是全或全无的操作,要么全部成功更新,要么全部不被更新。

C - Consistent(一致的):一个成功提交的事务必须使数据库处于一个一致的状态。

I - Isolated(孤立的):所有未提交的更改都必须能够和其他事务独立开来的。

D - Durable(持久的):当事务一旦提交,所做的更改必须存储到稳定的介质上,防止系统失败导致的数据库不一致。(此点非常重要!)

Atomic这个词,我查字典是“原子的;原子能的;极微的”解释,好像这里用这样翻译很不大对劲,感觉解释为“绝对的”比较好懂。

时间: 2024-09-27 01:17:29

Exchange的循环日志和备份的相关文章

exchange 2013 的日志被删除,显示用户为SYSTEM

问题描述 exchange 2013 的日志被删除,显示用户为SYSTEM 请大家帮忙看看,是什么原因,没有在exchagen上启用循环日志功能.为什么还有系统日志显示被系统删除呢,是不是有人为的原因呢?谢谢了. 解决方案 http://liulike.blog.51cto.com/1355103/1432366/

oraclerman备份日志单独备份和交叉校验

 手动备份归档日志 1.database01 [oraprod@db01 scripts ]$ pwd /usr/tivoli/scripts [oraprod@db01 scripts ]$ ls 1.txt nohup.out oraicr0.sh scheoraicr0.sh BKlog null oraicr1.sh scheoraicr0.sh.test BKlog.tar oraarch.sh oraicr1.sh.orig scheoraicr1.sh DBArchivelogBK

SQL Server 2008及更高版本数据库恢复方法之日志尾部备份_mssql2008

        经常看到有人误删数据,或者误操作,特别是update和delete的时候没有加where,然后就喊爹喊娘了.人非圣贤孰能无过,做错可以理解,但不能纵容,这个以后再说,现在先来解决问题.         遇到这种情况,一般都是没有做备份,不然也不会来发问了.首先要冷静,否则会有更大的灾难.直到你放弃. 解决方法:        对于这类问题,主要是找回误操作之前的数据,在2008之前,有个很出名的工具Log Exploer,听说还挺好用的,这个网上大把教程,这里就不多说了.但是唯一

SQLServer 2008以上误操作数据库恢复方法——日志尾部备份

原文:SQLServer 2008以上误操作数据库恢复方法--日志尾部备份 原文出处:http://blog.csdn.net/dba_huangzj/article/details/8491327 问题:          经常看到有人误删数据,或者误操作,特别是update和delete的时候没有加where,然后就喊爹喊娘了.人非圣贤孰能无过,做错可以理解,但不能纵容,这个以后再说,现在先来解决问题.         遇到这种情况,一般都是没有做备份,不然也不会来发问了.首先要冷静,否则会

SQL Server 2008事务日志传送备份的实施过程详解

熟悉微软企业级数据库软件朋友,了解作为微软一个重大的产品版本,SQL Server 2008除了许多新的特性和关键的改进,使得它成为至今为止的最强大和最全面的SQL Server版本外,其实SQL Server 2008中的备份方式也是其一大亮点,SQL Server 2008使用的备份一个数据库有多种方法,如差异备份和事物日志备份.事务日志备份将复制上次完全或以前的事务日志备份的所有数据变化.事物日志备份通常是非常快并且非常小,仅次于镜像的高可靠性备份方案,可以达到分钟级的灾难恢复能力. 下面

Linux日志自动备份脚本(日志截断、压缩)

只需要将日志文件移动到备份目录下 然后将日志压缩打包,并删除日志文件 最后重建日志文件 #!/bin/bash # nginx_app=/usr/local/nginx/sbin/nginx logs_dir=/usr/local/nginx/logs bak_dir=/tmp/logbak/ date=`date +%Y%m%d` # #先将日志文件移动到备份目录 cd $logs_dir echo "moving logs" mv *.log $bak_dir sleep 3 #

使用SQL Server 2008的事务日志传送功能备份数据库

一:系统要求 数据库服务器,名称Server-DW,Windows Server 2003 X64,安装SQL Server 2008,需要备份的数据库为"JKL_DW". 备份服务器,名称Server-ETL,Windows Server 2003 X32,安装SQL Server 2008. 二:准备工作 1.在Server-ETL上创建文件夹,用于存放备份数据库,此例中命名为"jklDW". 2.在Server-ETL上创建文件夹,用于存放为备份数据传送过来的

Oracle没有开启日志归档 备份Oracle数据库方法

故障现象: 没有开启Oracle日志归档,紧急情况下,如何进行Oracle数据库的冷备份? 解决方案: Oracle数据库的冷备份,整理如下: 什么时候必须用冷备份? 1. 数据库的模式为非归档模式 2. 用于现场保护 冷备份的过程: 1. 首先查看备份文件的位置: 数据文件.控制文件.日志文件 select name from v$datafile union all select name from v$controlfile union all select member from v$l

mysql二进制日志增量备份脚步

 代码如下 复制代码 #!/bin/bash #定义用户名及密码 host= user= userPWD= #定义数据库 database= mysqladmin -h$host -u$user  flush-logs daily_databakDir=/backdir #定义MYSQL数据目录 mysqlDataDir=/mysql5.5/data eMailFile=$daily_databakDir/email.txt #eMail= DATE=`date +%Y%m%d%H%M%S` l