透過 Percona XtraBackup for MySQL 公用程式建立實體資料庫備份檔案之後,您可以使用該檔案將 MySQL 資料庫遷移至 Cloud SQL。相較於使用邏輯備份檔案,使用實體備份檔案遷移資料庫的還原速度更快,因此非常適合用於移動內含數 TB 資料的大型資料庫。
這項移轉流程中有下列步驟:
備份來源 MySQL 執行個體,並使用 Percona XtraBackup for MySQL 公用程式準備實體備份檔案。
將備份檔案上傳至 Cloud Storage bucket。
在資料庫遷移服務建立及執行遷移工作。
視情況而定,您可以自行建立目的地執行個體,也可以讓資料庫遷移服務在建立遷移工作流程時,為您建立目的地執行個體。詳情請參閱「設定及執行遷移作業」步驟。
在資料完整移轉後推送移轉工作。
離線遷移
本指南說明環境的遷移情境,您可以在這些環境中確保來源和目的地資料庫執行個體之間的網路連線。
您可以執行測試遷移作業,讓資料庫遷移服務不連線至來源執行個體。資料庫遷移服務只會讀取您上傳至 Cloud Storage bucket 的備份檔案,並將內容複製到 MySQL 適用的 Cloud SQL 目的地。不使用網路連線的遷移流程不建議用於實際工作環境遷移作業,因為資料庫遷移服務無法完整執行資料驗證。
如要嘗試執行離線遷移作業,請按照下列方式調整程序:
建立來源連線設定檔時,請使用範例 IP 位址、通訊埠、使用者名稱和密碼。例如:
- IP:
0.0.0.0 - 通訊埠:
1234 - 遷移使用者名稱:
test-user
- IP:
建立遷移工作時,請注意下列事項:
- 使用公開 IP 連線。請勿設定任何其他網路選項。
- 使用單次遷移工作類型。
限制
本節列出使用 Percona XtraBackup 實體檔案進行遷移的限制:
不支援使用實體備份檔案遷移至 MySQL 5.6、8.4 或 9.7。 請參閱「已知限制」。
跨版本注意事項:
- 您只能在相同資料庫主要版本內遷移,例如從 MySQL 8.0.30 遷移至 MySQL 8.0.35,或從 MySQL 5.7.0 遷移至 MySQL 5.7.1。
您無法從 MySQL 5.7 遷移至 MySQL 8.0。
不支援遷移至較舊的資料庫主要或子版本。舉例來說,您無法從 MySQL 8.0 遷移至 5.7,也無法從 MySQL 8.0.36 遷移至 8.0.16。
跨架構考量:Cloud SQL 支援 ARM 架構。您只能在相同架構類型的機器之間遷移資料庫。舉例來說,如果資料庫託管於 ARM64 機器,就必須遷移至 ARM64 機器。
目的地資料庫的磁碟大小必須等於或大於來源資料庫大小。詳情請參閱 Cloud SQL 版本的 MySQL 機型。
不支援含有超過 5 TB 檔案的備份。
上傳至 Cloud Storage 的檔案大小上限為 5 TB。 這項限制僅適用於備份檔案的大小,而非資料庫總大小。即使資料庫總大小超過 5 TB,您仍可採用這個遷移情境。備份檔案大小取決於
innodb_file_per_table旗標 (以及其他設定):- 如果
innodb_file_per_table設為OFF,則可將多個資料表儲存至單一檔案。在這種情況下,如果資料庫大於 5 TB,可能就不支援這個情境。 - 如果將
innodb_file_per_table設為ON,每個資料表都會放入個別的*.ibd檔案。如果沒有任何資料表的大小超過 5 TB,備份檔案應該就能上傳至 Cloud Storage。
如果資料庫總大小超過 5 TB,且資料包含特別大的資料表,建議您先執行模擬備份,將資料備份至本機磁碟區。這樣一來,您就能確認沒有任何備份檔案超過 5 TB 的 Cloud Storage 限制。
- 如果
您必須使用 Percona XtraBackup 將資料備份到 Cloud Storage bucket。不支援其他備份公用程式。
請務必將備份檔案上傳至專用的 Cloud Storage 資料夾,當中不得有其他檔案。
只有地端部署或自行管理的 VM MySQL 資料庫,才支援從 Percona XtraBackup 實體檔案遷移資料庫。不支援從 Amazon Aurora 或 Amazon RDS 上的 MySQL 資料庫遷移。
只能從完整備份遷移資料。不支援其他備份類型,例如增量或部分備份。
資料庫遷移不包含資料庫使用者或權限。
您必須將二進位記錄格式設為
ROW。如果將二進位記錄設定為任何其他格式 (例如STATEMENT或MIXED),複製作業可能會失敗。來源執行個體上的
innodb_page_size參數必須設為預設值16384。您無法從外部資料庫遷移任何外掛程式。
費用
如要將同質資料庫遷移至 Cloud SQL,不必支付額外費用即可使用資料庫遷移服務。不過,系統會根據 Cloud SQL 和 Cloud Storage 的定價,收取網路費用,以及為遷移作業建立的 Cloud SQL 和 Cloud Storage 實體費用。
在本文件中,您將使用下列 Google Cloud計費元件:
- Cloud Storage
- Cloud SQL
如要根據預測用量估算費用,請使用 Pricing Calculator。
事前準備
- 請考量要在哪個區域建立目的地資料庫。資料庫遷移服務是完全區域性的產品,也就是說,與遷移作業相關的所有實體 (來源和目的地連線設定檔、遷移工作、目的地資料庫、儲存空間 bucket) 都必須儲存在單一區域。
-
在 Google Cloud 控制台的專案選取器頁面中,選取或建立 Google Cloud 專案。
選取或建立專案所需的角色
- 選取專案:選取專案時,不需要具備特定 IAM 角色,只要您在專案中獲派角色,即可選取該專案。
-
建立專案:如要建立專案,您必須具備專案建立者角色 (
roles/resourcemanager.projectCreator),其中包含resourcemanager.projects.create權限。瞭解如何授予角色。
啟用資料庫遷移服務、Compute Engine 和 Cloud SQL Admin API (如有尚未啟用的 API)。
啟用 API 所需的角色
如要啟用 API,您必須具備
serviceusage.services.enable權限。如果您建立了專案,可能已透過擁有者角色 (roles/owner) 取得這項權限。否則,您可以透過服務使用情形管理員角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。
必要的角色
如要取得使用實體備份檔案執行同質 MySQL 遷移作業所需的權限,請要求管理員在專案中授予您下列 IAM 角色:
-
執行遷移作業的使用者帳戶:
- 資料庫遷移管理員 (
roles/datamigration.admin) - Storage 物件檢視者 (
roles/storage.objectViewer) - Cloud SQL 編輯者 (
roles/cloudsql.editor)
- 資料庫遷移管理員 (
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
這些預先定義的角色具備使用實體備份檔案執行同質 MySQL 遷移作業所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
如要使用實體備份檔案執行同質 MySQL 遷移作業,必須具備下列權限:
-
執行遷移作業的使用者帳戶:
-
datamigration.* -
resourcemanager.projects.get -
resourcemanager.projects.list -
cloudsql.instances.create -
cloudsql.instances.get -
cloudsql.instances.list -
compute.machineTypes.list -
compute.machineTypes.get -
compute.projects.get -
storage.buckets.create -
storage.buckets.list
-
步驟 1:考量網路連線需求
您可以透過不同的網路方法,設定來源和 Cloud SQL 目的地執行個體之間的連線。視您使用的方法而定,您可能需要在遷移過程中執行額外步驟。
請先考量哪種連線能力方法適合您的情境,再繼續進行後續步驟,因為您的選擇可能會影響需要使用的設定。詳情請參閱「設定連線能力」。
步驟 2:準備來源資料
為準備要移轉的資料,請執行下列步驟:
- 在來源執行個體安裝合適的 Percona XtraBackup 公用程式版本。您必須使用與來源執行個體相同或更新版本的 Percona XtraBackup。詳情請參閱 Percona XtraBackup 說明文件中的伺服器版本和備份版本比較。
- 如為 MySQL 5.7,請安裝 Percona XtraBackup 2.4。
- 如為 MySQL 8.0,請安裝 Percona XtraBackup 8.0。
- 使用 Percona XtraBackup 匯出及準備來源執行個體的實體備份檔案。如要完整瞭解如何使用 Percona XtraBackup,請參閱該工具的說明文件。您也可以展開下列章節,查看建議步驟範例。
使用 Percona XtraBackup 建立及準備實體備份檔案的建議步驟範例
使用下列任何指令資料之前,請先替換以下項目:
- TARGET_DIR,並指定要儲存輸出備份檔案的路徑。
- USERNAME,並使用在來源執行個體中具有
BACKUP_ADMIN權限的使用者。 - PASSWORD:USERNAME 帳戶的密碼。
- 對來源執行個體執行完整的實體備份。執行下列指令:
xtrabackup --backup \ --target-dir=TARGET_DIR \ --user=USERNAME \ --password=PASSWORD
- 備份檔案準備就緒後,請使用
--prepare指令確保檔案一致性。執行下列指令:xtrabackup --prepare --target-dir=TARGET_DIR
- 建立 bucket 來儲存備份檔案。請確認您使用的區域,正是打算建立目的地 MySQL 適用的 Cloud SQL 執行個體處。
資料庫遷移服務是完全區域性的產品,也就是說,與遷移作業相關的所有實體 (來源和目的地連線設定檔、遷移工作、目的地資料庫、備份檔案的儲存空間 bucket) 都必須儲存在單一區域。
- 將備份檔案上傳至 Cloud Storage bucket。請務必將備份檔案上傳至專用的 Cloud Storage 資料夾,當中不得有其他檔案。請參閱 Cloud Storage 說明文件中的「從檔案系統上傳物件」。
- 為來源資料庫執行個體建立來源連線設定檔。
控制台
如要建立來源連線設定檔,請按照下列步驟操作:
- 前往 Google Cloud 控制台的「Connection profiles」(連線設定檔) 頁面。
- 按一下 Create profile。
- 在「建立連線設定檔」頁面的「資料庫引擎」下拉式選單中,選取「MySQL」。
- 在「Connection profile name」(連線設定檔名稱) 欄位中,輸入人類可讀的連線設定檔名稱。這個值會顯示在連線設定檔清單中。
- 保留自動產生的連線設定檔 ID。
- 輸入主機名稱或 IP 位址。
如果來源資料庫託管於 Google Cloud,或使用反向 SSH 通道將目的地資料庫連線至來源資料庫,請指定來源資料庫的私人 (內部) IP 位址。Cloud SQL 目的地可存取這個位址。詳情請參閱「使用虛擬私有雲對接設定連線能力」。
如要使用其他連線方式 (例如 IP 許可清單),請提供公開 IP 位址。
- 輸入用於存取主機的通訊埠。MySQL 預設通訊埠為 3306。
- 輸入目標資料庫的使用者名稱和密碼。 使用者帳戶必須具備必要權限,才能存取您的資料。 詳情請參閱「 設定來源資料庫,以便單次遷移資料」或「 設定來源資料庫,以便持續遷移資料」。
- 在頁面的「連線設定檔區域」部分,選取要儲存連線設定檔的區域。
選用:如果連線是透過公用網路建立 (使用 IP 許可清單),建議您對來源和目的地資料庫之間的連線使用 SSL/TLS 加密。
頁面的「Secure your connection」(保護連線) 區段提供三種 SSL/TLS 設定選項:
- 無:Cloud SQL 目的地執行個體會連線至來源資料庫,不加密。
僅限伺服器驗證:Cloud SQL 目的地執行個體連線至來源資料庫時,執行個體會驗證來源,確保執行個體安全連線至正確的主機。這可防止中間人攻擊。如果是僅限伺服器驗證,來源不會驗證執行個體。
如要使用僅限伺服器驗證,您必須提供憑證授權單位 (CA) 的 x509 PEM 編碼憑證,該憑證授權單位已簽署外部伺服器的憑證。
- 伺服器與用戶端驗證:目的地執行個體連線至來源時,執行個體會驗證來源,來源也會驗證執行個體。
伺服器/用戶端驗證機制可提供最強大的安全性。不過,如果您不想在建立 Cloud SQL 目的地執行個體時提供用戶端憑證和私密金鑰,仍可使用僅限伺服器的驗證。
如要使用伺服器用戶端驗證,您必須在建立目的地連線設定檔時提供下列項目:
- 簽署來源資料庫伺服器憑證的 CA 憑證 (CA 憑證)。
- 執行個體用來向來源資料庫伺服器驗證身分的憑證 (用戶端憑證)。
- 與用戶端憑證相關聯的私密金鑰 (用戶端金鑰)。
- 按一下「建立」。 連線設定檔現已建立。
gcloud
這個範例使用選用的
--no-async旗標,因此所有作業都會同步執行。這表示某些指令可能需要一段時間才能完成。您可以略過--no-async旗標,以非同步方式執行指令。如果這麼做,您必須使用gcloud database-migration operations describe指令,確認作業是否成功。使用下列任何指令資料之前,請先替換以下項目:
- CONNECTION_PROFILE_ID,其中包含連線設定檔的機器可讀取 ID。
- 將 REGION 替換為要儲存連線設定檔的區域 ID。
- HOST_IP_ADDRESS,並提供資料庫遷移服務可連線至來源資料庫執行個體的 IP 位址。這個值會因遷移時使用的 連線方式而異。
- PORT_NUMBER 替換為來源資料庫接受傳入連線的通訊埠編號。MySQL 預設通訊埠為 3306。
- USERNAME:資料庫使用者帳戶名稱,資料庫遷移服務會以這個帳戶連線至來源資料庫執行個體。
- PASSWORD:資料庫使用者帳戶的密碼。
- (選用) CONNECTION_PROFILE_NAME 連線設定檔的人類可讀名稱。這個值會顯示在 Google Cloud 控制台中。
執行下列指令:
Linux、macOS 或 Cloud Shell
gcloud database-migration connection-profiles \ create mysql CONNECTION_PROFILE_ID \ --no-async \ --region=REGION \ --host=HOST_IP_ADDRESS \ --port=PORT_NUMBER \ --username=USERNAME \ --password=PASSWORD \ --display-name=CONNECTION_PROFILE_NAME
Windows (PowerShell)
gcloud database-migration connection-profiles ` create mysql CONNECTION_PROFILE_ID ` --no-async ` --region=REGION ` --host=HOST_IP_ADDRESS ` --port=PORT_NUMBER ` --username=USERNAME ` --password=PASSWORD ` --display-name=CONNECTION_PROFILE_NAME
Windows (cmd.exe)
gcloud database-migration connection-profiles ^ create mysql CONNECTION_PROFILE_ID ^ --no-async ^ --region=REGION ^ --host=HOST_IP_ADDRESS ^ --port=PORT_NUMBER ^ --username=USERNAME ^ --password=PASSWORD ^ --display-name=CONNECTION_PROFILE_NAME
您應該會收到類似以下的回應:
Waiting for connection profile [CONNECTION_PROFILE_ID] to be created with [OPERATION_ID] Waiting for operation [OPERATION_ID] to complete...done. Created connection profile CONNECTION_PROFILE_ID [OPERATION_ID]
步驟 3:設定及執行遷移工作
使用 Percona XtraBackup 遷移時,您可以自行建立 Cloud SQL 目的地執行個體,或由資料庫遷移服務代為建立。詳情請參閱「遷移工作建立總覽」。
每種做法都需要遵循略有不同的程序。使用下拉式選單顯示與您情境相關的程序:
- 如要讓資料庫遷移服務建立目的地資料庫,請選取「Migrate to a new destination instance」(遷移至新的目的地執行個體)。
- 如要遷移至在資料庫遷移服務外部建立的目的地資料庫,請選取「遷移至現有目的地執行個體」。
-
遷移至新的目的地執行個體時,資料庫遷移服務會在建立遷移工作流程期間,為您建立目的地 MySQL 適用的 Cloud SQL 執行個體。步驟 3a. 建立遷移工作,將資料遷移至新的目的地執行個體
如要建立遷移工作,將資料遷移至新的目的地執行個體,請按照下列步驟操作:控制台
定義遷移工作設定
- 前往 Google Cloud 控制台的「遷移工作」頁面。
- 點選「建立遷移工作」。
遷移工作設定精靈頁面隨即開啟。 這個精靈包含多個面板,可引導您完成各項設定步驟。
如要隨時暫停建立遷移工作,請按一下「儲存並結束」。您輸入的所有資料都會儲存為遷移工作草稿。您可以稍後再完成遷移工作草稿。
- 在「開始使用」頁面中,輸入下列資訊:
- 遷移工作名稱
這是遷移工作的易讀名稱。這個值會顯示在 Google Cloud 控制台。
- 遷移工作 ID
這是遷移工作的機器可讀 ID。 您可以使用這個值,透過資料庫遷移服務 Google Cloud CLI 指令或 API,處理遷移工作。
- 從「Source database engine」(來源資料庫引擎) 清單中選取「MySQL」。
系統會自動填入「Destination database engine」(目的地資料庫引擎) 欄位,且無法變更。
- 選取要儲存遷移作業的區域。
資料庫遷移服務是完全區域性的產品,也就是說,與遷移作業相關的所有實體 (來源和目的地連線設定檔、遷移工作、目的地資料庫) 都必須儲存在單一區域。請根據需要資料的服務 (例如 Compute Engine 執行個體或 App Engine 應用程式,以及其他服務) 所在位置選取區域。選定目的地區域後,即無法變更。
- 遷移工作名稱
- 按一下 [儲存並繼續]。
指定來源連線設定檔的相關資訊
- 在「定義來源」頁面中,執行下列步驟:
- 在「Source connection profile」(來源連線設定檔) 下拉式選單中,選取來源資料庫的連線設定檔。
- 在「自訂完整傾印設定」部分,按一下「編輯設定」。
- 在「Edit full dump configuration」(編輯完整轉儲設定) 面板中,從「Full dump method」(完整轉儲方法) 下拉式選單中選取「Physical based」(實體型)。
- 在「Provide your folder」(提供資料夾) 中,按一下「Browse」(瀏覽),然後選取您上傳完整 dump 檔案的資料夾 (「準備來源資料」一節中的步驟 3)。
- 按一下 [儲存]。
- 按一下 [儲存並繼續]。
設定並建立目的地 Cloud SQL 執行個體
- 在「Define a destination」(定義目的地) 頁面的「Type of destination instance」(目的地執行個體類型) 下拉式選單中,選取「New instance」(新執行個體)。定義所有相關設定:
- 在「Destination Instance ID」(目的地執行個體 ID) 欄位中,提供 Cloud SQL 執行個體的 ID,或使用自動生成的 ID。
請勿在 ID 中加入敏感或個人識別資訊。執行個體名稱中不需包含專案 ID。系統會在適當情況下 (例如在記錄檔中) 自動執行這項操作。
- 在「Password」(密碼) 欄位中,提供目的地 Cloud SQL 執行個體的英數密碼。這是執行個體中
root管理員帳戶的密碼。您可以手動輸入密碼,也可以按一下「Generate」(產生),讓資料庫遷移服務自動建立密碼。
- 從「資料庫版本」下拉式選單中,選擇目的地執行個體的資料庫版本。
按一下「顯示子版本」,即可查看所有子版本。 進一步瞭解跨版本遷移支援。
- 選取目的地執行個體的 MySQL 適用的 Cloud SQL 版本。有兩種選項:MySQL 適用的 Cloud SQL Enterprise 版本和 MySQL 適用的 Cloud SQL Enterprise Plus 版本。
MySQL 適用的 Cloud SQL 版本提供不同的功能、可用機型和定價。請務必參閱 Cloud SQL 說明文件,選擇符合需求的版本。詳情請參閱「MySQL 適用的 Cloud SQL 版本簡介」。
- 「Region」(區域) 選單會顯示您在「Get started」(開始使用) 頁面中選取的區域。
如要將執行個體設為高可用性,請選取「多個可用區 (可用性高)」。您可以同時選取主要和次要可用區。 在建立執行個體時使用次要可用區,須符合下列條件:
- 主要可用區預設為「Any」(不限),次要可用區預設為「Any (different from primary)」(不限 (與主要可用區不同))。
- 如果同時指定主要和次要可用區,兩者必須不同。
- 在「連線」部分,選擇是否要為目的地執行個體新增公開或私人 IP 位址。您可以將執行個體設為同時具備這兩種 IP 位址,但至少須具備其中一種,才能進行遷移。請在下方選取一個適用選項:
- 如要使用虛擬私有雲對接或反向 SSH 通道進行遷移,請選取
「私人 IP」
。
如要啟用私人 IP 連線,請務必符合所有額外的網路需求。
展開這個部分,即可查看完整的私人 IP 規定。
- 已啟用 Service Networking API。您可以使用 Google Cloud 控制台啟用 Service Networking API。
- 您具備
servicenetworking.services.addPeeringIAM 權限。 - 您已為專案設定私人服務存取權,且必須具備
compute.networkAdminIAM 角色。 - 專案中至少有一個非舊版虛擬私有雲網路,或 Shared VPC 網路。
- 如果您使用的是共用虛擬私有雲網路,則還需要執行下列操作:
- 為主專案啟用 Service Networking API。
- 將使用者新增至主專案。
- 在主專案中,將 compute.networkAdmin IAM 角色授予使用者。
- 選取要對等互連的相關聯虛擬私有雲網路。如要透過虛擬私有雲對接連線至遷移來源,請選擇執行個體所在的虛擬私有雲。
- 如果所選虛擬私有雲從未設定代管服務網路,您可以選擇 IP 範圍,然後按一下「連線」,或使用系統自動選取的 IP 範圍,然後按一下「分配並連線」。
- 如要使用 IP 許可清單透過網際網路遷移,
請選取
「Public IP」(公開 IP)。
(選用) 在「公開 IP」下方,按一下「授權網路」欄位,然後授權網路或 Proxy 連線至 Cloud SQL 執行個體。只有您提供的地址才能授權網路。請參閱 Cloud SQL 說明文件中的「設定公開 IP」一節。
您會在後續步驟中設定遷移工作連線。 如要進一步瞭解可用的網路方法,請參閱「設定連線」。
- 如要使用虛擬私有雲對接或反向 SSH 通道進行遷移,請選取
「私人 IP」
。
- 在「Destination Instance ID」(目的地執行個體 ID) 欄位中,提供 Cloud SQL 執行個體的 ID,或使用自動生成的 ID。
選取 Cloud SQL 執行個體的機型。
詳情請參閱「限制」一節。
- MySQL 適用的 Cloud SQL Enterprise Plus 版本:如要在目的地資料庫中使用資料快取功能,請選取「啟用資料快取」核取方塊。
資料快取是 MySQL 適用的 Cloud SQL Enterprise Plus 版本執行個體提供的選用功能,可將高速本機固態硬碟新增至目的地資料庫。這項功能可能會增加 Cloud SQL 費用。 如要進一步瞭解資料快取,請參閱 Cloud SQL 說明文件中的「資料快取總覽」。
- 指定 Cloud SQL 執行個體的儲存空間類型。您可以選擇固態硬碟 (SSD) 或傳統硬碟 (HDD)。
- 指定 Cloud SQL 執行個體的儲存空間容量 (以 GB 為單位)。
請確認執行個體有足夠的儲存空間容量,可處理來源資料庫的資料。您隨時可以提高容量,但無法降低。
(選用) 為目標執行個體設定資料加密選項或資源標籤。
展開這個部分即可查看選用步驟。
按一下「顯示選用設定」,然後:
指定是否要管理從來源遷移至目的地的資料加密。根據預設,您的資料會以 Google Cloud代管的金鑰加密。如要自行管理加密作業,您可以使用客戶自行管理的加密金鑰 (CMEK)。方法如下:
- 選取「使用客戶自行管理的加密金鑰 (CMEK)」核取方塊。
- 從「Select a customer-managed key」(選取客戶自行管理的金鑰) 選單中,選取 CMEK。
如果沒有看到金鑰,請按一下「輸入金鑰資源名稱」,提供要使用的金鑰資源名稱。金鑰資源名稱範例:
projects/my-project-name/locations/my-location/keyRings/my-keyring/cryptoKeys/my-key。- 新增要套用至資料庫伺服器的必要旗標。 如果可以,請確保建立的目的地 Cloud SQL 執行個體上的資料庫旗標與來源資料庫上的旗標相同。進一步瞭解 MySQL 支援的資料庫旗標。
- 新增 Cloud SQL 執行個體專屬的標籤。
標籤可以協助您管理執行個體。舉例來說,您可以按照成本中心或環境將標籤分門別類。帳單中也會顯示標籤,讓您瞭解標籤的成本分布情形。
- 按一下「建立目的地並繼續」。 資料庫遷移服務正在建立 Cloud SQL 目的地執行個體。 這項程序應該會在幾分鐘內完成。
設定來源與目的地資料庫執行個體之間的連線
從「Connectivity method」(連線方式) 下拉式選單中,選取網路連線方式。這個方法會定義新建立的 Cloud SQL 執行個體如何連線至來源資料庫。目前的網路連線方法包括 IP 許可清單、反向 SSH 通道和虛擬私有雲對接。
如要使用... 具體做法 IP 許可清單網路連線方式, 您必須指定目的地執行個體的傳出 IP 位址。如果您建立的 Cloud SQL 執行個體是高可用性執行個體,請一併加入主要和次要執行個體的傳出 IP 位址。 反向 SSH 通道網路連線方式。 您必須選取要託管通道的 Compute Engine VM 執行個體。 指定執行個體後,Google 會提供指令碼,執行在來源和目的地資料庫之間設定通道的步驟。您必須在 Google Cloud CLI 中執行指令碼。
從可連線至來源資料庫和 Google Cloud的機器執行指令。
虛擬私有雲對等互連網路連線方式, 您需要選取來源資料庫所在的虛擬私有雲網路。系統會更新 Cloud SQL 執行個體,以連線至這個網路。 選取並設定網路連線後,按一下「設定並繼續」。
建立遷移工作
在「測試及建立遷移工作」頁面,確認遷移工作的設定。此時測試遷移工作會失敗,因為與 Cloud SQL 目的地執行個體相關聯的服務帳戶沒有必要權限。
測試工作前,請先執行下列其中一項操作,驗證工作設定:
- 將權限指派給目的地執行個體服務帳戶後,如要使用 Google Cloud 控制台測試遷移工作,請按一下「Save and exit」(儲存並結束)。這項操作會將遷移工作儲存為草稿。您可以稍後再返回這個畫面,測試並執行遷移工作。
- 如要在指派目的地執行個體服務帳戶的權限後,使用 Google Cloud CLI 測試遷移作業,請按一下「建立」。使用 Google Cloud CLI,您可以測試已建立但尚未啟動的遷移工作。
gcloud
建立目的地連線設定檔。
使用 Google Cloud CLI 遷移至新的目的地執行個體時,您可以在單一動作中建立目的地執行個體和連線設定檔。
執行下列指令 (點選連結展開):gcloud database-migration connection-profiles create cloudsql這個範例使用選用的
--no-async旗標,因此所有作業都會同步執行。也就是說,部分指令可能需要一段時間才能完成。您可以略過--no-async旗標,以非同步方式執行指令。如果這麼做,您必須使用gcloud database-migration operations describe指令,確認作業是否成功。使用下列任何指令資料之前,請先替換以下項目:
- CONNECTION_PROFILE_ID,其中包含連線設定檔的機器可讀取 ID。
- DATABASE_VERSION,並在目的地執行個體中使用。資料庫版本是以字串形式指定,包含主要和子版本。例如:
MYSQL_8_0、MYSQL_8_0_32、MYSQL_8_0_36。如要查看所有可能的 MySQL 版本,請參閱 --database-version 旗標參考資料。
- (選用) EDITION 根據預設,您使用 Google Cloud CLI 建立的新執行個體會使用 MySQL 適用的 Cloud SQL Enterprise Plus 版。如果您打算使用 MySQL 適用的 Cloud SQL Enterprise Plus 版本,請確認該版本支援您所在的區域。請參閱「MySQL 適用的 Cloud SQL Enterprise Plus 版本區域支援」。
您可以使用
--edition旗標和下列其中一個值來變更版本:enterprise-plus(適用於 MySQL 適用的 Cloud SQL Enterprise Plus 版本)- MySQL 適用的 Cloud SQL Enterprise 版本
enterprise
-
TIER:要使用的 Cloud SQL 機型名稱。機型會以符合 Cloud SQL 慣例的字串指定,例如
db-n1-standard-1、db-perf-optimized-N-2。如需可用機型和其 ID 的完整清單,請參閱 Google Cloud CLI 適用的 MySQL 適用的 Cloud SQL 說明文件中的「 機型」。根據預設,使用 Google Cloud CLI 建立的執行個體會採用 MySQL 適用的 Cloud SQL Enterprise Plus 版本,該版本提供不同的機型。如要使用僅適用於 MySQL 適用的 Cloud SQL Enterprise 版本的機型,請使用選用的
--edition=enterprise旗標指定版本。 - 將 REGION 替換為要儲存連線設定檔的區域 ID。
根據預設,使用 Google Cloud CLI 建立的新執行個體會使用 MySQL 適用的 Cloud SQL Enterprise Plus 版。如果您打算使用 MySQL 適用的 Cloud SQL Enterprise Plus 版本,請確認您所在的區域支援該版本。請參閱「MySQL 適用的 Cloud SQL Enterprise Plus 版本區域支援」。您可以使用選用的
--edition旗標變更版本。 - (選用) CONNECTION_PROFILE_NAME 為連線設定檔提供易於理解的名稱。這個值會顯示在 Google Cloud 控制台中。
- 網路設定
根據預設,您使用 Google Cloud CLI 建立的新執行個體會指派公開 IP 位址,並設定為使用公開 IP 連線。你可以改用其他連線方式。 詳情請參閱「設定連線能力」。
如要使用公開 IP 連線,則不需使用其他旗標。如要透過虛擬私有雲網路對等互連或反向 SSH 通道使用私人 IP 連線,請務必符合下列啟用私人 IP 連線的其他網路需求,並在指令中加入其他旗標。
展開這個部分,即可查看完整的私人 IP 規定。
- 已啟用 Service Networking API。您可以使用 Google Cloud 控制台啟用 Service Networking API。
- 您具備
servicenetworking.services.addPeeringIAM 權限。 - 您已為專案
設定私人服務存取權,且必須具備
compute.networkAdminIAM 角色。 - 專案中至少有一個非舊版虛擬私有雲網路,或是 Shared VPC 網路。
- 如果您使用的是
共用虛擬私有雲網路,則還須執行下列操作:
- 為主專案啟用 Service Networking API。
- 將使用者新增至主專案。
- 將主專案中的 compute.networkAdmin IAM 角色授予使用者。
如要使用私人 IP 連線 (透過虛擬私有雲網路對接或透過 Compute Engine VM 上的反向 SSH 通道),請加入下列額外旗標:
-
--no-enable-ip-v4:(選用)「不」指派公開 IP 位址給目的地執行個體。您可以為目的地執行個體指派公開和私人 IP 位址,但如果使用私人 IP 連線,可能就不需要公開 IP 位址。 -
--private-network:如要將私人 IP 位址指派給目的地執行個體,請指定要指派私人 IP 位址的虛擬私有雲名稱。
執行下列指令:
Linux、macOS 或 Cloud Shell
gcloud database-migration connection-profiles \ create mysql CONNECTION_PROFILE_ID \ --no-async \ --region=REGION \ --database-version=DATABASE_VERSION \ --tier=TIER \ --display-name=CONNECTION_PROFILE_NAME
Windows (PowerShell)
gcloud database-migration connection-profiles ` create mysql CONNECTION_PROFILE_ID ` --no-async ` --region=REGION ` --database-version=DATABASE_VERSION ` --tier=TIER ` --display-name=CONNECTION_PROFILE_NAME
Windows (cmd.exe)
gcloud database-migration connection-profiles ^ create mysql CONNECTION_PROFILE_ID ^ --no-async ^ --region=REGION ^ --database-version=DATABASE_VERSION ^ --tier=TIER ^ --display-name=CONNECTION_PROFILE_NAME
您應該會收到類似以下的回應:
Waiting for connection profile [CONNECTION_PROFILE_ID] to be created with [OPERATION_ID] Waiting for operation [OPERATION_ID] to complete...done. Created connection profile CONNECTION_PROFILE_ID [OPERATION_ID]
- 完成網路設定。
視您想使用的網路連線而定,建立遷移工作前可能需要完成其他步驟。
- 如果使用預設的公開 IP 連線能力,請設定來源資料庫執行個體,允許來自 Cloud SQL 目的地公開位址和通訊埠的連線。詳情請參閱「依據 IP 許可清單設定連線」。
- 如果使用反向 SSH 通道,請在 Compute Engine VM 上設定通道。詳情請參閱「使用反向 SSH 通道設定連線」。
建立遷移工作。
執行下列指令 (點選連結即可展開):gcloud database-migration migration-jobs create這個範例使用選用的
--no-async旗標,因此所有作業都會同步執行。這表示某些指令可能需要一段時間才能完成。您可以略過--no-async旗標,以非同步方式執行指令。如果這麼做,您必須使用gcloud database-migration operations describe指令,確認作業是否成功。使用下列任何指令資料前,請先替換以下項目:
- MIGRATION_JOB_ID:遷移工作的機器可讀 ID。您可以使用這個值,透過資料庫遷移服務 Google Cloud CLI 指令或 API 執行遷移工作。
- REGION,並將其替換為要儲存遷移工作的區域 ID。
- MIGRATION_JOB_NAME:遷移工作的人類可讀名稱。這個值會顯示在 Google Cloud 控制台的資料庫遷移服務中。
- SOURCE_CONNECTION_PROFILE_ID,其中包含來源連線設定檔的機器可讀取 ID。
- DESTINATION_CONNECTION_PROFILE_ID,並提供目的地連線設定檔的機器可讀取 ID。
- MIGRATION_JOB_TYPE 替換為遷移工作的類型。可使用的值有兩個:
ONE_TIME或CONTINUOUS。詳情請參閱「 遷移類型」。 - PATH_TO_THE_FOLDER_IN_STORAGE_BUCKET_WITH_PHYSICAL_BACKUP_FILES
並提供儲存在 Cloud Storage bucket 資料夾中的實體備份檔案路徑。
請使用下列格式:
gs://<bucket_name>/<path_to_backup_file_folder>。 - 網路設定
如果您透過虛擬私有雲網路對等互連或反向 SSH 通道使用私人 IP 連線,請在指令中加入下列旗標:
- 透過虛擬私有雲網路對等互連建立私人 IP 連線
- 使用
--peer-vpc旗標指定要對接的網路名稱。 - Compute Engine VM 上的反向 SSH 通道
- 使用下列旗標,提供 Compute Engine 的網路詳細資料:
--vm-ip、--vm-port、--vpc。您也可以使用選用的--vm旗標指定 VM 名稱。
如需更多使用範例,請參閱 Google Cloud CLI 範例。
執行下列指令:
Linux、macOS 或 Cloud Shell
gcloud database-migration migration-jobs \ create MIGRATION_JOB_ID \ --no-async \ --region=REGION \ --display-name=MIGRATION_JOB_NAME \ --source=SOURCE_CONNECTION_PROFILE_ID \ --destination=DESTINATION_CONNECTION_PROFILE_ID \ --type=MIGRATION_JOB_TYPE --dump-type=PHYSICAL --dump-path=PATH_TO_THE_FOLDER_IN_STORAGE_BUCKET_WITH_PHYSICAL_BACKUP_FILES
Windows (PowerShell)
gcloud database-migration migration-jobs ` create MIGRATION_JOB_ID ` --no-async ` --region=REGION ` --display-name=MIGRATION_JOB_NAME ` --source=SOURCE_CONNECTION_PROFILE_ID ` --destination=DESTINATION_CONNECTION_PROFILE_ID ` --type=MIGRATION_JOB_TYPE --dump-type=PHYSICAL --dump-path=PATH_TO_THE_FOLDER_IN_STORAGE_BUCKET_WITH_PHYSICAL_BACKUP_FILES
Windows (cmd.exe)
gcloud database-migration migration-jobs ^ create MIGRATION_JOB_ID ^ --no-async ^ --region=REGION ^ --display-name=MIGRATION_JOB_NAME ^ --source=SOURCE_CONNECTION_PROFILE_ID ^ --destination=DESTINATION_CONNECTION_PROFILE_ID ^ --type=MIGRATION_JOB_TYPE --dump-type=PHYSICAL --dump-path=PATH_TO_THE_FOLDER_IN_STORAGE_BUCKET_WITH_PHYSICAL_BACKUP_FILES
您應該會收到類似以下的回應:
Waiting for migration job [MIGRATION_JOB_ID] to be created with [OPERATION_ID] Waiting for operation [OPERATION_ID] to complete...done. Created migration job MIGRATION_JOB_ID [OPERATION_ID]
步驟 3b:將必要權限授予 Cloud SQL 執行個體服務帳戶
建立遷移工作至新執行個體時,資料庫遷移服務也會為您建立目的地 Cloud SQL 執行個體。執行遷移作業前,您必須為執行個體的服務帳戶指派 Cloud Storage 權限。
如要將 Cloud Storage 權限授予與目的地執行個體相關聯的服務帳戶,請按照下列步驟操作:
-
在 Cloud SQL 執行個體詳細資料頁面,找出 Cloud SQL 執行個體的服務帳戶電子郵件地址,這個地址的格式如下:
<project-identifier>@gcp-sa-cloud-sql.iam.gserviceaccount.com。 詳情請參閱 Cloud SQL 說明文件中的「查看執行個體資訊」。 -
將 Storage 物件檢視者 (
roles/storage.objectViewer) IAM 角色新增至服務帳戶。如要瞭解如何透過 Identity and Access Management 管理存取權,請參閱 IAM 說明文件中的「管理專案、資料夾和組織的存取權」。
步驟 3c:(選用) 測試遷移工作
執行遷移工作前,您可以先執行測試作業,確認資料庫遷移服務是否能存取所有必要的來源和目的地實體。您可以使用 gcloud CLI 測試已建立但尚未啟動的遷移工作。
控制台
在 Google Cloud 控制台中,您只能測試在遷移工作建立精靈中建立的草稿遷移工作。如果您沒有將工作儲存為草稿,而是在精靈中完整建立工作,則只能使用 Google Cloud CLI 執行測試。
如要測試草稿遷移工作,請按照下列步驟操作:
- 前往 Google Cloud 控制台的「Migration jobs」(遷移工作) 頁面。
- 在「草稿」分頁中,按一下要完成建立的遷移作業顯示名稱。
系統會開啟遷移工作建立精靈。
- 在「測試及建立遷移工作」頁面,點選「測試工作」。資料庫遷移服務現在會檢查目的地執行個體是否具備所有必要權限,以及是否能連線至來源資料庫。
- 測試完成後,按一下「建立」。
遷移工作已建立,可以開始執行。
gcloud
使用下列任何指令資料之前,請先替換以下項目:
- 將 MIGRATION_JOB_ID 替換為遷移工作 ID。
如果您不知道 ID,可以使用
gcloud database-migration migration-jobs list指令列出特定區域中的所有遷移工作,並查看其 ID。 - 將 REGION 替換為儲存連線設定檔的區域 ID。
執行下列指令:
Linux、macOS 或 Cloud Shell
gcloud database-migration migration-jobs \ verify MIGRATION_JOB_ID \ --region=REGION
Windows (PowerShell)
gcloud database-migration migration-jobs ` verify MIGRATION_JOB_ID ` --region=REGION
Windows (cmd.exe)
gcloud database-migration migration-jobs ^ verify MIGRATION_JOB_ID ^ --region=REGION
結果
這項動作會以非同步方式執行。 因此,這項指令會傳回代表長時間執行的作業的 作業實體:
done: false metadata: '@type': type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata apiVersion: v1 createTime: '2024-02-20T12:20:24.493106418Z' requestedCancellation: false target: MIGRATION_JOB_ID verb: verify name: OPERATION_ID
如要確認作業是否成功,您可以查詢傳回的作業物件,或檢查遷移工作的狀態:
- 使用
gcloud database-migration migration-jobs describe指令搭配 MIGRATION_JOB_ID,查看遷移工作狀態。 - 使用
gcloud database-migration operations describe指令搭配 OPERATION_ID,查看作業本身的狀態。
步驟 3d:啟動遷移工作
遷移工作建立完成後 (也就是未儲存為草稿狀態),您隨時可以啟動工作,開始遷移資料。
如要啟動遷移工作,請按照下列步驟操作:
控制台
- 前往 Google Cloud 控制台的「Migration jobs」(遷移工作) 頁面。
- 在「工作」分頁中,按一下要啟動的遷移工作顯示名稱。
遷移工作詳細資料頁面隨即開啟。
- 按一下「啟動」。
- 在對話方塊中,按一下「開始」。
gcloud
使用下列任何指令資料前,請先替換以下項目:
- 將 MIGRATION_JOB_ID 換成遷移工作 ID。
如果您不知道 ID,可以使用
gcloud database-migration migration-jobs list指令列出特定區域中的所有遷移工作,並查看其 ID。 - REGION:連線設定檔儲存位置的區域 ID。
執行下列指令:
Linux、macOS 或 Cloud Shell
gcloud database-migration migration-jobs \ start MIGRATION_JOB_ID \ --region=REGION
Windows (PowerShell)
gcloud database-migration migration-jobs ` start MIGRATION_JOB_ID ` --region=REGION
Windows (cmd.exe)
gcloud database-migration migration-jobs ^ start MIGRATION_JOB_ID ^ --region=REGION
結果
這項動作會以非同步方式執行。 因此,這個指令會傳回代表長時間執行的作業的 作業實體:
done: false metadata: '@type': type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata apiVersion: v1 createTime: '2024-02-20T12:20:24.493106418Z' requestedCancellation: false target: MIGRATION_JOB_ID verb: start name: OPERATION_ID
如要確認作業是否成功,您可以查詢傳回的作業物件,或檢查遷移工作的狀態:
- 使用
gcloud database-migration migration-jobs describe指令搭配 MIGRATION_JOB_ID,查看遷移工作狀態。 - 使用
gcloud database-migration operations describe指令,並加上 OPERATION_ID,即可查看作業本身的狀態。
-
如要遷移至現有的目的地執行個體,請先建立及設定目的地執行個體。步驟 3a. 準備目的地執行個體
如要設定目的地 Cloud SQL 執行個體,請完成下列步驟:
-
建立 MySQL 適用的 Cloud SQL 目的地執行個體。請務必使用足夠的運算和記憶體資源,滿足遷移需求。請參閱 Cloud SQL 說明文件中的「建立執行個體」。
視您要用於遷移作業的連線方式而定,您可能需要為目的地執行個體新增公開或私人 IP 位址。如要進一步瞭解連線方法,請參閱「設定連線」。
-
將 Cloud Storage 權限授予與目的地執行個體相關聯的服務帳戶。目的地執行個體建立後即會建立這個帳戶。
-
在 Cloud SQL 執行個體詳細資料頁面,找出 Cloud SQL 執行個體的服務帳戶電子郵件地址,這個地址會採用下列格式:
<project-identifier>@gcp-sa-cloud-sql.iam.gserviceaccount.com。詳情請參閱 Cloud SQL 說明文件中的「查看執行個體資訊」一文。 -
將 Storage 物件檢視者 (
roles/storage.objectViewer) IAM 角色新增至服務帳戶。如要瞭解如何透過 Identity and Access Management 管理存取權,請參閱 IAM 說明文件中的「管理專案、資料夾和組織的存取權」。
-
在 Cloud SQL 執行個體詳細資料頁面,找出 Cloud SQL 執行個體的服務帳戶電子郵件地址,這個地址會採用下列格式:
- 為 Cloud SQL 執行個體建立目的地連線設定檔。
控制台
您不需要建立目的地連線設定檔。 在 Google Cloud 控制台建立遷移工作時,您會使用目的地執行個體 ID,並由資料庫遷移服務管理連線設定檔。
gcloud
這個範例使用選用的
--no-async旗標,因此所有作業都會同步執行。也就是說,部分指令可能需要一段時間才能完成。您可以略過--no-async旗標,以非同步方式執行指令。如果這麼做,您必須使用gcloud database-migration operations describe指令,確認作業是否成功。使用下列任何指令資料前,請先替換以下項目:
- CONNECTION_PROFILE_ID,其中包含連線設定檔的機器可讀取 ID。
- 將 REGION 替換為要儲存連線設定檔的區域 ID。
- 將 DESTINATION_INSTANCE_ID 替換為目的地執行個體的執行個體 ID。
- (選用) CONNECTION_PROFILE_NAME 連線設定檔的人類可讀名稱。這個值會顯示在 Google Cloud 控制台中。
執行下列指令:
Linux、macOS 或 Cloud Shell
gcloud database-migration connection-profiles \ create mysql CONNECTION_PROFILE_ID \ --no-async \ --cloudsql-instance=DESTINATION_INSTANCE_ID \ --region=REGION \ --display-name=CONNECTION_PROFILE_NAME
Windows (PowerShell)
gcloud database-migration connection-profiles ` create mysql CONNECTION_PROFILE_ID ` --no-async ` --cloudsql-instance=DESTINATION_INSTANCE_ID ` --region=REGION ` --display-name=CONNECTION_PROFILE_NAME
Windows (cmd.exe)
gcloud database-migration connection-profiles ^ create mysql CONNECTION_PROFILE_ID ^ --no-async ^ --cloudsql-instance=DESTINATION_INSTANCE_ID ^ --region=REGION ^ --display-name=CONNECTION_PROFILE_NAME
您應該會收到類似以下的回應:
Waiting for connection profile [CONNECTION_PROFILE_ID] to be created with [OPERATION_ID] Waiting for operation [OPERATION_ID] to complete...done. Created connection profile CONNECTION_PROFILE_ID [OPERATION_ID]
步驟 3b. 建立及執行遷移工作
控制台
定義遷移工作的設定
- 前往 Google Cloud 控制台的「Migration jobs」(遷移工作) 頁面。
- 按一下「建立遷移工作」。
遷移工作設定精靈頁面隨即開啟。 這個精靈包含多個面板,可引導您完成各項設定步驟。
如要隨時暫停建立遷移工作,請按一下「儲存並結束」。您輸入的所有資料都會儲存為遷移工作草稿。您可以稍後再完成遷移工作草稿。
- 在「開始使用」頁面中,輸入下列資訊:
- 遷移工作名稱
這是遷移工作的人類可讀名稱。這個值會顯示在 Google Cloud 控制台中。
- 遷移工作 ID
這是遷移工作的機器可讀 ID。 您可以使用這個值,透過資料庫遷移服務 Google Cloud CLI 指令或 API,處理遷移工作。
- 從「Source database engine」(來源資料庫引擎) 清單中選取「MySQL」。
系統會自動填入「Destination database engine」(目的地資料庫引擎) 欄位,且無法變更。
- 選取要儲存遷移作業的區域。
資料庫遷移服務是完全區域性的產品,也就是說,與遷移作業相關的所有實體 (來源和目的地連線設定檔、遷移工作、目的地資料庫) 都必須儲存在單一區域。請根據需要資料的服務 (例如 Compute Engine 執行個體或 App Engine 應用程式,以及其他服務) 所在位置選取區域。選定目的地區域後,即無法變更。
- 遷移工作名稱
- 按一下 [儲存並繼續]。
指定來源連線設定檔的相關資訊
- 在「定義來源」頁面中,執行下列步驟:
- 在「Source connection profile」(來源連線設定檔) 下拉式選單中,選取來源資料庫的連線設定檔。
- 在「自訂完整傾印設定」部分,按一下「編輯設定」。
- 在「Edit full dump configuration」(編輯完整轉儲設定) 面板中,從「Full dump method」(完整轉儲方法) 下拉式選單中選取「Physical based」(實體型)。
- 在「Provide your folder」(提供資料夾) 中,按一下「Browse」(瀏覽),然後選取您上傳完整 dump 檔案的資料夾 (「準備來源資料」一節中的步驟 4)。
- 按一下 [儲存]。
- 按一下 [儲存並繼續]。
選取目的地 Cloud SQL 執行個體
- 在「目的地執行個體的類型」選單中,選取「現有的執行個體」。
- 在「Select destination instance」(選取目的地執行個體) 部分,選取目的地執行個體。
- 查看「Instance details」(執行個體詳細資料) 區段中的資訊,然後按一下「Select and continue」(選取並繼續)。
- 如要遷移至現有的目的地資料庫,資料庫遷移服務會降級目標執行個體,並將其轉換為副本。在確認視窗中輸入目的地執行個體 ID,表示可以安全執行降級作業。
- 按一下「確認並繼續」。
設定來源與目的地資料庫執行個體之間的連線
從「Connectivity method」(連線方式) 下拉式選單中,選取網路連線方式。這個方法會定義新建立的 Cloud SQL 執行個體如何連線至來源資料庫。目前的網路連線方法包括 IP 許可清單、反向 SSH 通道和虛擬私有雲對等互連。
如要使用... 具體做法 IP 許可清單網路連線方式, 您必須指定目的地執行個體的傳出 IP 位址。如果您建立的 Cloud SQL 執行個體是高可用性執行個體,請一併加入主要和次要執行個體的傳出 IP 位址。 反向 SSH 通道網路連線方式。 您必須選取要託管通道的 Compute Engine VM 執行個體。 指定執行個體後,Google 會提供指令碼,執行在來源和目的地資料庫之間設定通道的步驟。您需要在 Google Cloud CLI 中執行指令碼。
請從可連線至來源資料庫和 Google Cloud的機器執行指令。
虛擬私有雲對等互連網路連線方式, 您需要選取來源資料庫所在的虛擬私有雲網路。系統會更新 Cloud SQL 執行個體,以連線至這個網路。 選取並設定網路連線後,按一下「Configure and continue」(設定並繼續)。
測試、建立及執行遷移工作
在這個最後步驟中,請查看遷移工作設定、來源、目的地和連線方式的摘要,然後測試遷移工作設定是否有效。如果遇到任何問題,可以修改遷移作業的設定。部分設定無法編輯。
-
在「測試及建立遷移工作」頁面,點選「測試工作」。
如果測試失敗,請在流程的適當部分解決問題,然後返回重新測試。如要瞭解如何排解遷移工作測試失敗的問題,請參閱「診斷 MySQL 的問題」。
-
遷移工作測試完成後,按一下「建立及啟動工作」。
遷移作業現正進行中。啟動遷移工作後,資料庫遷移服務會開始完整轉儲,並短暫鎖定來源資料庫。
gcloud
如要設定及執行遷移作業,請按照下列步驟操作:
建立遷移工作。
執行下列指令 (按一下連結即可展開):gcloud database-migration migration-jobs create這個範例使用選用的
--no-async旗標,因此所有作業都會同步執行。這表示某些指令可能需要一段時間才能完成。您可以略過--no-async旗標,以非同步方式執行指令。如果這麼做,您必須使用gcloud database-migration operations describe指令,確認作業是否成功。使用下列任何指令資料之前,請先替換以下項目:
- MIGRATION_JOB_ID:遷移工作的機器可讀 ID。您可以使用這個值,透過資料庫遷移服務 Google Cloud CLI 指令或 API 執行遷移工作。
- REGION,並將其替換為要儲存遷移工作的區域 ID。
- MIGRATION_JOB_NAME,並為遷移工作指定人類可讀的名稱。這個值會顯示在 Google Cloud 控制台的資料庫遷移服務中。
- SOURCE_CONNECTION_PROFILE_ID,其中包含來源連線設定檔的機器可讀取 ID。
- DESTINATION_CONNECTION_PROFILE_ID,並提供目的地連線設定檔的機器可讀取 ID。
- MIGRATION_JOB_TYPE,並選取遷移工作類型。允許的值為
ONE_TIME或CONTINUOUS。詳情請參閱「 遷移類型」。 - PATH_TO_THE_FOLDER_IN_STORAGE_BUCKET_WITH_PHYSICAL_BACKUP_FILES
並提供儲存在 Cloud Storage bucket 資料夾中的實體備份檔案路徑。
請使用下列格式:
gs://<bucket_name>/<path_to_backup_file_folder>。 - 網路設定
如果您透過虛擬私有雲網路對等互連或反向 SSH 通道使用私人 IP 連線,請在指令中加入下列旗標:
- 透過虛擬私有雲網路對等互連建立私人 IP 連線
- 使用
--peer-vpc旗標,指定要對接的網路名稱。 - Compute Engine VM 上的反向 SSH 通道
- 使用下列旗標,提供 Compute Engine 的網路詳細資料:
--vm-ip、--vm-port、--vpc。您也可以使用選用的--vm旗標指定 VM 名稱。
如需更多使用範例,請參閱 Google Cloud CLI 範例。
執行下列指令:
Linux、macOS 或 Cloud Shell
gcloud database-migration migration-jobs \ create MIGRATION_JOB_ID \ --no-async \ --region=REGION \ --display-name=MIGRATION_JOB_NAME \ --source=SOURCE_CONNECTION_PROFILE_ID \ --destination=DESTINATION_CONNECTION_PROFILE_ID \ --type=MIGRATION_JOB_TYPE --dump-type=PHYSICAL --dump-path=PATH_TO_THE_FOLDER_IN_STORAGE_BUCKET_WITH_PHYSICAL_BACKUP_FILES
Windows (PowerShell)
gcloud database-migration migration-jobs ` create MIGRATION_JOB_ID ` --no-async ` --region=REGION ` --display-name=MIGRATION_JOB_NAME ` --source=SOURCE_CONNECTION_PROFILE_ID ` --destination=DESTINATION_CONNECTION_PROFILE_ID ` --type=MIGRATION_JOB_TYPE --dump-type=PHYSICAL --dump-path=PATH_TO_THE_FOLDER_IN_STORAGE_BUCKET_WITH_PHYSICAL_BACKUP_FILES
Windows (cmd.exe)
gcloud database-migration migration-jobs ^ create MIGRATION_JOB_ID ^ --no-async ^ --region=REGION ^ --display-name=MIGRATION_JOB_NAME ^ --source=SOURCE_CONNECTION_PROFILE_ID ^ --destination=DESTINATION_CONNECTION_PROFILE_ID ^ --type=MIGRATION_JOB_TYPE --dump-type=PHYSICAL --dump-path=PATH_TO_THE_FOLDER_IN_STORAGE_BUCKET_WITH_PHYSICAL_BACKUP_FILES
您應該會收到類似以下的回應:
Waiting for migration job [MIGRATION_JOB_ID] to be created with [OPERATION_ID] Waiting for operation [OPERATION_ID] to complete...done. Created migration job MIGRATION_JOB_ID [OPERATION_ID]
-
降級 Cloud SQL 目的地執行個體。
執行下列指令 (按一下連結即可展開):gcloud database-migration migration-jobs demote-destination使用下列任何指令資料之前,請先替換以下項目:
- 將 MIGRATION_JOB_ID 替換為遷移工作 ID。
如果不知道 ID,可以使用
gcloud database-migration migration-jobs list指令列出特定區域中的所有遷移作業,並查看其 ID。 - 將 REGION 替換為連線設定檔儲存區域的 ID。
執行下列指令:
Linux、macOS 或 Cloud Shell
gcloud database-migration migration-jobs \ demote-destination MIGRATION_JOB_ID \ --region=REGION
Windows (PowerShell)
gcloud database-migration migration-jobs ` demote-destination MIGRATION_JOB_ID ` --region=REGION
Windows (cmd.exe)
gcloud database-migration migration-jobs ^ demote-destination MIGRATION_JOB_ID ^ --region=REGION
結果
這項動作會以非同步方式執行。因此,這個指令會傳回代表長時間執行的作業的 作業實體:
done: false metadata: '@type': type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata apiVersion: v1 createTime: '2024-02-20T12:20:24.493106418Z' requestedCancellation: false target: MIGRATION_JOB_ID verb: demote-destination name: OPERATION_ID
如要確認作業是否成功,您可以查詢傳回的作業物件,或檢查遷移工作的狀態:
- 使用
gcloud database-migration migration-jobs describe指令查看遷移工作狀態。 - 請搭配使用
gcloud database-migration operations describe和 OPERATION_ID,查看作業本身的狀態。
- 將 MIGRATION_JOB_ID 替換為遷移工作 ID。
-
(選用) 執行遷移工作測試
您可以執行檢查,確認資料庫遷移服務是否能連上所有必要的來源和目的地實體。 執行下列指令 (點選連結即可展開):gcloud database-migration migration-jobs verify
使用下列任何指令資料前,請先替換以下項目:
- 將 MIGRATION_JOB_ID 替換為遷移工作 ID。
如果不知道 ID,可以使用
gcloud database-migration migration-jobs list指令列出特定區域中的所有遷移作業,並查看其 ID。 - 將 REGION 替換為儲存連線設定檔的區域 ID。
執行下列指令:
Linux、macOS 或 Cloud Shell
gcloud database-migration migration-jobs \ verify MIGRATION_JOB_ID \ --region=REGION
Windows (PowerShell)
gcloud database-migration migration-jobs ` verify MIGRATION_JOB_ID ` --region=REGION
Windows (cmd.exe)
gcloud database-migration migration-jobs ^ verify MIGRATION_JOB_ID ^ --region=REGION
結果
這項動作會以非同步方式執行。 因此,這個指令會傳回代表長時間執行的作業的 作業實體:
done: false metadata: '@type': type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata apiVersion: v1 createTime: '2024-02-20T12:20:24.493106418Z' requestedCancellation: false target: MIGRATION_JOB_ID verb: verify name: OPERATION_ID
如要確認作業是否成功,您可以查詢傳回的作業物件,或檢查遷移工作的狀態:
- 使用
gcloud database-migration migration-jobs describe指令搭配 MIGRATION_JOB_ID,即可查看遷移工作狀態。 - 使用
gcloud database-migration operations describe指令和 OPERATION_ID,查看作業本身的狀態。
- 將 MIGRATION_JOB_ID 替換為遷移工作 ID。
-
啟動遷移工作。
執行下列指令 (點選連結即可展開):gcloud database-migration migration-jobs start
使用下列任何指令資料前,請先替換以下項目:
- 將 MIGRATION_JOB_ID 替換為遷移工作 ID。
如果不知道 ID,可以使用
gcloud database-migration migration-jobs list指令列出特定區域中的所有遷移作業,並查看其 ID。 - 將 REGION 替換為連線設定檔儲存區域的 ID。
執行下列指令:
Linux、macOS 或 Cloud Shell
gcloud database-migration migration-jobs \ start MIGRATION_JOB_ID \ --region=REGION
Windows (PowerShell)
gcloud database-migration migration-jobs ` start MIGRATION_JOB_ID ` --region=REGION
Windows (cmd.exe)
gcloud database-migration migration-jobs ^ start MIGRATION_JOB_ID ^ --region=REGION
結果
這項動作會以非同步方式執行。 因此,這個指令會傳回代表長時間執行的作業的 作業實體:
done: false metadata: '@type': type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata apiVersion: v1 createTime: '2024-02-20T12:20:24.493106418Z' requestedCancellation: false target: MIGRATION_JOB_ID verb: start name: OPERATION_ID
如要確認作業是否成功,您可以查詢傳回的作業物件,或檢查遷移工作的狀態:
- 使用
gcloud database-migration migration-jobs describe指令搭配 MIGRATION_JOB_ID,查看遷移工作狀態。 - 使用
gcloud database-migration operations describe指令搭配 OPERATION_ID,查看作業本身的狀態。
啟動遷移工作後,目的地 Cloud SQL 執行個體會進入唯讀模式,由資料庫遷移服務全代管。資料完全移轉後,即可將其升級為獨立執行個體。
注意:您可以使用資料庫移轉服務的可觀測性功能,監控遷移進度和目的地執行個體健康狀態。請參閱「遷移工作指標」。
- 將 MIGRATION_JOB_ID 替換為遷移工作 ID。
-
建立 MySQL 適用的 Cloud SQL 目的地執行個體。請務必使用足夠的運算和記憶體資源,滿足遷移需求。請參閱 Cloud SQL 說明文件中的「建立執行個體」。
步驟 4:(選用) 停止遷移
如要取消資料遷移程序,可以隨時停止及刪除遷移工作。您可以在 Google Cloud 控制台或使用 Google Cloud CLI 管理遷移工作。
如要瞭解如何在 Google Cloud 控制台中管理遷移工作,請參閱「管理遷移工作」。
如要瞭解如何使用 Google Cloud CLI 管理遷移工作,請參閱
gcloud database-migration migration-jobs參考資料。
步驟 5:完成遷移作業
遷移工作順利完成後,請執行下列任一操作,完成遷移工作:
單次遷移:遷移工作狀態會變更為「Complete」(完成)。您不必採取進一步行動,可以清理遷移工作和連線設定檔資源。
連續遷移:升級遷移工作,將應用程式切換至新的資料庫執行個體。