SQL Server之数据库镜像

备份方式

    时效性分:热备、温备、冷备;

    体量分:全备、增量备份、差异备份;

数据库镜像-----概述

        数据库镜像维护一个数据库的两个副本,这两个副本必须驻留在不同的 SQL Server 数据库引擎 服务器实例上。 通常,这些服务器实例驻留在不同位置的计算机上。 启动数据库上的数据库镜像操作时,在这些服务器实例之间形成一种关系,称为“数据库镜像会话”。
        其中一个服务器实例使数据库服务于客户端(“主体服务器”), 另一个服务器实例则根据镜像会话的配置和状态,充当热备用或温备用服务器(“镜像服务器”)。 同步数据库镜像会话时,数据库镜像提供热备用服务器,可支持在已提交事务不丢失数据的情况下进行快速故障转移。 未同步会话时,镜像服务器通常用作热备用服务器(可能造成数据丢失)。
在“数据库镜像会话”中,主体服务器和镜像服务器作为“伙伴”进行通信和协作。 两个伙伴在会话中扮演互补的角色:“主体角色”和“镜像角色”。 在任何给定的时间,都是一个伙伴扮演主体角色,另一个伙伴扮演镜像角色。 每个伙伴拥有其当前角色。 拥有主体角色的伙伴称为“主体服务器”,其数据库副本为当前的主体数据库。 拥有镜像角色的伙伴称为“镜像服务器”,其数据库副本为当前的镜像数据库。 如果数据库镜像部署在生产环境中,则主体数据库即为“生产数据库”。
        数据库镜像涉及尽快将对主体数据库执行的每项插入、更新和删除操作“重做”到镜像数据库中。 重做通过将活动事务日志记录的流发送到镜像服务器来完成,这会尽快将日志记录按顺序应用到镜像数据库中。 与逻辑级别执行的复制不同,数据库镜像在物理日志记录级别执行。 从 SQL Server 2008 开始,在事务日志记录的流发送到镜像服务器之前,主体服务器会先将其压缩。 在所有镜像会话中都会进行这种日志压缩。

数据库镜像-----运行模式

      数据库镜像会话以同步操作或异步操作运行。 在异步操作下,事务不需要等待镜像服务器将日志写入磁盘便可提交,这样可最大程度地提高性能。 在同步操作下,事务将在伙伴双方处提交,但会延长事务滞后时间。
       有两种镜像运行模式。 一种是“高安全性模式”,它支持同步操作。 在高安全性模式下,当会话开始时,镜像服务器将使镜像数据库尽快与主体数据库同步。 一旦同步了数据库,事务将在伙伴双方处提交,这会延长事务滞后时间。
第二种运行模式,即“高性能模式”,异步运行。 镜像服务器尝试与主体服务器发送的日志记录保持同步。 镜像数据库可能稍微滞后于主体数据库。 但是,数据库之间的时间间隔通常很小。 但是,如果主体服务器的工作负荷过高或镜像服务器系统的负荷过高,则时间间隔会增大。
       在高性能模式中,主体服务器向镜像服务器发送日志记录之后,会立即再向客户端发送一条确认消息。 它不会等待镜像服务器的确认。 这意味着事务不需要等待镜像服务器将日志写入磁盘便可提交。 此异步操作允许主体服务器在事务滞后时间最小的条件下运行,但可能会丢失某些数据。

数据库镜像-----角色切换

   在数据库镜像会话上下文中,通常可以使用一个称为“角色切换”的过程来互换主体角色和镜像角色。 角色切换涉及将主体角色转换给镜像服务器的操作。 在角色切换中,镜像服务器充当主体服务器的“故障转移伙伴”。 进行角色切换时,镜像服务器将接管主体角色,并使其数据库的副本联机以作为新的主体数据库。 以前的主体服务器(如果有)将充当镜像角色,并且其数据库将变为新的镜像数据库。 这些角色可以反复地来回切换。
存在以下三种角色切换形式。

  • 自动故障转移
       这要求使用高安全性模式并具有镜像服务器和见证服务器。 数据库必须已同步,并且见证服务器必须连接到镜像服务器。
