AWS發布了一個針對其關系型數據庫服務(RDS)的更新,讓用戶可以利用本地SQL Server的備份和恢復功能。該功能可以簡化數據庫遷移和災難恢復,AWS通過搶先發布來和微軟Azure爭奪市場。
目前為止,RDS——除了SQL Server外,還支持MySQL、PostgreSQL和Oracle數據庫引擎——只提供了執行存儲卷或實例及備份的能力。這些AWS特有的快照將所有數據庫備份到服務器上,并支持按時間點恢復。在一篇有關RDS for SQL Server本地備份支持的博文中,Amazon的Jeff Barr闡述了該特性如何讓RDS對SQL Server DBA更具吸引力:
SQL Server本地備份包含所有數據庫對象:表、索引、存儲過程和觸發器。這些備份常常用于在本地或云端運行的不同SQL Server實例之間遷移數據庫。它們可以用于數據獲取、災難恢復等。本地備份還簡化了從本地SQL Server實例導入數據和模式的過程,對SQL Server DBA來說,更容易理解和使用。
本地備份需要做三件事:準備一個Amazon S3存儲桶用于存儲備份文件及一個AWS“角色”用于訪問S3存儲桶,并引用RDS實例配置(稱為一個選項組)中針對SQL Server的“SQLSERVER_BACKUP_RESTORE”。按照AWS的說法,與Amazon S3搭配使用為用戶提供了一種持久化的遠程存儲選項,讓其可以與本地數據庫配合使用。
那些備份可以恢復成SQL Server或者另外一個基于RDS的SQL Server實例的一個本地副本。你還可以將本地數據庫的備份復制到S3,然后將它們恢復到RDS SQL Server實例。
RDS for SQL Server提供了全量數據庫備份,而不是增量,這些備份可以通過集成AWS密鑰管理服務進行加密。
本地備份使用標準的SQL Server .bak文件。AWS表示,.bak文件經過了“大量的優化”,代表了“最快的數據庫備份和恢復方式。”他們針對本地備份和恢復列出了一系列的使用場景。
輕松地將數據庫遷移到Amazon RDS。 輕松地將數據庫在Amazon RDS SQL Server DB實例之間遷移。 輕松地導入和導出數據。 輕松地遷移模式、存儲過程、觸發器和其他數據庫代碼。 輕松地改變存儲類型或存儲容量。 備份和恢復單個數據庫,而不是整個數據庫實例。 創建數據庫副本用于測試、培訓和演示。 通過Amazon S3存儲備份文件,并將備份文件傳入/傳出Amazon RDS,增加了一個災難恢復防護層。對于那些無法使用本地備份和恢復的DBA,AWS為他們準備了一份文檔,指出了幾種云友好的SQL Server數據導入/導出方法。
Brent Ozar是一個為這項新功能而興奮的人。他是一位知名的SQL Server專家,同時也是Brent Ozar Unlimited的創始人。這是一家專門從事SQL Server優化的小公司。在題為“天啊,Amazon RDS SQL Server改變了一切”的博文中,Ozar認為這“相當、相當、相當了不起。”
目前為止,還有一個最大的問題,就是Azure SQL DB和Amazon RDS SQL Server都不能訪問備份文件。如果你想取出數據,就得費事地使用類似導入/導出向導、BCP或同步應用這樣的東西。
微軟的Azure SQL數據庫服務尚未提供這項特性,Ozar希望Amazon推出SQL Server支持會迫使微軟快速追趕。在這篇博文中,Ozar清楚地說明了本地存儲和恢復的具體應用場景。
“我是本地環境,我希望把云用于DR。”只需要像平時一樣進行完整的備份,但要使用一個類似Cloudberry Drive這樣的工具將它們自動同步到Amazon S3。當災難發生時(或者最好是你希望遠在災難發生之前測試并記錄這個過程),啟動一個Amazon RDS SQL Server實例,并恢復備份。轉眼之間,你就重新回到了工作中。(我略過了所有與Web和應用服務器設置相關的部分,但那是開發人員/devops/sysadmin需要處理的問題,對吧?)
“我有很大的數據庫,并且我希望試驗云,但我無法快速上傳。”將存有備份的USB硬盤發給Amazon,他們會將備份復制到S3,然后,你就可以啟動RDS實例。有了更多的數據怎么辦?請查閱Amazon Snowball。
“我在使用云,我希望可以跨提供商DR。”運行Amazon RDS中的主SQL Server,設定計劃,定期備份到Amazon S3,然后使用一個跨提供商文件同步工具或者推出自己的服務將那些備份文件從Amazon S3推送到Azure或Google Drive。當Amazon上災難發生時(或你只是希望撤出Amazon,換其他云提供商),只要在其他地方恢復那個備份。如果你想要刷新本地開發或報表服務器,則情況相同。
“我在使用云,但數據的增長速度可能會超過平臺即服務。”PaaS極大地簡化了管理,但Amazon和Azure均限制了數據庫的大小。從根本上說,將數據庫放在Amazon RDS或Azure SQL DB上是一次賭博,賭你的數據增長比他們的數據庫大小限制的增長慢許多。如果你預測錯誤——這很棒,因為數據的快速增長通常意味著你發財了——則可以輕松地轉換到IaaS(云中自己管理的SQL Server),而不必經歷數據導出的痛苦。
該RDS特性不需要額外的費用,不過用戶使用Amazon S3存儲時會產生正常的費用。AWS提供的這項特性可以用于RDS支持的任何SQL Server版本,并且既可以用于單可用區域部署選項,也可以用于多可用區域部署選項。至于限制,AWS不允許用戶備份超過1TB的數據庫,或者恢復超過4TB的數據庫。用戶也無法將備份恢復到一個創建它的實例。備份只能恢復到一個全新的數據庫實例。
查看英文原文: AWS Adds Native SQL Server Backups to Database-as-a-Service