Windowscluster要求同一个cluster中的所有windows版本都是相同的,这样就出现一个问题,当我们要将对windows进行升级时,(例如从windows2008R2升级到windows2012)不得不搭建一套新的windowscluster。你可以选择使用新的硬件搭建,或者将现有windowscluster中的
节点一台一台的evict掉,重装/升级系统后加入到新的windowscluster中。具体的cluster升级方案我就不在这里讨论。马上进入主题:sqlserverAlwaysOnAvailabilityGroup(后文简称为AG)的一个要求是:所有的replica都要求隶属于同一个windowscluster。所以当我们对windowscluster进行升级时,无法在新的windowscluster和现有的windowscluster之间建立AG。那么在迁移过程中会有一段时间内AG无法对外提供服务。从
数据库的角度上说,我们需要做下面的事情接下来停止应用并删除cluster1中的Listener,确保没有外界来接使用SQLSERVER.BackupdatabaseBackuptaillog将备份文件copy到新的
服务器Restore到各个服务器然后重新建立AG创建Listener重启应用我们需要将数据库备份并还原到新的primaryreplica和secondaryreplica。相应的downtime时间就是1+2+3+4+5+6+7+8想要的时间。或许你想到了在新旧cluster之间创建一个mirroring,但遗憾的是,创建了AG的数据库是不再允许创建mirroring的.那应当如何进行迁移呢?从SQLServer2012SP1开始,允许在两套不同的windowscluster之间创建AG。下面用一个例子说明一下有一个三个节点的windowscluster,windows版本为Windows2008R2Domain:liweiyin3.labClustername:cluster1Server002Server003Server004Listenername:Listener1三个节点上装有SQLServer2012SP1的standalone实例。均为默认实例。之间建立了AG.拓扑图如下:现在创建一套两个节点的windows2012的windowsclusterDomain:liweiyin3.labClustername:cluster2Server005Server006对cluster1上的AG数据库进行备份,包含fulldatabasebackup和logbackup两个cluster中间创建AG:将第一步得到的文件在cluster2的节点上进行还原,指定为withnorecovery.接下来在cluster2的三个数据库上执行下面的语句ALTERSERVERCONFIGURATIONSETHADRCLUSTERCONTEXT='cluster1.liweiyin3.lab'这条语句执行完毕后,这台数据库的clustercontext就会切换为cluster1了。这个结果可以从下面的DMV中检查到selectcluster_namefromsys.dm_hadr_cluster接下就可以在cluster1和cluster2之间建立AG。我们可以使用UI或者T-SQL语句。需要注意的是,请将cluster2中的至少一个SQLServer的同步模式设置为Synchronouscommit,以保证迁移是没有数据损失的。这样,我们就建立了一套既包含win2008R2,也包含win2012的AG环境了。并且也可以正常地向外界提供服务,整个流程不需要downtime.但需要注意的是,这种情况下是不允许在两个cluster之间进行failover的。相应的提示信息如下Anattempttofailoverorcreateanavailabilitygroupfailed.ThisoperationisnotsupportedwhenAlwaysOnAvailabilityGroupsisrunningunderaremoteWindowsServerFailoverClustering(WSFC)clustercontext.Underaremoteclustercontext,failingoverorcreatingavailabilitygroupsarenotsupported.接下来停止应用并删除cluster1中的Listener,确保没有外界来接使用SQLSERVER在Cluster1将AG进行offline *** 作ALTERAVAILABILITYGROUPdbNameoffline将cluster2中所有sqlserver的CLUSTERCONTEXT切换回来ALTERSERVERCONFIGURATIONSETHADRCLUSTERCONTEXT=local在cluster2中重新创建AG在cluster2中创建新的listener重启应用这样所涉及的downtime就是5+6+7+8+9+10和之前的解决方案相比,省去了backup,文件copy和restore的时间。其余的 *** 作都是句 *** 作,很大程度地减少了downtime。更多信息===迁移之前,Cluster2中的sqlserver不允许创建任何AG。迁移之前需要授予cluster2中的sqlserver启动账号访问cluster1注册表的权限ChangetheHADRClusterContextofServerInstance(SQLServer)只要多台电脑可以互联,局域网或者互联网,就可以通过IP访问数据库,访问的方式两种,一种是在其他电脑上安装SQL
Server客户端(2000版本以后统一成management
studio),通过企业管理器连接;另一种是通过程序远程连接,例如java程序通过jdbc连接数据库
要么做主从
要么加入一台新的主服务器
所有的写入 *** 作,都通过分服务器提交到主服务器,具体办法,可以采用SSB技术什么的
然后再主服务器,在同步链等方式,同步到分服务器用于读取。
通过这个方式实现读写分离,和同步
这样可以达到实时同步
还有个方案就是你可以考虑简历不同的库,然后主从方式互相作为主从(当然也可以考虑做事务日志传输的方式实现这一步)
分别写入各自的库,读的时候可以考虑视图方式实现统一读取
你觉得麻烦,就上cluster吧!
评论列表(0条)