如何在適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器中設定 Azure CLI 以進行移轉服務
Azure CLI 是一組用來跨 Azure 服務建立和管理資源的文字型命令。 提供與 Azure 入口網站相同的功能,但已針對想要在命令行環境中工作的使用者最佳化。 若要使用 Azure CLI 來開始移轉,您必須在本機電腦上安裝 Azure CLI。
必要條件
- 安裝 Azure CLI:根據您的作業系統,下載並安裝 Azure CLI。 適用於 Windows、macOS 與 Linux。
- Azure CLI 安裝指南:遵循官方 Azure 文件中提供的指示來安裝 Azure CLI - 如何安裝 Azure CLI。
- 檢查 Azure CLI 版本:確定您的 Azure CLI 版本至少為 2.56.0 或更新版本,因為移轉服務需要此版本。 使用
az --version
命令來檢查您目前的版本。 - 登入 Azure:安裝之後,執行
az login
進行驗證。 這會開啟您的預設瀏覽器,以使用您的 Azure 認證完成登入程序。
這些步驟會準備您的環境,以使用 Azure CLI 有效地管理適用於 PostgreSQL 的 Azure 資料庫中的移轉服務。 請一律參閱最新的 Azure 文件,以取得安裝程序的任何更新或變更。
設定移轉服務的 CLI 命令
所有 CLI 命令都會以 az postgres flexible-server migration
開頭。 另外也提供 help 陳述式來協助您了解各種選項,並為 CLI 命令建構正確的語法框架。
CLI 安裝好之後,請開啟命令提示字元,並使用下列命令登入 Azure 帳戶。
az login
移轉命令
移轉服務提供下列命令,以協助您將 PostgreSQL 執行個體移轉至適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器。
Help 命令
Azure CLI 中的 --help
命令是一個寶貴的選項,可提供命令及其子命令的詳細記錄,包括作業所需的動詞。 –-help
命令會顯示適用於 PostgreSQL 的 Azure 資料庫中移轉服務的必要命令及其相關聯的動作。
az postgres flexible-server migration –-help
輸出會引導您完成使用 Azure CLI 有效管理資料庫移轉所需的必要步驟和參數。
建立命令
Azure CLI 中的 az postgres flexible-server migration create
命令可用來起始新的移轉工作流程。 有助於將資料庫從來源 PostgreSQL 執行個體移轉至適用於 PostgreSQL 的目標 Azure 資料庫 - 彈性伺服器執行個體。 此命令會設定必要的參數和組態,以確保順暢且有效率的移轉程序。
如需詳細資訊,請參閱 az postgres flexible-server migration create
列出命令
az postgres flexible-server migration list
命令用於列出對適用於 PostgreSQL 的 Azure 資料庫目標所做的所有移轉嘗試。 此命令提供已起始的移轉概觀,可讓您追蹤每個移轉嘗試的狀態和詳細資料。
如需詳細資訊,請參閱 az postgres flexible-server migration list
顯示命令
az postgres flexible-server migration show
命令可協助您監視進行中的移轉,並提供移轉的目前狀態和子狀態。 這些詳細資料包含移轉的目前狀態和子狀態相關資訊。
如需詳細資訊,請參閱 az postgres flexible-server migration show
某些可能的移轉狀態:
移轉狀態
State | 描述 |
---|---|
InProgress | 正在設定移轉基礎結構,或正在移轉實際的資料。 |
已取消 | 已取消或已刪除移轉。 |
失敗 | 移轉失敗。 |
驗證失敗 | 驗證失敗。 |
已成功 | 移轉成功且已完成。 |
WaitingForUserAction | 僅適用於線上移轉。 等候使用者動作以執行完全移轉。 |
移轉子狀態
子狀態 | 描述 |
---|---|
PerformingPreRequisiteSteps | 正在設定用於資料移轉的基礎結構。 |
驗證進行中 | 驗證正在進行中。 |
MigratingData | 資料移轉正在進行中。 |
CompletingMigration | 移轉處於完成的最終階段。 |
已完成 | 已完成移轉。 |
失敗 | 移轉失敗。 |
驗證子狀態
子狀態 | 描述 |
---|---|
失敗 | 驗證失敗。 |
已成功 | 驗證成功。 |
警告 | 驗證處於警告狀態。 |
更新命令
az postgres flexible-server migration update
命令可用來管理移轉至適用於 PostgreSQL 的 Azure 資料庫彈性伺服器的程序。 具體來說,這可以用來:
- 執行完全移轉:這可藉由將資料庫流量從來源伺服器切換至目標彈性伺服器來完成移轉程序。
- 基礎資料移轉完成之後,移轉工作會移至
WaitingForCutoverTrigger
子狀態。 在此狀態下,使用者可以選取移轉方格或透過 CLI 中的移轉名稱,從入口網站觸發完全移轉。 - 在起始完全移轉之前,請務必確保:
- 已停止對來源的寫入
latency
值減少至 0 或接近 0latency
值表示目標上次與來源同步的時間。 此時,便可以停止寫入至來源並起始完全移轉。 如果來源有大量流量,建議先停止寫入,以便讓Latency
接近 0,然後起始完全移轉。- 完全移轉作業會將來源的所有暫止的變更套用至目標,並完成移轉。 如果您觸發「完全移轉」,即使是非零
Latency
,複寫仍會停止直到該時間點為止。 所有在完全移轉點之前的來源資料,都會套用至目標。 假設延遲在完全移轉點為 15 分鐘,因此最後 15 分鐘內的所有變更資料都會套用至目標上。
- 基礎資料移轉完成之後,移轉工作會移至
- 取消移轉:如有需要,此選項可讓您停止移轉程序。
- 在來源設定邏輯複寫:當來源伺服器是適用於 PostgreSQL 的 Azure 資料庫 - 單一伺服器時,這會很有用,因為這會準備伺服器以將資料復寫至彈性伺服器。
如需詳細資訊,請參閱 az postgres flexible-server migration update
摘要
下表資料表說明移轉命令所使用的參數:
參數 | 相關命令 | 描述 |
---|---|---|
subscription |
create、list、show、update | PostgreSQL 彈性伺服器的訂用帳戶識別碼 |
resource-group |
create、list、show、update | PostgreSQL 彈性伺服器的資源群組 |
name |
create、list、show | PostgreSQL 彈性伺服器的名稱 |
migration-name |
create、list、update | 嘗試移轉到彈性伺服器之移轉的唯一識別碼。 此欄位只接受英數字元,不接受任何特殊字元,但連字號 (-) 除外。 名稱開頭不能是 -,且彈性伺服器目標不能有同名的兩個移轉。 |
filter |
清單 | 若要篩選移轉,支援的值有兩個 – 作用中和全部 |
help |
create、list、show、update | 提供每個命令的相關資訊。 |
migration-mode |
create | 這是選擇性參數。 允許的值為 - offline、online。 預設值:離線。 |
migration-option |
create | 可讓您在觸發移轉前執行驗證。 預設值為 ValidateAndMigrate。 允許的值為 - Migrate、Validate、ValidateAndMigrate。 |
properties |
create | JSON 檔案的絕對路徑,其中包含來源、目標伺服器、要移轉的資料庫、SSL 模式、定義來源類型的相關資訊 |
JSON 檔案的詳細資料
az postgres flexible-server migration create
命令需要 JSON 檔案路徑做為 --properties
參數的一部分,其中包含移轉的組態詳細資料,例如源資料庫伺服器資源識別碼、系統管理員認證、要移轉的資料庫,以及其他重要設定。 以下是不同的屬性:
屬性名稱 | 描述 |
---|---|
sourceDbServerResourceId |
內部部署、虛擬機器 (VM)、雲端式 PostgreSQL 服務的來源伺服器詳細資料 - <<hostname or IP address>>:<<port>>@<<username>> 。 如果來源伺服器是適用於 PostgreSQL 的 Azure 資料庫 - 單一伺服器,則資源識別碼的格式為 - /subscriptions/<<Subscription ID>>/resourceGroups/<<Resource Group Name>>/providers/Microsoft.DBforPostgreSQL/servers/<<PostgreSQL Single Server name>> |
adminCredentials |
此參數會同時列出來源伺服器和目標 PostgreSQL 彈性伺服器的管理使用者密碼。 這些密碼有助於向來源伺服器和目標伺服器進行驗證, 這包含兩個子屬性,sourceServerPassword 和 targetServerPassword |
targetServerUserName |
預設值是建立 PostgreSQL 目標彈性伺服器期間所建立的管理使用者,而提供的密碼會用於驗證此使用者。 |
dbsToMigrate |
指定您要移轉到彈性伺服器的資料庫清單。 您一次最多可以包含八個資料庫名稱。 提供陣列格式的資料庫清單。 |
overwriteDBsInTarget |
設定為 true (預設值) 時,如果目標伺服器的現有資料庫剛好與您嘗試移轉的資料庫同名,則移轉服務會自動覆寫資料庫 |
migrationRuntimeResourceId |
如果需要使用執行階段伺服器進行移轉,則為必要。 格式為 - /subscriptions/<<Subscription ID>>/resourceGroups/<<Resource Group Name>>/providers/Microsoft.DBforPostgreSQL/flexibleServers/<<PostgreSQL Flexible Server name>> |
sourceType |
必要的 參數。 值可以是 - on-premises、AWS_RDS、AWS_AURORA、GCP_CloudSQL、AzureVM、PostgreSQLSingleServer |
sslMode |
移轉的 SSL 模式。 針對其他來源類型,PostgreSQLSingleServer 的 SSL 模式是 VerifyFull 和 Prefer/Require。 |