Windows cluster要求同一個(gè)cluster中的所有windows版本都是相同的,這樣就出現(xiàn)一個(gè)問(wèn)題,當(dāng)我們要將對(duì)windows進(jìn)行升級(jí)時(shí),(例如從windows 2008 R2升級(jí)到windows 2012)不得不搭建一套新的windows cluster。你可以選擇使用新的硬件搭建,或者將現(xiàn)有windows cluster中的節(jié)點(diǎn)一臺(tái)一臺(tái)的evict掉,重裝/升級(jí)系統(tǒng)后加入到新的windows cluster中。具體的cluster升級(jí)方案我就不在這里討論。馬上進(jìn)入主題:
sql server AlwaysOn Availability Group (后文簡(jiǎn)稱(chēng)為AG) 的一個(gè)要求是:所有的replica都要求隸屬于同一個(gè)windows cluster。
所以當(dāng)我們對(duì)windows cluster進(jìn)行升級(jí)時(shí),無(wú)法在新的windows cluster和現(xiàn)有的windows cluster之間建立AG。那么在遷移過(guò)程中會(huì)有一段時(shí)間內(nèi)AG無(wú)法對(duì)外提供服務(wù)。
從數(shù)據(jù)庫(kù)的角度上說(shuō),我們需要做下面的事情
接下來(lái)停止應(yīng)用并刪除cluster1中的Listener,確保沒(méi)有外界來(lái)接使用SQL SERVER.
Backup database
Backup tail log
將備份文件copy到新的服務(wù)器
Restore 到各個(gè)服務(wù)器
然后重新建立AG
創(chuàng)建Listener
重啟應(yīng)用
我們需要將數(shù)據(jù)庫(kù)備份并還原到新的primary replica和secondary replica。 相應(yīng)的downtime時(shí)間就是1+2+3+4+5+6+7+8想要的時(shí)間。 或許你想到了在新舊cluster之間創(chuàng)建一個(gè)mirroring,但遺憾的是,創(chuàng)建了AG的數(shù)據(jù)庫(kù)是不再允許創(chuàng)建mirroring的.
那應(yīng)當(dāng)如何進(jìn)行遷移呢?從SQL Server 2012 SP1 開(kāi)始,允許在兩套不同的windows cluster之間創(chuàng)建AG。下面用一個(gè)例子說(shuō)明一下
有一個(gè)三個(gè)節(jié)點(diǎn)的windows cluster, windows版本為Windows 2008 R2
之間建立了AG.拓?fù)鋱D如下:
現(xiàn)在創(chuàng)建一套兩個(gè)節(jié)點(diǎn)的windows 2012的windows cluster
Domain:liweiyin3.lab
Cluster name: cluster2
Server005
Server006
對(duì)cluster1上的AG數(shù)據(jù)庫(kù)進(jìn)行備份,包含full database backup和log backup兩個(gè)cluster中間創(chuàng)建AG:
將第一步得到的文件在cluster2的節(jié)點(diǎn)上進(jìn)行還原,指定為with norecovery.
接下來(lái)在cluster2的三個(gè)數(shù)據(jù)庫(kù)上執(zhí)行下面的語(yǔ)句
接下就可以在cluster1和cluster2之間建立AG。我們可以使用UI或者T-SQL語(yǔ)句。
需要注意的是,請(qǐng)將cluster2中的至少一個(gè)SQL Server的同步模式設(shè)置為Synchronous commit,以保證遷移是沒(méi)有數(shù)據(jù)損失的。
這樣,我們就建立了一套既包含win 2008R2,也包含win 2012的AG環(huán)境了。并且也可以正常地向外界提供服務(wù),整個(gè)流程不需要downtime.
這樣,我們就建立了一套既包含win 2008R2,也包含win 2012的AG環(huán)境了。并且也可以正常地向外界提供服務(wù),整個(gè)流程不需要downtime.
這樣,我們就建立了一套既包含win 2008R2,也包含win 2012的AG環(huán)境了。并且也可以正常地向外界提供服務(wù),整個(gè)流程不需要downtime.
但需要注意的是,這種情況下是不允許在兩個(gè)cluster之間進(jìn)行failover的。相應(yīng)的提示信息如下
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.
接下來(lái)停止應(yīng)用并刪除cluster1中的Listener,確保沒(méi)有外界來(lái)接使用SQL SERVER
在Cluster1將AG進(jìn)行offline操作
ALTER AVAILABILITY GROUP dbName offline
將cluster2中所有sql server的CLUSTER CONTEXT切換回來(lái)
ALTER SERVER CONFIGURATION SET HADR CLUSTER CONTEXT=local
在cluster2中重新創(chuàng)建AG
在cluster2中創(chuàng)建新的listener
重啟應(yīng)用
這樣所涉及的downtime就是5+6+7+8+9+10
和之前的解決方案相比,省去了backup,文件copy和restore的時(shí)間。其余的操作都是句操作,很大程度地減少了downtime。
更多信息
===
遷移之前,Cluster2中的sql server不允許創(chuàng)建任何AG。
遷移之前需要授予cluster2中的sql server啟動(dòng)賬號(hào)訪問(wèn)cluster1注冊(cè)表的權(quán)限
Change the HADR Cluster Context of Server Instance (SQL Server)
標(biāo)簽:齊齊哈爾 滁州 公主嶺 延安 銅川 日照 林芝 青島
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《windows server 2008 R2升級(jí)到windows 2012遷移Alwayson AG的方法》,本文關(guān)鍵詞 windows,server,2008,升級(jí),到,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。