將 Azure SQL Database 移轉至可用性區域支援
本指南說明如何將 Azure SQL Database 從非可用性區域支援移轉至可用性支援。
啟用 Azure SQL Database 的區域備援可確保高可用性,因為資料庫會利用 Azure 可用性區域,在 Azure 區域內的多個實體位置之間複寫資料。 藉由選取區域備援,您無須進行任何應用程式邏輯變更,即可讓資料庫和彈性集區在面對大規模故障 (例如發生嚴重的資料中心服務中斷) 時,也能確保復原能力。
必要條件
移轉至可用性區域支援之前,請參閱下表以確保您的 Azure SQL Database 位於支援的服務層級和部署模型中。 請確保您的層級和模型是在支援可用性區域的地區中提供。
服務層級 | 部署模型 | 區域備援可用性 |
---|---|---|
進階 | 單一資料庫或彈性集區 | 所有支援可用性區域的地區 |
業務關鍵 | 單一資料庫或彈性集區 | 所有支援可用性區域的地區 |
一般用途 | 單一資料庫或彈性集區 | 所選支援可用性區域的地區 |
超大規模資料庫 | 單一資料庫 | 所有支援可用性區域的地區 |
停機時間需求
進階、業務關鍵和一般用途服務層級的移轉是一項線上作業,在最後會短暫中斷連線以完成移轉流程。 如果您已針對標準暫時性錯誤實作重試邏輯,則不會注意到容錯移轉。
針對超大規模資料庫服務層級,區域備援支援只能在資料庫建立期間指定,而且在佈建資源後就無法修改。 如果您想要移至可用性區域支援,就必須使用資料庫複製、時間點還原或異地複本來傳輸資料。 若目標資料庫位於與來源不同的區域中,或是若目標的資料庫備份儲存體備援與來源資料庫不同時,則停機時間與資料作業的大小成正比。
移轉 (進階、業務關鍵和一般用途)
針對進階、業務關鍵和一般用途服務層級,可移轉至區域備援。
請遵循下列步驟,針對單一資料庫或彈性集區執行移轉。
移轉單一資料庫
移轉彈性集區
重要
啟用彈性集區的區域備援支援,可將集區內的所有資料庫設為區域備援。
重新部署 (超大規模資料庫)
針對超大規模資料庫服務層級,區域備援支援只能在資料庫建立期間指定,而且在佈建資料庫後就無法修改。 如果您希望取得區域備援支援,則必須從現有的超大規模資料庫服務層級單一資料庫執行資料傳輸。 若要執行傳輸並啟用區域備援選項,就必須使用資料庫複製、時間點還原或異地複本來建立複製。
重新部署考量
重新部署有兩種模式 (線上和離線):
資料庫複製和時間點還原方法 (離線模式) 在特定時間點建立交易一致的資料庫。 因此,在複製或還原作業啟動後執行的任何資料變更,皆無法在複製或還原的資料庫上使用。
異地複本方法 (線上模式) 是一種重新部署,會讓來源中的任何資料變更都同步至目標。
您必須更新應用程式的連接字串,以指向區域備援資料庫。
重新部署單一資料庫
資料庫複本
若要使用 Azure 入口網站、PowerShell 或 Azure CLI 建立資料庫複本並啟用區域備援,請遵循在 Azure SQL Database 中複製資料庫的交易一致性複本的指示進行操作。
還原時間點
若要使用 Azure 入口網站、PowerShell 或 Azure CLI 建立時間點資料庫還原並啟用區域備援,請遵循時間點還原的指示進行操作。
異地複本
若要建立資料庫的異地複本:
請遵循設定作用中異地複寫與容錯移轉 (Azure SQL Database) 的指示使用 Azure 入口網站、PowerShell 或 Azure CLI,並在 [計算 + 儲存體] 下啟用區域備援
複本已植入,而植入資料所需時間取決於來源資料庫的大小。 若要監視植入狀態,您可以透過 Azure 入口網站,或在複本資料庫上執行下列 TSQL 查詢:
SELECT * FROM sys.dm_geo_replication_link_status; SELECT * FROM sys.dm_operation_status;
資料庫植入完成後,請執行已規劃的 (無資料遺失) 容錯移轉,讓區域備援目標資料庫成為主要資料庫。 使用 sys.dm_geo_replication_link_status 來檢視異地複寫狀態的情況。 當次要資料庫處於一致的交易狀態時,
replication_state_desc
為CATCH_UP
。 在 sys.dm_operation_status 動態管理檢視中,當植入作業完成時,檢查state_desc
是否為COMPLETED
。更新應用程式連接字串中的伺服器名稱,以反映新的區域備援資料庫。
若要執行清除作業,請考慮從異地複本關聯性中移除原始的非區域備援資料庫。 您可以選擇將其刪除。
停用區域備援
若要停用單一資料庫或彈性集區的區域備援,您可以使用入口網站或 ARM API。
若要停用超大規模資料庫服務層級的區域備援,您可以反轉重新部署 (超大規模資料庫) 中所述的步驟。
若要使用 Azure 入口網站 停用區域備援:
移至 Azure 入口網站,以尋找並選取您不想再成為區域備援的彈性集區。
選取 [設定],然後選取 [設定]。
針對您要讓此彈性集區區域備援?,選取 [否]。
選取儲存。
若要使用PowerShell停用區域備援:
Set-AzSqlElasticpool -ResourceGroupName "RSETLEM-AzureSQLDB" -ServerName "rs-az-testserver1" -ElasticPoolName "testep10" -ZoneRedundant:$false
若要使用 Azure CLI 停用區域備援:
az sql elastic-pool update --resource-group "RSETLEM-AzureSQLDB" --server "rs-az-testserver1" --name "testep10" --zone-redundant false
若要使用ARM停用區域備援, 請參閱 資料庫 - 在ARM 中建立或更新並使用 properties.zoneRedundant
屬性。