win server 2008 R2升级到windows 2012如何迁移Alwayson AG

Windows cluster要求同一个cluster中的所有windows版本都是相同的,这样就出现一个问题,当我们要将对windows进行升级时,(例如从windows 2008 R2升级到windows 2012)不得不搭建一套新的windows cluster。你可以选择使用新的硬件搭建,或者将现有windows cluster中的节点一台一台的evict掉,重装/升级系统后加入到新的windows cluster中。具体的cluster升级方案我就不在这里讨论。马上进入主题:

sql server AlwaysOn Availability Group (后文简称为AG) 的一个要求是:所有的replica都要求隶属于同一个windows cluster。



所以当我们对windows cluster进行升级时,无法在新的windows cluster和现有的windows cluster之间建立AG。那么在迁移过程中会有一段时间内AG无法对外提供服务。

从数据库的角度上说,我们需要做下面的事情

接下来停止应用并删除cluster1中的Listener,确保没有外界来接使用SQL SERVER.

Backup database

Backup tail log

将备份文件copy到新的服务器

Restore 到各个服务器

然后重新建立AG

创建Listener

重启应用

我们需要将数据库备份并还原到新的primary replica和secondary replica。 相应的downtime时间就是1+2+3+4+5+6+7+8想要的时间。 或许你想到了在新旧cluster之间创建一个mirroring,但遗憾的是,创建了AG的数据库是不再允许创建mirroring的.

那应当如何进行迁移呢?从SQL Server 2012 SP1 开始,允许在两套不同的windows cluster之间创建AG。下面用一个例子说明一下

有一个三个节点的windows cluster, windows版本为Windows 2008 R2

Domain:liweiyin3.lab

Cluster name: cluster1

Server002

Server003

Server004

Listener name: Listener1

三个节点上装有SQL Server 2012 SP1的standalone实例。均为默认实例。

之间建立了AG.拓扑图如下:



现在创建一套两个节点的windows 2012的windows cluster

Domain:liweiyin3.lab

Cluster name: cluster2

Server005

Server006



对cluster1上的AG数据库进行备份,包含full database backup和log backup两个cluster中间创建AG:

将第一步得到的文件在cluster2的节点上进行还原,指定为with norecovery.

接下来在cluster2的三个数据库上执行下面的语句

ALTER SERVER CONFIGURATION SET HADR CLUSTER CONTEXT='cluster1.liweiyin3.lab'

这条语句执行完毕后,这台数据库的cluster context就会切换为cluster1了。这个结果可以从下面的DMV中检查到

select cluster_name from sys.dm_hadr_cluster



接下就可以在cluster1和cluster2之间建立AG。我们可以使用UI或者T-SQL语句。

需要注意的是,请将cluster2中的至少一个SQL Server的同步模式设置为Synchronous commit,以保证迁移是没有数据损失的。



这样,我们就建立了一套既包含win 2008R2,也包含win 2012的AG环境了。并且也可以正常地向外界提供服务,整个流程不需要downtime.



但需要注意的是,这种情况下是不允许在两个cluster之间进行failover的。相应的提示信息如下



An attempt to fail over or create an availability group failed. This operation is not supported when AlwaysOn Availability Groups is running under a remote Windows Server Failover Clustering (WSFC) cluster context. Under a remote cluster context, failing over or creating availability groups are not supported.



接下来停止应用并删除cluster1中的Listener,确保没有外界来接使用SQL SERVER

在Cluster1将AG进行offline操作

ALTER AVAILABILITY GROUP dbName offline

将cluster2中所有sql server的CLUSTER CONTEXT切换回来

ALTER SERVER CONFIGURATION SET HADR CLUSTER CONTEXT=local

在cluster2中重新创建AG

在cluster2中创建新的listener

重启应用

这样所涉及的downtime就是5+6+7+8+9+10

和之前的解决方案相比,省去了backup,文件copy和restore的时间。其余的操作都是句操作,很大程度地减少了downtime。

更多信息

===

迁移之前,Cluster2中的sql server不允许创建任何AG。

迁移之前需要授予cluster2中的sql server启动账号访问cluster1注册表的权限

Change the HADR Cluster Context of Server Instance (SQL Server)

(0)

相关推荐

  • Windows Server 2008 R2中IIS 7.5的改进

    根据微软的路线图,下一代服务器操作系统Windows Server 2008 R2的正式版将在2010年发布。虽说微软将Win Server 2008 R2独立出来,作为继Win 2008后的下一代服 ...

  • Windows Server 2008 R2的八大优势

    Windows Server 2008 R2是微软服务器操作系统的下一代版本,功能和特性上都基于现有的Windows Server 2008,并进一步得到了增强和完善。该系统开发代号Windows S ...

  • Windows Server 2008 R2新增功能概览

    对于桌面版Windows 7的消息我们已经听到了不少,最近的消息是微软表示将不再推出Windows 7的Beta版本,下一个升级版本将是最接近最终发布产品的RC版,这也意味着最终版离我们越来越近。不过 ...

  • Windows Server 2008 R2新增功能浅析

    对于桌面版Windows 7的消息我们已经听到了不少,最近的消息是微软表示将不再推出Windows 7的Beta版本,下一个升级版本将是最接近最终发布产品的RC版,这也意味着最终版离我们越来越近。不过 ...

  • Windows server 2008 r2的本地默认端口禁用方法

    win server 2008 r2的默认端口禁用方法. 通过命令"netstat -an"可以知道系统当前监听的端口.在Windows server 2008系统上,有两种途经可 ...

  • Windows Server 2008 R2 安装及配置指南

    Windows Server 2008 R2 安装及配置指南 准备工作 01 安装需求: 处理器最低:1.4 GHz(x64处理器) 注意:Windows Server 2008 for Itaniu ...

  • Windows Server 2008 R2 下安装 Sql Server 2012 注意事项

    Sql Server 2012 的 RC0 版本已经出来了,也决定安装尝尝鲜。支持 Sql Server 2012 的操作系统一查,原来 Server 2003 已经不支持了,悲剧啊!!!看来也要一并 ...

  • Windows Server 2008 R2 服务器系统安装图文教程

    Windows Server 2012是Windows服务器版系统的下一代最新版本,Windows Server 2012将向企业和托管提供商提供可伸缩.动态.支持多租户以及通过云计算得到优化的基础结 ...

  • Windows Server 2008 R2托管服务账户(MSA)的功能

    今天部署AD RMS的时候,需要为RMS单独创建一个服务账号,于是联想起Server 2008 R2中的一个新功能:托管服务账号。首先我们先了解一下它是什么吧? 托管服务帐号:由于对运行的服务的域用户 ...