见证服务器的作用是验证给定的伙伴服务器是否已启动并运行。 如果镜像服务器与主体服务器断开连接,但见证服务器仍与主体服务器保持连接,则镜像服务器无法启动故障转移。 有关详细信息,请参阅数据库镜像见证服务器。
  • 手动故障转移
       这要求使用高安全性模式。 伙伴双方必须互相连接,并且数据库必须已同步。
  • 强制服务(可能造成数据丢失)
       在高性能模式和不带自动故障转移功能的高安全性模式下,如果主体服务器出现故障而镜像服务器可用,则可以强制服务运行。

数据库镜像-----建立数据库镜像

  1. 通过对每个还原操作使用 RESTORE WITH NORECOVERY 还原以下备份来创建镜像数据库:
  • 在确保主体数据库在执行备份时使用了完整恢复模式后,还原主体数据库的最新完整数据库备份。 镜像数据库的名称必须与主体数据库的名称相同。
  • 如果您自还原完整备份以来已对数据库执行任何差异备份,请还原最新的差异备份。
  • 还原自完整数据库备份或差异数据库备份以来进行的所有日志备份。
     (在进行主体数据库的备份后,尽快完成剩余设置步骤。 对伙伴开始镜像之前,应该创建原始数据库的当前日志备份并将其还原到将来的镜像数据库。)

数据库镜像-----暂停和恢复

       数据库所有者可以暂停并在以后随时恢复数据库镜像会话。 执行暂停操作将保留在挂起镜像时的会话状态。 当出现瓶颈时,暂停可能有利于提高主体服务器的性能。
       会话暂停后,主体数据库仍然可用。 暂停操作将镜像会话的状态设置为 SUSPENDED,并且镜像数据库不再与主体数据库保持一致,从而导致主体数据库公开运行。
       由于在数据库镜像会话处于暂停时无法截断事务日志,因此建议您尽快恢复暂停的会话。 因此,如果数据库镜像会话暂停的时间太长,事务日志将填满,导致数据库不可用。 有关此现象产生原因的解释,请参阅本主题后面的“暂停和恢复如何影响日志截断”。

  •  日志截断

    通常,在数据库上执行自动检查点操作时,事务日志将在下一个日志备份后截断到该检查点。 当数据库镜像会话处于暂停时,当前所有日志记录都保持为活动状态,因为主体服务器正等待将这些记录发送到镜像服务器。 未发送的日志记录将堆积在主体数据库的事务日志中,直到会话恢复并且主体服务器将它们发送到镜像服务器为止。
    会话恢复时,主体服务器立即开始将堆积的日志记录发送到镜像服务器。 当镜像服务器确认与最早的自动检查点相对应的日志记录已排队后,主体服务器便会将主体数据库的日志截断到该检查点。 镜像服务器会截断同一个日志记录的重做队列。 随着对每个连续的检查点重复此过程,日志将对检查点逐个分阶段地截断。

数据库镜像----- 事务日志过大

       如果填满该日志(因为它达到其最大大小或服务器实例耗尽空间),则数据库将无法再执行任何更新。 若要避免出现这种问题,有两种选择:

  1. 在该日志填满之前恢复数据库镜像会话,或添加更多的日志空间。 恢复数据库镜像会使主体服务器将其累积的活动日志发送到镜像服务器,并将镜像数据库设置为 SYNCHRONIZING 状态。 然后镜像服务器可将日志镜像到磁盘并开始重做。
  2. 通过删除镜像来停止数据库镜像会话。
数据库镜像----- 删除镜像
      删除镜像时,将发生以下情况:
  • 伙伴间的关系以及每个伙伴与见证服务器间的关系都将永久中断(如果存在任何关系)。
  • 有关镜像会话的信息已经清除,这一点与暂停会话不同。 删除了主体数据库和镜像数据库上的镜像。
  • 每台伙伴服务器实例使用的数据库为数据库的单独副本。
  • 由于镜像数据库是使用 RESTORE WITH NORECOVERY 创建的,因此镜像数据库的状态为 RESTORING(请参阅 sys.databases 的 state 列)。 此时,您可以删除以前的镜像数据库或使用 WITH RECOVERY 还原以前的镜像数据库。 恢复该数据库时,由于恢复将启动新的恢复分支,因此将与以前的主体数据库不同。

详细内容请查阅:

http://technet.microsoft.com/zh-cn/library/ms189852.aspx

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值