建立遷移工作包括:
- 定義遷移工作的設定。
- 指定為來源資料庫建立的連線設定檔 (來源連線設定檔) 相關資訊。
- 定義目的地 Cloud SQL 資料庫執行個體的設定,並建立執行個體。
- 設定來源與目的地資料庫執行個體之間的連線。
- 測試遷移工作,確保您為工作提供的連線資訊有效。
如要建立遷移工作,將資料遷移至新的目的地執行個體,請按照下列步驟操作:
控制台
定義遷移工作設定
- 前往 Google Cloud 控制台的「遷移作業」頁面。
- 按一下「建立遷移工作」。
遷移工作設定精靈頁面隨即會開啟。 這個精靈包含多個面板,可引導您完成每個設定步驟。
您可以隨時暫停建立遷移工作,方法是按一下「儲存並結束」。您輸入的所有資料都會儲存為遷移工作草稿。您之後可以完成草稿遷移工作。
- 在「開始使用」頁面中輸入下列資訊:
- 遷移工作名稱
這是遷移工作的可理解文字名稱。這個值會顯示在 Google Cloud 控制台中。
- 遷移工作 ID
這是遷移工作的機器可讀取 ID。 您可以使用這個值,透過 Database Migration Service Google Cloud CLI 指令或 API 處理遷移作業。
- 在「來源資料庫引擎」清單中,選取「MySQL」。
「目的地資料庫引擎」欄位會自動填入,無法變更。
- 選取要儲存遷移作業的區域。
資料庫移轉服務是完全區域性的產品,也就是說,與遷移作業相關的所有實體 (來源和目的地連線設定檔、遷移工作、目的地資料庫) 都必須儲存在單一區域。根據需要資料的服務 (例如 Compute Engine 執行個體或 App Engine 應用程式) 和其他服務的位置選取區域。選擇目的地國家/地區後,就無法變更這項設定。
- 遷移工作名稱
- 按一下 [儲存並繼續]。
指定來源連線設定檔的相關資訊
在「定義來源」頁面中,執行下列步驟:
- 在「來源連線設定檔」下拉式選單中,選取來源資料庫的連線設定檔。
- 在「自訂完整傾印設定」部分中,按一下「編輯設定」。
- 在「編輯完整 dump 設定」面板中,從「完整 dump 方法」下拉式選單選取下列其中一個選項:
- 以實體為準:如要使用 Percona XtraBackup 公用程式提供自己的備份檔案,請選取這個選項。這種做法需要額外的準備步驟。如需使用 Percona XtraBackup 產生的實體備份檔案完整指南,請參閱「 使用 Percona XtraBackup 實體檔案移轉資料庫」。
- 以邏輯為準:如要使用
mysqlshell
公用程式建立的邏輯備份檔案,請選取這個選項。資料庫遷移服務可以自動為您產生這個備份檔案,您也可以自行提供副本。
- 編輯其餘的傾印設定。執行下列任一操作:
- 如果使用實體備份檔案,請在「提供資料夾」中按一下「瀏覽」,然後選取您上傳完整傾印檔案的資料夾。請務必選取包含完整備份檔案的專用資料夾,而非儲存空間 bucket 本身。
如果您使用邏輯備份檔案,請設定資料轉儲平行處理或轉儲標記。
展開這個部分,查看完整邏輯備份檔案步驟
在「選擇如何產生轉儲檔案」部分,使用下列任一選項:
自動產生初始傾印檔案 (建議做法)
建議您選擇這個選項,因為建立並啟動遷移工作後,資料庫遷移服務一律會產生初始資料庫傾印檔案。
資料庫移轉服務會使用這個檔案,重現來源資料庫的原始物件定義和資料表資料,以便將這些資訊遷移至目的地 Cloud SQL 資料庫執行個體。
如果您使用自動產生的傾印檔,請在「設定資料傾印作業」部分選取資料庫移轉服務應執行的作業類型:
- 資料轉儲平行處理:使用高效能的平行處理選項,遷移至 MySQL 5.7 或 8 版時可使用。
資料平行處理的速度與來源資料庫的負載量有關:
- 最佳 (建議):在效能與來源資料庫負載之間取得平衡。
- 最高:提供最快的傾印速度,但可能會增加來源資料庫的負載。
- 最低:在來源資料庫上佔用的運算資源最少,但傾印處理量可能較慢。
- 傾印旗標:此選項與「資料傾印平行處理」互斥。
使用這項設定,直接為用於建立傾印檔案的
mysqldump
公用程式設定旗標。如要新增旗標,請按照下列步驟操作:
- 按一下「新增旗標」。
選取下列其中一個旗標:
add-locks:
這個旗標會以LOCK TABLES
和UNLOCK TABLES
陳述式,將傾印檔案中包含的每個資料表括起來。這樣一來,將傾印檔案載入目的地執行個體時,插入速度就會更快。ignore-error:
使用這個標記輸入以半形逗號分隔的錯誤編號清單。 這些數字代表mysqldump
公用程式會忽略的錯誤。max-allowed-packet:
使用這個標記可設定緩衝區大小上限,供 MySQL 用戶端與來源 MySQL 資料庫之間的通訊使用。緩衝區的預設大小為 24 MB,上限為 1 GB。
- 按一下「完成」。
- 針對要新增的每個旗標重複這些步驟。
如要移除標記,請按一下含有標記的列右側的垃圾桶圖示。
- 資料轉儲平行處理:使用高效能的平行處理選項,遷移至 MySQL 5.7 或 8 版時可使用。
自行提供
不建議使用這個選項,因為根據預設,資料庫移轉服務會在執行遷移工作時,執行初始傾印作業。
如要使用自己的 dump 檔案,請選取「提供您自己的檔案」,按一下「瀏覽」,選取檔案 (或整個 Cloud Storage 資料夾,如果使用多個檔案),然後按一下「選取」。
確認傾印檔是在過去 24 小時內產生,且符合 傾印檔規定。
- 按一下 [儲存並繼續]。
設定並建立目的地 Cloud SQL 執行個體
- 在「定義目的地」頁面中,從「目的地執行個體類型」下拉式選單選取「新執行個體」。定義所有相關設定:
- 在「Destination Instance ID」(目的地執行個體 ID) 欄位中,提供 Cloud SQL 執行個體的 ID,或使用系統自動產生的 ID。
請勿在 ID 中加入敏感或個人識別資訊。您不需要在執行個體名稱中包含專案 ID,系統會在適當地方 (例如在記錄檔中) 自動加入。
- 在「Password」(密碼) 欄位中,為目的地 Cloud SQL 執行個體提供英數密碼。這是執行個體中
root
管理員帳戶的密碼。您可以手動輸入密碼,也可以按一下「產生」,讓資料庫移轉服務自動建立密碼。
- 從「資料庫版本」下拉式選單中,選擇目的地執行個體的資料庫版本。
按一下「顯示子版本」即可查看所有子版本。 進一步瞭解跨版本遷移支援。
- 為目的地執行個體選取 MySQL 適用的 Cloud SQL 版本。
您有兩個選項:Cloud SQL for MySQL Enterprise 版和 Cloud SQL for MySQL Enterprise Plus 版。
MySQL 適用的 Cloud SQL 版本提供不同的功能、可用機器類型和價格。請務必參閱 Cloud SQL 說明文件,選擇適合您需求的版本。詳情請參閱 MySQL 適用的 Cloud SQL 版本簡介。
- 「地區」選單會顯示您在「開始使用」頁面選取的地區。
如要設定高可用性執行個體,請選取「Multiple zones (Highly available)」(多可用區 (可用性高))。您可以選取主要和次要區域。 在建立執行個體時使用次要可用區,須符合下列條件:
- 主要可用區預設為「不限」,次要可用區則預設為「不限 (與主要可用區不同)」。
- 如果同時指定主要和次要可用區,這兩個可用區不得相同。
- 在「連線」部分,選擇是否要為目的地執行個體新增公開或私人 IP 位址。您可以將執行個體設定為同時擁有這兩種類型的 IP 位址,但遷移作業至少需要其中一種。選取下列其中一個選項:
- 如要使用虛擬私有雲對等互連或反向 SSH 通道遷移資料,請選取「私人 IP」
。
如要啟用私人 IP 連線,請務必符合所有額外的網路需求。
展開這個部分即可查看完整的私人 IP 規定。
- 已啟用 Service Networking API。您可以使用 Google Cloud 控制台啟用 Service Networking API。
- 您具備
servicenetworking.services.addPeering
身分與存取權管理權限。 - 您已為專案
設定私人服務存取權,且必須擁有
compute.networkAdmin
IAM 角色。 - 專案中至少有一個非舊版虛擬私有雲網路,或共用虛擬私有雲網路。
- 如果您使用
共用虛擬私有雲網路,則還需要執行下列操作:
- 為主專案啟用 Service Networking API。
- 將使用者新增至主專案。
- 在主專案中,將 compute.networkAdmin IAM 角色指派給使用者。
- 選取要建立對等互連的相關聯虛擬私有雲網路。如要透過虛擬私有雲對等互連連線至遷移作業來源,請選擇執行個體所在的虛擬私有雲。
- 如果所選 VPC 從未設定受管理服務網路,您可以選擇選取 IP 範圍並點選「連線」,或使用系統自動選取的 IP 範圍並點選「分配並連線」。
- 如要透過網際網路使用 IP 許可清單遷移資料,請選取「公開 IP」
。
(選用) 在「公開 IP」下方,按一下「授權網路」欄位,然後授權網路或 Proxy 連線至 Cloud SQL 執行個體。網路只能透過您提供的位址取得授權。請參閱 Cloud SQL 說明文件中的「設定公開 IP」。
您會在後續步驟中設定遷移工作連線。 如要進一步瞭解可用的網路方法,請參閱「 設定連線」。
- 如要使用虛擬私有雲對等互連或反向 SSH 通道遷移資料,請選取「私人 IP」
。
- 在「Destination Instance ID」(目的地執行個體 ID) 欄位中,提供 Cloud SQL 執行個體的 ID,或使用系統自動產生的 ID。
- 選取 Cloud SQL 執行個體的機器類型。磁碟大小必須等於或大於來源資料庫大小。進一步瞭解 MySQL 機型。
- 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 目的地執行個體。 這項作業可能需要幾分鐘才能完成。
設定來源與目的地資料庫執行個體之間的連線
從「連線方式」下拉式選單中,選取網路連線方式。這個方法可定義新建立的 Cloud SQL 執行個體連線至來源資料庫的方式。目前的網路連線方法包括 IP 許可清單、反向 SSH 通道和虛擬私有雲對等互連。
如要使用... | 具體做法 |
---|---|
IP 許可清單網路連線方式, | 您需要指定目的地執行個體的傳出 IP 位址。如果您建立的 Cloud SQL 執行個體是高可用性執行個體,請一併加入主要和次要執行個體的傳出 IP 位址。 |
反向安全殼層通道網路連線方法。 | 您必須選取要託管通道的 Compute Engine VM 執行個體。
指定執行個體後,Google 會提供指令碼,執行在來源和目的地資料庫之間設定通道的步驟。您需要在 Google Cloud CLI 中執行指令碼。 在可連線至來源資料庫和 Google Cloud的機器中執行指令。 |
虛擬私有雲對等互連網路連線方式 | 您需要選取來源資料庫所在的虛擬私有雲網路。系統會更新 Cloud SQL 執行個體,以連線至這個網路。 |
選取並設定網路連線後,按一下「設定並繼續」。
測試、建立及執行遷移工作
在最後這個步驟中,請檢查遷移工作設定、來源、目的地和連線方式的摘要,然後測試遷移工作設定的有效性。如果遇到任何問題,可以修改遷移作業的設定。部分設定無法編輯。
-
在「測試及建立遷移工作」頁面中,按一下「測試工作」。
如果測試失敗,請在流程的適當部分解決問題,然後返回重新測試。如要瞭解如何排解遷移工作測試失敗的問題,請參閱「 診斷 MySQL 問題」。
-
遷移工作測試完成後,按一下「建立並啟動工作」,即可建立並立即啟動遷移工作;按一下「建立工作」,即可建立遷移工作,但不會立即啟動。
如果工作在建立時未啟動,可以前往「遷移工作」頁面,點選「開始」啟動工作。無論遷移工作何時開始,貴機構都必須支付目的地執行個體的費用。
遷移作業現正進行中。啟動遷移工作後,資料庫遷移服務會開始完整傾印,並短暫鎖定來源資料庫。如果來源位於 Amazon RDS 或 Amazon Aurora,Database Migration Service 還會在遷移作業開始時,短暫停止寫入工作 (約一分鐘內)。詳情請參閱「已知限制」一節。
- 請繼續查看遷移工作。
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 版本。資料庫版本會指定為字串,其中包含主要和次要版本。例如:
MYSQL_8_0
、MYSQL_8_0_32
、MYSQL_8_0_36
。如要瞭解所有可能的 MySQL 版本,請參閱 --database-version 標記參考資料。
- (選用) EDITION 根據預設,您使用 Google Cloud CLI 建立的新執行個體會使用 Cloud SQL for MySQL Enterprise Plus 版。如果您打算使用 MySQL 適用的 Cloud SQL Enterprise Plus 版本,請確認您所在的區域支援該版本。請參閱 Cloud SQL for MySQL Enterprise Plus 版支援的區域。
您可以使用
--edition
旗標和下列其中一個值來變更版本:- MySQL 適用的 Cloud SQL Enterprise Plus 版本
enterprise-plus
- 適用於 MySQL 適用的 Cloud SQL Enterprise 版本
enterprise
- MySQL 適用的 Cloud SQL Enterprise Plus 版本
-
TIER,並填入要使用的 Cloud SQL 機型名稱。
機器類型會指定為遵循 Cloud SQL 慣例的字串,例如
db-n1-standard-1
、db-perf-optimized-N-2
。如要查看可用的機器類型完整清單,以及搭配 Google Cloud CLI 使用的 ID,請參閱 Cloud SQL for MySQL 說明文件中的「 機器類型」。使用 Google Cloud CLI 建立的執行個體預設會使用 MySQL 適用的 Cloud SQL Enterprise Plus 版本,該版本提供不同的機器類型。如要使用僅適用於 Cloud SQL for MySQL Enterprise 版本的機器類型,請使用選用的
--edition=enterprise
旗標指定版本。 - REGION,並指定要儲存連線設定檔的區域 ID。
依預設,使用 Google Cloud CLI 建立的新執行個體會使用 Cloud SQL for MySQL Enterprise Plus 版。如果您打算使用 MySQL 適用的 Cloud SQL Enterprise Plus 版本,請確認您的區域支援該版本。請參閱 Cloud SQL for MySQL 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.addPeering
身分與存取權管理權限。 - 您已為專案
設定私人服務存取權,且必須擁有
compute.networkAdmin
IAM 角色。 - 專案中至少有一個非舊版虛擬私有雲網路,或共用虛擬私有雲網路。
- 如果您使用
共用虛擬私有雲網路,則還需要執行下列操作:
- 為主專案啟用 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]
建立遷移工作。
如果您使用虛擬私有雲對等互連或反向 SSH 通道連線,請務必新增必要標記,例如--peer-vpc
、--vm
、--vm-ip
、--vm-port
、--vpc
。詳情請參閱「 設定連線」和「 Google Cloud CLI 範例」。
執行下列指令 (按一下連結即可展開):gcloud database-migration migration-jobs create
這個範例使用選用的
--no-async
標記,因此所有作業都會同步執行。也就是說,部分指令可能需要一段時間才能完成。您可以略過--no-async
標記,以非同步方式執行指令。如果有的話,您需要使用gcloud database-migration operations describe
指令,確認作業是否成功。使用下列任何指令資料之前,請先替換以下項目:
- MIGRATION_JOB_ID,這是遷移工作的機器可讀取 ID。您可以使用這個值,透過 Database Migration Service Google Cloud CLI 指令或 API 處理遷移作業。
- REGION,並將其替換為要儲存遷移工作的地區 ID。
- MIGRATION_JOB_NAME,並為遷移工作提供可理解的名稱。這個值會顯示在 Google Cloud 控制台的資料庫移轉服務中。
- SOURCE_CONNECTION_PROFILE_ID,其中包含來源連線設定檔的機器可讀取 ID。
- DESTINATION_CONNECTION_PROFILE_ID 目的地連線設定檔的機器可讀取 ID。
執行下列指令:
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
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
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
您應該會收到類似以下的回應:
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]