技术分享
Exchange 备份问题汇总
2017-06-04
DAG备份:
Exchange Server 2010中的DAG(数据库高可用性组)由两台或者多台邮箱服务器组成,通过DAG可以使邮箱数据库在两台和多台之间进行同步,DAG基于Windows故障转移群集,当其中一台邮箱服务器发生故障的时候,不会对用户访问邮箱造成影响。
但是如果一台服务器的副本不全,怎么备份?
#这个是否和管理员设置有关,Server1有DB1,DB2,DB3副本,Server2只有DB1,DB2,
日志:
为保证速度,用户的邮件修改时,是在内存完成。但要数据写入到磁盘,才不会丢失数据,但业务繁忙时,没法及时写入,所以系统使用日志来记录,日志文件很小就5M,所以写入很快。 内存修改完了,这些记录就会写入日志,日志时在硬盘上的,所以就保证不会宕机丢失数据。所以日志的作用:保证了事务的持久性。
日志的第二个作用:保证系统备份和恢复的完整性。当然前提是没有使用循环日志!
启用循环日志记录主要目的是用来节省磁盘空间。循环日志记录让Exchange Server在事务日志文件包含的事务日志提交到数据库之后覆盖这些事务日志文件。但是,如果启用循环日志记录,则可以将数据只恢复到上一完整备份。例如,当客户端使用POP3方式将邮件下载到本地,可以启用循环日志记录,这种情况下不进行备份。为防止日志累积,需要启用循环日志记录。在正常的生产环境中,建议不启用循环日志记录。
假设我在凌晨3点完成了一次FULL BACKUP,备份完成后,系统正常运行,到下午4点的时候,系统突然崩溃。我用凌晨3点的数据恢复了数据库,那么从凌晨3点到下午4点这段时间的数据哪里去找呢?这个时候就只能依赖于日志了。当完成数据库恢复后,系统会自动的跟踪到关联的日志文件,如果发现有比当前数据库还新的日志存在,系统就会自动的按照日志的顺序将更改写回到数据库中去。因此这样一来,从凌晨3点到下午4点的数据变更就被完整的恢复了。
用户要修改邮箱中的内容时,被修改的内容首先被提取出来放到内存中,实际的修改是发生在内存里的,这是众所周知的,当修改完成后,这些内容必须被尽快写回存储介质,这样才表示一个事务成功完成了。
从事务的描述中我们可以看到,事务是具有Atomic特性的,为了保证数据库的一致和完整,事务必须全部成功或全部失败,如果事务失败,则必须回滚到事务开始的状态。而当邮件在内存中修改完成后,此时事务并没有完成,因为还没有写到磁盘上。一旦系统崩溃,这些修改就丢失了。所以要确保事务修改完成,必须尽快将修改写回到数据库里去(也就是硬盘上),这也是事务的持久性要求。
当系统出现高负载的繁忙状态时,这将是一个非常大的瓶颈,也就无法做到“尽快”了。那怎么办呢?所以数据库系统使用了日志文件,而日志文件只有5MB大小,向这些文件写入修改肯定是很快速的,因此当内存的修改完成后,这些结果就会立即写入日志中,以保证了事务的持久性。当成功写入日志后,该事务就成功完成了(现在在硬盘上了,不会因为当机丢失了)接下来,ESE引擎会在后台慢慢将这些日志里的修改记录写回真正的数据库里去(这对用户来说已经不是那么重要了,这时候可能你的邮件都已经到对方了),这就是日志的第一个作用:确保事务在第一时间(尽可能快的)保存到非易失存储器上(磁盘上),提供了事务持久性支持。
关于Exchange备份中VSS功能:
Exchange Server 现在只支持基于VSS备份,从Exchange Server 2010开始,ESE流应用程序接口就已经不再可用。
VSS
卷影副本拷贝服务在Windows Server 2008和更新版本的Windows系统中提供,这个机制是创建一个数据的一致性的时间点副本称为卷影副本。
可以为以下几个目的使用VSS:
1、 为打开的文件和应用程序创建一个一致性的备份
2、 为共享文件夹创建卷影副本
3、 快速还原和恢复文件与数据
4、 创建便携式卷影副本,使用硬件去提供备份、测试场景
VSS备份工作机制
这个备份解决方案是使用VSS写入磁盘的一个卷影副本,然后Exchange Server 会创建一个卷影拷贝备份而不是工作在磁盘,所以,备份工作不会打断正常的操作。
当备份开始时,将产生一个包含卷状态的备份影子,甚至如果在备份过程中数据更改了,所有的数据在备份中都是一致的,并且它反映卷的状态在某个时间点上,它通知应用程序和服务关于这些后期的更改,Exchange 可以为备份做好准备。
支持Exchange Server 2013的技术
只有基于VSS的Exchange 感知备份软件才支持Exchange Server 2013,以下的Exchange 感知程序可以用去备份Exchange 数据库:
1、 Windows Server Backup
2、 Data Protection Manager
3、 第三方基于VSS的程序
备注:Windows Server Backup 工具和System Center Data Protection Manager等都是VSS请求者。非微软的VSS请求者包含几乎所有运行在Windows上的备份软件。
VSS概念;
卷影拷贝服务(Volume Shadow Copy Service,VSS)是Microsoft在Windows Server 2003中开始引入的服务,它能让用户在没有IT专业人员协助的情况下,更轻松地恢复丢失的文件。此外,VSS还提供了更灵活的备份方案。结合了良好的规划以及最新的备份和恢复技术,卷影拷贝服务将对灾难恢复计划的增强很有帮助。VSS甚至让小企业也有恢复丢失数据的能力。其实,VSS还为大企业提供比基本工具更多的恢复选项,并帮助其减少数据恢复任务中IT专业人员的数量。
VSS原理:
VSS是Windows 下的快照技术,由Requestor, Writer, 和Provider组成,同时集成了COM技术。
因此,它不再是单单在卷级上的block进行处理,而是和各种系统应用相关联,比如SQL,EXCHANGE,AD等等。从而使得在不关机,也不停止应用的情况下,做备份。
以上步骤是按照Windows Server 2008的帮助文档翻译而成:
要创建一个卷影复制需要,requester,writer,provider要执行一下步骤:
1. Requester请求VSS(卷影复制服务)枚举writers,收集writers的信息,为创建卷影复制做准备工作。
2. 每个Writer创建一个关于组件和需要备份的数据存储的XML描述并将其发送给VSS。VSS将writer的描述提供给requester,再由requester选择要备份的组件。
3. VSS通知所有writer准备创建卷影复制所需要的数据。
4. 每个writer根据情况准备数据,例如完成所有打开的事务,回滚事务日志,刷新缓存。当准备好卷影复制的数据,writer通知VSS。
5. VSS让writers暂时冻结程序的I/O写请求(I/O读请求仍然可用)几秒钟,以用来创建卷影复制。冻结时间不能超过60秒。VSS刷新文件系统的缓存,然后冻结文件系统,用来保证记录的系统元数据的正确性以及将被卷影复制的数据的写入顺序的一致性。
6. VSS通知requester在10秒内创建卷影复制。在这期间,文件系统I/O写请求仍然处于冻结状态。
7. VSS解冻文件系统的I/O写请求。
8. VSS通知writers解冻应用程序的I/O写请求。这时应用程序重又可以向进行卷影复制的磁盘写入数据。
备注:
如果writers处于冻结状态的时间超过60秒或者providers没有在10秒内完成卷影复制的提交,创建卷影复制的操作会被中止。
9. Requestor可以选择重试或者通知管理员稍后重试等操作。
10. VSS在卷影复制成功创建之后把卷影复制的位置信息返回给Requestor。某些情况下,卷影复制可被临时设置成可读写的状态,以便VSS或者其它应用在完成创建卷影复制以前修改其中的内容。待修改完成后,卷影复制被设为只读状态。这个阶段被称之为“自动恢复”(Auto-Recovery),这步是用于取消任何在卷影复制创建之前未完成的进行在要做卷影复制卷上的文件系统或应用程序事务。
VSS注意事项:
这一服务唯一的缺点是你需要为每一个卷影留出更多的磁盘空间,因为你必须在某处存储这些拷贝。不过,因为VSS使用指针数据,这些拷贝占用的空间要比你想象的小得多,你可以有效地存储这些拷贝。
备份VSS快照产生干净的数据镜像以及恢复时间点拷贝的能力。你既可以恢复整个快照,也可以取你所需,或者你还可以使用VSS备份工具来恢复单独的文件和文件夹。
DAG:
DAG 是一组邮箱服务器(最多可包含 16 个邮箱服务器),其中承载了一组数据库,可提供从影响单个服务器或数据库的故障中自动执行数据库级恢复的功能。
活动管理器在 DAG 中的每台服务器上运行,用于管理切换和故障转移。
实现DAG数据库高可用有以下参考信息:
1、 要求操作系统是Windows Server 2008 R2 或Windows Server 2012、Windows Server 2012 R2中的故障转移群集功能。
虽然DAG的实现需要故障转移群集 ,但是Exchange Server 2013并不直接使用Windows 故障转移群集管理器去执行数据库故障转移,相反,DAG技术会使用“活动管理器”去控制故障转移,Windows 故障转移应用于其他场景,比如整个服务器都失败了。
所以部署DBAG需要AD server
2、 在Exchange Server 2013引入的连续复制技术, 支持了新的高可用功能,比如,数据库复制、数据库移动等。
3、可以在任何时候添加邮箱服务器,而不用考虑它是否要做为DAG成员。
4、 因为DAG使用了Windows 故障转移的一些功能,比如心跳等,所以Exchange Server 2013 邮箱服务器必须安装在Windows Server 2012R2 数据中心版和标准版Windows Server 2012 数据中心版和标准版、 Windows Server 2008 R2 企业版和数据中心版上。
5、 允许在DAG内移动单个数据库,而不影响其他数据库
6、 允许最多创建单个数据库的16个副本,所以我们可以添加16个服务器到DAG中,但是这些数据库副本必须存储在相同的路径,比如全部是D:\DB
7、 DAG定义了复制的边界,因为只能在DAG之内进行复制,复制信息是不能在DAG之外进行的。
8、 禁止添加Exchange Server 2010服务器到Exchange Server 2013的DAG中。
理解DAG是如何工作
活动的数据库副本在DAG中进行连续性复制,将数据复制到被动数据库中以保持数据一致,DAG利用Windows 操作系统的故障转移功能,它依赖“活动管理器”组件去维护DAG中的数据库。
以下是数据库的特征:
1、 单个数据库可以在DAG成员中进行切换或转移到其他成员服务器上,但是同时只能有一个活动的副本。
2、 在任何时间内,一个副本可以是复制源或复制目标,但不能同时是两者
3、 每台服务器不能同时承载单数据库多于一个的多个副本
4、 并不是所有的数据库都必须有相同数量的副本,在一个16节点的DAG中,一个数据库可以有16个副本。
DAG技术使提数据库出现异常时可以切换到其他DAG成员服务器上,使业务不中断。
DAG和备份的概念不一样,备份是记录某一时间点的数据库状态,同时会把事务日志replay到EDB数据库文件中;DAG是把事务日志同步到每一个数据库的副本中。当然在我备份主节点的时候,副本节点的日志文件也会减少。
回到你的问题,如果4台服务器全部宕机(数据库全部坏掉),就只能从备份恢复了。
在Exchange 2013中,传输高可用不仅仅只是消息冗余,Exchange 2013尝试通过两种功能结合来做到这点:卷影冗余和安全保障;
卷影冗余在邮件被接收之前做个冗余副本,在邮箱服务器上安全保障将被成功处理。
Windows2010中,如果在邮件还没有投递到目的地并且服务器发生了失败后,邮件不会丢失,在 Exchange 2013已经得到了提高,它将会在发送成功之前自动的为收到的邮件创建冗余副本。
在Exchange Server 2013中,发送服务器支持卷影冗余是不再必须的,因为创建卷影冗余是每时每刻都在自动创建,默认情况下,卷影冗余将在两天后删除。

- 标签:
-
技术分享