即時、進階參考設計
本節介紹使用Azure NetApp Files SMB 磁碟區在 AOAG 配置中即時部署 SQL 資料庫資產。
-
節點數:4
-
資料庫數量:21
-
可用性組數:4
-
備份保留:7天
-
備份存檔:365天
|
使用Azure NetApp Files共用在 Azure 虛擬機器上部署具有 SQL Server 的 FCI 可提供具有單一資料副本的經濟高效的模型。如果檔案路徑與輔助副本不同,此解決方案可防止新增檔案操作問題。 |
下圖顯示了 AOAG 內分佈在各個節點的資料庫。
數據佈局
使用者資料庫檔案 (.mdf) 和使用者資料庫事務日誌檔案 (.ldf) 以及 tempDB 儲存在同一磁碟區上。服務等級為超級。
此配置由四個節點和四個 AG 組成。所有 21 個資料庫(Dynamic AX、SharePoint、RDS 連接代理程式和索引服務的一部分)都儲存在Azure NetApp Files磁碟區上。 AOAG 節點之間的資料庫是平衡的,以有效地利用節點上的資源。 WSFC中新增了四個D32 v3實例,參與AOAG配置。這四個節點是在 Azure 虛擬網路中配置的,不會從本機遷移。
筆記:
-
如果日誌根據應用程式的性質和執行的查詢需要更多的效能和吞吐量,則可以將資料庫檔案放在 Premium 服務級別,並將日誌儲存在 Ultra 服務級別。
-
如果 tempdb 檔案已放置在Azure NetApp Files上,則應將Azure NetApp Files磁碟區與使用者資料庫檔案分開。這是 AOAG 中資料庫檔案分佈的範例。
筆記:
-
為了保留基於 Snapshot 副本的資料保護的優勢, NetApp建議不要將資料和日誌資料合併到同一個磁碟區。
-
如果輔助資料庫的檔案路徑與對應主資料庫的路徑不同,則在主副本上執行的新增檔案操作可能會在輔助資料庫上失敗。如果主節點和輔助節點上的共用路徑不同(由於電腦帳戶不同),則可能會發生這種情況。此故障可能會導致輔助資料庫暫停。如果無法預測成長或效能模式,並且計劃稍後新增文件,則使用Azure NetApp Files 的SQL Server 故障轉移叢集是一種可接受的解決方案。對於大多數部署, Azure NetApp Files滿足效能要求。
遷移
有多種方法可以將本機 SQL Server 使用者資料庫遷移到 Azure 虛擬機器中的 SQL Server。遷移可以是線上的,也可以是離線的。所選的選項取決於 SQL Server 版本、業務需求以及組織內定義的 SLA。為了最大限度地減少資料庫遷移過程中的停機時間, NetApp建議使用 AlwaysOn 選項或交易複製選項。如果無法使用這些方法,您可以手動遷移資料庫。
跨機器移動資料庫的最簡單且經過最徹底測試的方法是備份和還原。通常,您可以從資料庫備份開始,然後將資料庫備份複製到 Azure。然後您可以還原資料庫。為了獲得最佳資料傳輸效能,請使用壓縮備份檔案將資料庫檔案移轉到 Azure VM。本文檔中引用的高級設計使用 Azure 檔案同步備份方法將檔案儲存備份到 Azure 文件存儲,然後還原到 Azure NetApp檔案。
|
Azure Migrate 可用於發現、評估和遷移 SQL Server 工作負載。 |
若要執行遷移,請完成以下進階步驟:
-
根據您的要求,設定連接。
-
將完整資料庫備份到本機檔案共用位置。
-
使用 Azure 檔案同步將備份檔案複製到 Azure 檔案共用。
-
使用所需版本的 SQL Server 設定 VM。
-
使用 `copy`從命令提示字元輸入命令。
-
將完整資料庫還原到 Azure 虛擬機器上的 SQL Server。
|
恢復 21 個資料庫大約需要九個小時。這種方法是針對這種情況的。但是,您可以根據您的情況和要求使用下面列出的其他遷移技術。 |
將資料從本機 SQL Server 移至Azure NetApp Files 的其他移轉選項包括:
-
分離資料和日誌文件,將它們複製到 Azure Blob 存儲,然後透過從 URL 掛載的 ANF 檔案共用將它們附加到 Azure VM 中的 SQL Server。
-
如果您在本機上使用 Always On 可用性群組部署,請使用 "新增 Azure 副本精靈"在 Azure 中建立副本,然後執行故障轉移。
-
使用 SQL Server "事務複製"將 Azure SQL Server 執行個體配置為訂閱者,停用複製,並將使用者指向 Azure 資料庫執行個體。
-
使用 Windows 匯入/匯出服務運送硬碟。
備份和復原
備份和還原是任何 SQL Server 部署的重要方面。必須擁有適當的安全網,以便與 AOAG 等高可用性解決方案結合,從各種資料故障和遺失情況中快速恢復。 SQL Server 資料庫靜默工具、Azure Backup(串流備份)或任何第三方備份工具(例如 Commvault)均可用於執行資料庫的應用程式一致性備份,
Azure NetApp Files Snapshot 技術可讓您輕鬆建立使用者資料庫的時間點 (PiT) 副本,而不會影響效能或網路使用率。該技術還允許您將 Snapshot 副本還原到新卷,或使用恢復卷功能將受影響的捲快速恢復到創建該 Snapshot 副本時的狀態。 Azure NetApp Files快照流程非常快速且有效率,允許進行多次每日備份,這與 Azure 備份提供的串流備份不同。由於一天內可以有多個 Snapshot 副本,因此可以顯著減少 RPO 和 RTO 時間。若要新增應用程式一致性,以便在建立 Snapshot 副本之前資料完整且正確刷新到磁碟,請使用 SQL Server 資料庫靜默工具("SCSQLAPI 工具";訪問此連結需要NetApp SSO 登入憑證)。該工具可以從 PowerShell 執行,它會使 SQL Server 資料庫靜止,進而可以取得應用程式一致的儲存快照副本進行備份。
備註:
-
SCSQLAPI 工具僅支援 SQL Server 2016 和 2017 版本。
-
SCSQLAPI 工具一次只能與一個資料庫一起使用。
-
將檔案放置在單獨的Azure NetApp Files磁碟區上,以隔離每個資料庫中的檔案。
由於 SCSQL API 的巨大限制, "Azure 備份"用於資料保護以滿足 SLA 要求。它提供了在 Azure 虛擬機器和Azure NetApp Files中執行的 SQL Server 的基於流的備份。 Azure Backup 允許 15 分鐘的 RPO,並進行頻繁的日誌備份和最多一秒鐘的 PiT 復原。
監控
Azure NetApp Files與 Azure Monitor 整合以取得時間序列數據,並提供有關分配儲存、實際儲存使用情況、磁碟區 IOPS、吞吐量、磁碟讀取位元組數/秒、磁碟寫入位元組數/秒、磁碟讀取數/秒和磁碟寫入數/秒以及相關延遲的指標。這些資料可用於識別警報瓶頸並執行健康檢查以驗證您的 SQL Server 部署是否在最佳配置中執行。
在此 HLD 中,ScienceLogic 用於透過使用適當的服務主體公開指標來監視Azure NetApp Files。下圖是Azure NetApp Files指標選項的範例。
使用厚克隆的開發測試
使用Azure NetApp Files,您可以建立資料庫的即時副本,以便在應用程式開發週期中測試應使用目前資料庫結構和內容實現的功能,在填充資料倉儲時使用資料提取和操作工具,甚至恢復被錯誤刪除或更改的資料。此過程不涉及從 Azure Blob 容器複製數據,因此非常有效率。卷恢復後,可用於讀取/寫入操作,從而大幅減少驗證和上市時間。這需要與 SCSQLAPI 結合使用以確保應用程式的一致性。這種方法提供了另一種持續成本最佳化技術,同時Azure NetApp Files利用了「還原到新磁碟區」選項。
筆記:
-
使用「還原新磁碟區」選項從 Snapshot 副本建立的磁碟區將消耗容量池中的容量。
-
您可以使用 REST 或 Azure CLI 刪除複製的捲,以避免額外的費用(以防必須增加容量池)。
混合式儲存選項
儘管NetApp建議對 SQL Server 可用性群組中的所有節點使用相同的存儲,但在某些情況下可以使用多個儲存選項。對於Azure NetApp Files來說,這種情況是可能的,其中 AOAG 中的一個節點與Azure NetApp Files SMB 檔案共享相連,而第二個節點與 Azure Premium 磁碟相連。在這些情況下,請確保Azure NetApp Files SMB 共用儲存使用者資料庫的主副本,並且進階磁碟用作輔助副本。
筆記:
-
在這樣的部署中,為避免任何故障轉移問題,請確保在 SMB 磁碟區上啟用持續可用性。由於沒有持續可用的屬性,如果儲存層有任何後台維護,資料庫可能會發生故障。
-
將資料庫的主副本保留在Azure NetApp Files SMB 檔案共用上。
永續經營
在任何部署中,災難復原通常都是事後才考慮的事情。但是,必須在初始設計和部署階段解決災難復原問題,以避免對您的業務產生任何影響。透過Azure NetApp Files,可以使用跨區域複製 (CRR) 功能將區塊層級的磁碟區資料複製到配對區域,以處理任何意外的區域中斷。啟用 CRR 的目標磁碟區可用於讀取操作,這使其成為災難復原模擬的理想候選者。此外,可以為 CRR 目的地分配最低服務等級(例如標準),以降低整體 TCO。如果發生故障轉移,複製可能會中斷,導致對應的磁碟區無法進行讀取/寫入。此外,可以使用動態服務級別功能來變更磁碟區的服務級別,以顯著降低災難復原成本。這是Azure NetApp Files的另一個獨特功能,具有 Azure 內的區塊複製功能。
長期 Snapshot 副本存檔
許多組織必須執行資料庫文件中快照資料的長期保留,這是強制性合規要求。雖然此 HLD 中未使用此過程,但可以使用簡單的批次腳本輕鬆完成此過程 "AzCopy"將快照目錄複製到 Azure Blob 容器。可以使用計劃任務根據特定的計劃觸發批次腳本。過程很簡單 - 它包括以下步驟:
-
下載 AzCopy V10 執行檔。無需安裝,因為它是 `exe`文件。
-
使用具有適當權限的容器等級 SAS 令牌授權 AzCopy。
-
在 AzCopy 獲得授權後,資料傳輸就開始了。
筆記:
-
在批次檔中,確保轉義 SAS 令牌中出現的 % 字元。這可以透過在 SAS 令牌字串中現有的 % 字元旁邊添加額外的 % 字元來實現。
-
這 "需要安全傳輸"儲存帳戶的設定決定了與儲存帳戶的連線是否透過傳輸層安全性 (TLS) 進行保護。預設情況下啟用此設定。以下批次腳本範例以遞歸方式將資料從 Snapshot 複製目錄複製到指定的 Blob 容器:
SET source="Z:\~snapshot" echo %source% SET dest="https://testanfacct.blob.core.windows.net/azcoptst?sp=racwdl&st=2020-10-21T18:41:35Z&se=2021-10-22T18:41:00Z&sv=2019-12-12&sr=c&sig=ZxRUJwFlLXgHS8As7HzXJOaDXXVJ7PxxIX3ACpx56XY%%3D" echo %dest%
在 PowerShell 中執行下列範例 cmd:
–recursive
INFO: Scanning... INFO: Any empty folders will not be processed, because source and/or destination doesn't have full folder support Job b3731dd8-da61-9441-7281-17a4db09ce30 has started Log file is located at: C:\Users\niyaz\.azcopy\b3731dd8-da61-9441-7281-17a4db09ce30.log 0.0 %, 0 Done, 0 Failed, 2 Pending, 0 Skipped, 2 Total, INFO: azcopy.exe: A newer version 10.10.0 is available to download 0.0 %, 0 Done, 0 Failed, 2 Pending, 0 Skipped, 2 Total, Job b3731dd8-da61-9441-7281-17a4db09ce30 summary Elapsed Time (Minutes): 0.0333 Number of File Transfers: 2 Number of Folder Property Transfers: 0 Total Number of Transfers: 2 Number of Transfers Completed: 2 Number of Transfers Failed: 0 Number of Transfers Skipped: 0 TotalBytesTransferred: 5 Final Job Status: Completed
筆記:
-
Azure NetApp Files中即將推出類似的長期保留備份功能。
-
批次腳本可用於任何需要將資料複製到任何區域的 Blob 容器的場景。
成本最佳化
透過對資料庫完全透明的磁碟區重塑和動態服務等級變化, Azure NetApp Files可以在 Azure 中持續優化成本。此功能在本 HLD 中廣泛使用,以避免過度配置額外的儲存空間來處理工作負載高峰。
透過建立 Azure 函數並結合 Azure 警報日誌,可以輕鬆調整磁碟區大小。