Microsoft Azure SQL Database地理還原(Geo-restore)入門
說明
SQL Database地理還原(Geo-restore)是一種讓您可以利用地理容錯備份來還原並建立新資料庫一種技術,對於提升業務持續性有很大的助益,除了即將淘汰的Web和Business服務層不支援以外,Geo-restore支援Basic、Standard、Premium等新的服務層,您不需額外支付任何收費,就可以使用和自助式還原(Point in time restore)相同的技術和方法來將SQL Database還原到相同或其他區域的資料中心。
每一個主要的SQL Database資料庫會依照每週做一次完整備份,每天做一次差異備份以及每五分鐘進行交易記錄備份的備份策略來將資料庫備份到儲存體,這是在Microsoft Azure內部就會自動進行,不需要先建立相關的儲存體以及做任何設定,而Geo-restore是使用最近一次儲存體地理複寫(RA-GRS)中的備份來進行還原(如下圖所示),美東的SQL Database會自動將資料庫備份到啟用地理複寫的Blob儲存體,再透過地理複寫的機制抄寫到其他地區資料中心的儲存體(例如美西)。
一旦發生大規模的事件造成主要的SQL Database資料庫所在地區的資料中心停擺,就可以利用地理還原的功能來將資料庫還原到其他地區的資料中心繼續提供服務,但由於BLOB的地理複寫是一天抄寫一次,所以Geo-restore的RPO最長可能達到24小時。
下表為SQL Database支援的各項業務持續性與災難復原的選項,不同的服務層提供不同程度的災難復原能力,您可以依照應用程式的特性、業務需求以及預算來選擇適當的服務層。
業務持續性與災難復原選項 | Basic服務層 | Standard服務層 | Premium服務層 |
自助式還原 | 過去 7 天內的時間點 | 過去 14 天內的時間點 | 過去 35 天內的時間點 |
地理還原 |
RTO小於24小時 RPO小於24小時 |
RTO小於24小時 RPO小於24小時 |
RTO小於24小時 RPO小於24小時 |
標準異地備援 | 不支援 |
RTO小於2小時 RPO小於30分鐘 |
RTO小於2小時 RPO小於30分鐘 |
主動異地備援 | 不支援 | 不支援 |
RTO小於1小時 RPO小於5分鐘 |
接下來我們就來看看如何使用Geo-restore。
使用地理還原
當您建立使用BASIC以上服務層的SQL Database時,SQL Database服務會自動幫您在SQL Database伺服器啟用地理容錯備份,您不需要自行建立任何儲存體來存放資料庫的備份,資料庫備份會每隔 12-24 個小時進行一次,一旦整個自動備份機制生效之後,就可以在Microsoft Azure管理入口網站點選左測的【SQL Database>伺服器>您的SQL Database伺服器>備份】來查看有哪些資料庫已經可以開始使用Geo-restore,當您看到GEO-REDIMDANT BACKUPS提示,代表該SQL Database伺服器的地理容錯備份功能已經被啟用,在下方的列表當中可以看到已經可以執行地理還原的資料庫名稱。
另外,透過Azure PowerShell也可以看到和上圖相同的結果,對於自動化進行資料庫還原或是進行災難復原演練而言,PowerShell會是不錯的選擇之一。
您可以點選SQL Database伺服器的備份頁面中您想要還原的資料庫名稱,接著按下方的還原圖示,就可以看到如下圖的還原設定畫面,只要輸入新資料庫的名稱,以及要將資料庫還原到哪一台SQL Database伺服器最後按下完成,就可以將SQL Database服務幫您建立的備份,還原到指定的位置。
以下圖為例,本文將位於東亞的SQL Database還原到位於東南亞資料中心裡的SQL Database伺服器。
若想要還原的資料中心裡尚未有任何SQL Database伺服器,可以選擇【新的SQL資料庫伺服器】。
一樣輸入相關的登入名稱及密碼,再來就是選擇要在哪個資料中心建立SQL Database伺服器,以本文為例,筆者可以將原本在東亞資料中心建立的SQL Database還原到包含東亞本身以外的其他資料中心,這就是Geo-restore所要強調的功能,即使目前主要的SQL Database發生異常,Geo-restore的功能依然不受影響。
等還原作業完成後,您就可以在您所選擇目標伺服器中看到透過Geo-restore還原的SQL Database。
同樣的,上面在Azure管理入口網站所做的步驟,也可以透過Azure PowerShell來完成。
取消還原
還原資料庫的時間可能受到資料庫大小、資料庫效能等級、目的資料中心同時間要求還原資料庫的數量所影響,而且Microsoft Azure為確保其他正常運作的SQL Database不會受到Geo-restore所影響,會限制還原資料庫所使用的資源。因此,若您開始使用Geo-restore功能還原資料庫時,想要反悔也是沒問題,只要在Microsoft Azure管理入口網站中把正在還原的資料庫刪除,或是連接到SQL Database伺服器以DROP DATABASE的T-SQL指令碼來刪除。
參考資料
Azure SQL Database Geo-Restore
Azure SQL Database Recovery PowerShell API
Step-By-Step- Azure SQL Database introduces geo-restore, standard geo-replication, and auditing