xuesn 发表于 2018-6-9 13:27:26

实现SQL Server 2012 镜像

  镜像(Mirror)是SQL Server 2005引入的新功能,微软从SQL Server 2005 SP1版本就开始提供官方技术支持。
  SQL Server 2012发布后,在官方的联机手册中出现了新的声明:后续版本的 Microsoft SQL Server 将删除数据库镜像功能。请避免在新的开发工作中使用该功能,并着手修改当前还在使用数据库镜像的应用程序,以便改用 AlwaysOn 可用性组。
  实现镜像需要在主数据库与镜像数据库之间进行身份验证,有两种身份验证方法:一是通过域帐户,二是通过证书。
  根据能否故障转移、数据是否实时同步,分为三种部署方式:
  1、高可用:需要增加一台见证服务器(安装有SQL Server实例),主体实例与镜像实例之间实时同步,无数据丢失,主体实例发生故障时一般在10秒内即可自动转移到镜像实例(注意:是两个独立的IP,应用程序有点麻烦)
  2、高安全:主体实例与镜像实例之间实时同步,无数据丢失,不可故障转移。当不能实时同步时(主体实例与镜像实例失去联系时,或任何其一发生故障时),主体实例停止操作。
  3、高性能:主体实例将事务日志传送给镜像实例去同步,稍有延时,可能会有数据丢失。不能自动故障转移。
  

  以下通过域帐户来配置数据库镜像。
  一、环境准备
  1、准备计算机
  DC1为contoso域的域控制器,IP地址为192.168.1.1,子网掩码为255.255.255.0,默认网关为192.168.1.254,DNS为192.168.1.1
  SQL1为主体服务器,IP地址为192.168.1.21,子网掩码为255.255.255.0,默认网关为192.168.1.254,DNS为192.168.1.1
  SQL2为镜像服务器,IP地址为192.168.1.22,子网掩码为255.255.255.0,默认网关为192.168.1.254,DNS为192.168.1.1
  

  2、准备域帐户
  转到DC1,打开“Active Directory 用户和计算机”,新建一个域用户帐户UserMirror。
  

  3、在客户端配置域帐户
  转到SQL1计算机,将contoso\UserMirror帐户添加为本机管理员。

  在“管理工具”中打开“服务”(或者用“SQL Server 配置管理器”),修改SQL Server实例的属性,将登录身份改为contoso\UserMirror。修改之后,重启SQL Server实例。

  转到SQL2计算机,按照上面的步骤把contoso\UserMirror帐户添加到本机管理员,并且用这个帐户启动SQL Server实例。
  说明:如果SQL Server实例是通过不同的本地帐户启动的,那么在创建镜像时主体数据库会尝试用本机帐户去连接镜像数据库,最终会报错。以下是一个错误信息的示例:
  Database Mirroring login attempt by user 'CONTOSO\SQL2$.' failed with error: 'Connection handshake failed. The login 'CONTOSO\SQL2$' does not have CONNECT permission on the endpoint. State 84.'.
  

  二、实现数据库镜像
  1、配置镜像的端点
  SQL Server 2012 默认创建了一个名为“镜像”的端点

  可以查看它创建的语法为:
  USE
CREATE ENDPOINT [镜像]
STATE=STARTED
AS TCP (LISTENER_PORT = 5022, LISTENER_IP = ALL)
FOR DATA_MIRRORING (ROLE = PARTNER, AUTHENTICATION = WINDOWS NEGOTIATE
, ENCRYPTION = REQUIRED ALGORITHM RC4)
  

  2、配置防火墙
  Windows 2008 自带的防火墙默认封锁了端口,因此,要想让SQL1与SQL2这两台计算机之间的SQL Server可以互相访问,必须在防火墙上打开SQL Server默认的TCP1433端口。
  由于默认的镜像的端点是TCP5022,因此必须在防火墙上打开这个端口,允许“入站连接”。
  

  3、分发数据库到镜像服务器
  数据库必须是“完整恢复模式”

  事先还要将主数据库备份,然后恢复到镜像服务器上。在实现数据库镜像技术时,镜像数据库将一直处于“Restore With NoRecovery”状态。因此,在还原操作时要注意下面的选项。

  默认情况下,还原的选项是“Restore With Recovery”,即“通过回滚未提交的事务,使数据库处于可以使用的状态。”此时,如果使用数据库镜像,将会出现以下错误:
  


  

  4、配置镜像


  我们这次实验只配了2台SQL Server服务器,所以没有“见证服务器”。

  在“主体服务器实例”对话框,默认会显示本机已经配置了的侦听器端口和端点名称。

  在“镜像服务器实例”窗体,在下拉列表中找到镜像服务器的名称然后点“连接”(或者在下拉列表中选择“浏览更多”)

  在“服务帐户”窗体,输入域用户contoso\UserMirror,向导会自动为这个帐户创建登录名,还将为登录名授予对端点的连接权限。



  

  5、完成配置
  完成上述配置后,会有提示信息,询问是否立即“开始镜像”。点“不开始镜像”,回到配置对话框。

  在配置对话框,核对配置信息无误后,点“开始镜像”

  镜像成功之后,画面如下:

  

  三、检查与验证
  1、检查登录名


  2、检查数据库状态

  对于镜像数据库,不可以删除,否则将出现如下错误信息:

  3、监视镜像


  4、验证


  然后,再检查主体数据库与镜像数据库的状态变化,以及通过“数据库镜像监视器”查看镜像的状态。
  
页: [1]
查看完整版本: 实现SQL Server 2012 镜像