本頁面說明如何設定下列來源資料庫執行個體,以便執行連續同質 MySQL 遷移作業:
- MySQL 適用的 Cloud SQL
- 自行託管的 MySQL
- Amazon RDS for MySQL
- MySQL 適用的 Amazon Aurora
- Microsoft Azure Database for MySQL
設定 MySQL 適用的 Cloud SQL 來源
如要為遷移程序設定 MySQL 適用的 Cloud SQL 來源執行個體,請按照下列步驟操作:
- 檢查來源資料庫是否包含使用者以
DEFINER子句定義的中繼資料。請參閱 使用DEFINER子句驗證中繼資料。資料庫遷移服務在執行同質 MySQL 遷移作業時,不會遷移使用者帳戶和登入資訊。如果來源含有使用者帳戶定義的元資料,且附有
DEFINER子句,可能會導致遷移作業遭到封鎖。 - 如果來源資料庫包含參照
mysql、performance_schema、information_schema、ndbinfo或sys系統結構定義中資料表的物件,請確保副本資料庫也包含這些系統結構定義資料表。如果副本資料庫沒有這些資料表,遷移工作可能會失敗,並顯示
Unknown table in system schema。 -
在來源資料庫啟用及設定二進位記錄。
在 MySQL 適用的 Cloud SQL 中,使用時間點復原 (PITR) 時,系統會自動啟用二進位記錄。您可以使用 Cloud SQL 提供的系統旗標,設定記錄格式和保留期限。請按照下列步驟操作:
- 在執行個體上啟用 PITR。這項功能會自動啟用二進位記錄功能。在 Cloud SQL 中,您無法在未啟用 PITR 的情況下啟用二進位記錄。詳情請參閱 Cloud SQL 說明文件中的「 時間點復原 (PITR)」。
- 使用 Cloud SQL 旗標調整記錄設定。
詳情請參閱 Cloud SQL 說明文件中的「設定資料庫旗標」。
- 資料庫遷移服務要求
binlog_format設為ROW。您不必調整這項設定,MySQL 適用的 Cloud SQL 會自動將binlog_format旗標設為ROW。 - 將
記錄保留期限設為足夠的時間長度,以便支援資料庫遷移作業。一般來說,一週就足夠。
使用下列其中一個旗標:
- MySQL 5.6 - 5.7:
expire_logs_days - MySQL 8.0 以上版本:
expire_logs_days,binlog_expire_logs_seconds
- MySQL 5.6 - 5.7:
- 資料庫遷移服務要求
-
在執行個體建立專用的遷移使用者帳戶。 請參閱 Cloud SQL 說明文件中的「 建立使用者」。請確認下列事項:
- 您允許專屬使用者帳戶從任何主機連線 (
host=%)。 - 帳戶密碼長度不超過 32 個半形字元。 如要進一步瞭解 MySQL 使用者密碼長度限制,請參閱 MySQL 錯誤 #43439。
- 您允許專屬使用者帳戶從任何主機連線 (
-
將必要權限指派給專用的遷移使用者帳戶。 如要進行持續遷移,所需權限的完整清單取決於您是否提供自己的 dump 檔案,或是使用資料庫遷移服務管理 dump 功能:
代管轉儲
如要讓資料庫遷移服務自動完整傾印來源資料庫,請將下列權限指派給使用者帳戶:
REPLICATION SLAVEEXECUTEREPLICATION CLIENTSELECTSHOW VIEWTRIGGERRELOAD- MySQL 來源版本為 8.0 以上:確認遷移帳戶沒有
BACKUP_ADMIN權限。
手動轉儲
如果您提供使用
mysqldump建立的傾印檔案,則必須提供 CDC 階段所需的權限:
設定自行託管的 MySQL 來源
如要為遷移程序設定自行託管的 MySQL 來源執行個體,請按照下列步驟操作:
- 確認所有資料表 (系統資料庫中的資料表除外) 都使用 InnoDB 儲存引擎。如果使用其他儲存空間引擎,可能需要轉換資料表。 詳情請參閱「 將資料表從 MyISAM 轉換為 InnoDB」。
- 檢查來源資料庫是否包含使用者透過
DEFINER子句定義的中繼資料。請參閱 使用DEFINER子句驗證中繼資料。資料庫遷移服務在執行同質 MySQL 遷移作業時,不會遷移使用者帳戶和登入資訊。如果來源含有使用者帳戶定義的元資料,且附有
DEFINER子句,可能會導致遷移作業遭到封鎖。 - 如果來源資料庫包含參照
mysql、performance_schema、information_schema、ndbinfo或sys系統結構定義中資料表的物件,請確保副本資料庫也包含這些系統結構定義資料表。如果副本資料庫沒有這些資料表,遷移工作可能會失敗,並顯示
Unknown table in system schema。 - 將
server-id設定設為1或更大的值。詳情請參閱「 複製和二進位記錄選項和變數」。 -
確認
GTID_MODE已設為ON或OFF,不支援其他值。在下列情況下,資料庫遷移服務需要將
GTID_MODE設為ON:- 遷移至已啟用唯讀備用資源的現有目標執行個體。
- 如要在完成遷移程序後 設定串聯式唯讀副本。
- 如果您打算手動建立 dump 檔案,並在遷移工作中提供這些檔案。
如要進一步瞭解
GTID_MODE,請參閱「 全域交易 ID 系統變數」。 -
在來源資料庫啟用及設定二進位記錄。請執行下列步驟:
- 在來源資料庫中啟用二進位記錄。
- 將
binlog_format設為'ROW'。 請參閱「以資料列為基礎的二進位記錄功能」。 - 將
記錄保留期限設為足夠長的時間,以便支援資料庫遷移作業。一般來說,一週就足夠。
使用下列其中一個旗標:
- MySQL 5.5 - 5.7:
expire_logs_days - MySQL 8.0:
expire_logs_days、binlog_expire_logs_seconds
- MySQL 5.5 - 5.7:
-
在執行個體建立專用的遷移使用者帳戶。 請參閱 帳戶管理聲明。請確認下列事項:
- 您允許專屬使用者帳戶從任何主機連線 (
host=%)。 - 帳戶密碼長度不超過 32 個半形字元。 如要進一步瞭解 MySQL 使用者密碼長度限制,請參閱 MySQL Bug #43439。
- 您允許專屬使用者帳戶從任何主機連線 (
-
將必要權限指派給專用的遷移使用者帳戶。 如要執行連續遷移作業,所需權限的完整清單取決於您是否提供自己的 dump 檔案,或使用資料庫遷移服務代管的 dump 功能:
代管轉儲
如要讓資料庫遷移服務自動完整傾印來源資料庫,請將下列權限指派給使用者帳戶:
REPLICATION SLAVEEXECUTEREPLICATION CLIENTSELECTSHOW VIEWTRIGGER- 來源採用
GTID_MODE = ON設定:RELOAD使用代管轉儲流程時,只有在 遷移至已啟用唯讀副本的現有目的地執行個體時,資料庫遷移服務才需要
GTID_MODE = ON設定。 - MySQL 來源版本為 8.0 以上:確認遷移帳戶沒有
BACKUP_ADMIN權限。
手動轉儲
如果您提供使用
mysqldump建立的傾印檔案,則必須提供 CDC 階段所需的權限:
設定 MySQL 適用的 Amazon RDS 來源
如要為遷移程序設定 Amazon RDS for MySQL 來源執行個體,請按照下列步驟操作:
- Amazon RDS for MySQL 預設使用 InnoDB 儲存引擎,但也允許使用其他儲存引擎。確認所有資料表 (系統資料庫中的資料表除外) 都使用 InnoDB 儲存引擎。如果使用其他儲存空間引擎,可能需要轉換資料表。 詳情請參閱「 將資料表從 MyISAM 轉換為 InnoDB」。
- 檢查來源資料庫是否包含使用者以
DEFINER子句定義的中繼資料。請參閱「 使用DEFINER子句驗證中繼資料」一節。資料庫遷移服務不支援同質 MySQL 遷移作業,無法遷移使用者帳戶和登入資訊。如果來源含有使用者帳戶定義的元資料,且附有
DEFINER子句,可能會導致遷移作業遭到封鎖。 - 如果來源資料庫包含參照
mysql、performance_schema、information_schema、ndbinfo或sys系統結構定義中資料表的物件,請確保副本資料庫也包含這些系統結構定義資料表。如果副本資料庫沒有這些資料表,遷移工作可能會失敗,並顯示
Unknown table in system schema。 -
確認
GTID_MODE已設為ON或OFF,不支援其他值。MySQL 適用的 Amazon RDS 預設使用GTID_MODE = OFF。在下列情況下,資料庫遷移服務需要將
GTID_MODE設為ON:- 遷移至已啟用唯讀備用資源的現有目標執行個體。
- 如果您打算手動建立 dump 檔案,並在遷移工作中提供這些檔案。
如要進一步瞭解
GTID_MODE,請參閱「 全域交易 ID 系統變數」。 -
在來源資料庫中驗證及設定二進位記錄。請執行下列步驟:
- 請確保執行個體使用自動備份功能。只有在啟用自動備份時,Amazon RDS 才會產生二進位記錄。詳情請參閱 Amazon RDS 說明文件中的「啟用自動備份」。
-
將記錄保留期限設為足夠的時間長度,以便支援資料庫遷移作業。一般來說,一週就足夠。 請參閱 Amazon RDS 說明文件中的「 設定及顯示二進位記錄設定」。
- 重新啟動伺服器,讓變更生效。
-
在執行個體中建立專用的遷移使用者帳戶。 請參閱 帳戶管理聲明。請確認:
- 您允許專屬使用者帳戶從任何主機連線 (
host=%)。 - 帳戶密碼長度不超過 32 個半形字元。 如要進一步瞭解 MySQL 使用者密碼長度限制,請參閱 MySQL 錯誤 #43439。
- 您允許專屬使用者帳戶從任何主機連線 (
-
將必要權限指派給專用的遷移使用者帳戶。 如要執行連續遷移作業,所需權限的完整清單取決於您是否提供自己的 dump 檔案,或使用資料庫遷移服務代管的 dump 功能:
代管轉儲
如要讓資料庫遷移服務自動完整傾印來源資料庫,請將下列權限指派給使用者帳戶:
REPLICATION SLAVEEXECUTEREPLICATION CLIENTSELECTSHOW VIEWTRIGGERLOCK TABLES- 來源採用
GTID_MODE = ON設定:RELOAD使用代管轉儲流程時,只有在 遷移至已啟用唯讀副本的現有目的地執行個體時,資料庫遷移服務才需要
GTID_MODE = ON設定。 - MySQL 來源版本為 8.0 以上:確認遷移帳戶沒有
BACKUP_ADMIN權限。
手動轉儲
如果您提供 使用
mysqldump建立的 dump 檔案,則必須提供 CDC 階段所需的權限:
設定 Amazon Aurora for MySQL 來源
如要為遷移程序設定 MySQL 適用的 Amazon Aurora 來源執行個體,請按照下列步驟操作:
- 檢查來源資料庫是否包含使用者透過
DEFINER子句定義的中繼資料。請參閱「 使用DEFINER子句驗證中繼資料」。資料庫遷移服務在執行同質 MySQL 遷移作業時,不會遷移使用者帳戶和登入資訊。如果來源包含由使用者帳戶定義的中繼資料,且含有
DEFINER子句,可能會導致遷移作業無法進行。 - 如果來源資料庫包含參照
mysql、performance_schema、information_schema、ndbinfo或sys系統結構定義中資料表的物件,請確保副本資料庫也包含這些系統結構定義資料表。如果副本資料庫沒有這些資料表,遷移工作可能會失敗,並顯示
Unknown table in system schema。 -
確認
GTID_MODE已設為ON或OFF,不支援其他值。MySQL 適用的 Amazon Aurora 預設使用GTID_MODE = OFF。在下列情況下,資料庫遷移服務需要將
GTID_MODE設為ON:如要進一步瞭解
GTID_MODE,請參閱「 全域交易 ID 系統變數」。 -
在來源資料庫中啟用及設定二進位記錄。請執行下列步驟:
- 為 MySQL 資料庫啟用二進位記錄。
-
設定記錄保留期限,確保資料保留時間夠長,以便支援資料庫遷移作業。一般來說,一週就足夠。 請參閱「 設定及顯示二進位記錄設定」。
- 重新啟動伺服器,讓變更生效。
-
在執行個體中建立專用的遷移使用者帳戶。 請參閱 帳戶管理聲明。請確認:
- 您允許專屬使用者帳戶從任何主機連線 (
host=%)。 - 帳戶密碼長度不超過 32 個半形字元。 如要進一步瞭解 MySQL 使用者密碼長度限制,請參閱 MySQL Bug #43439。
- 您允許專屬使用者帳戶從任何主機連線 (
-
將必要權限指派給專用的遷移使用者帳戶。 如要進行持續遷移,所需權限的完整清單取決於您是否提供自己的 dump 檔案,或是使用資料庫遷移服務管理 dump 功能:
代管轉儲
如要讓資料庫遷移服務自動完整傾印來源資料庫,請將下列權限指派給使用者帳戶:
REPLICATION SLAVEEXECUTEREPLICATION CLIENTSELECTSHOW VIEWTRIGGERLOCK TABLES- 來源採用
GTID_MODE = ON設定:RELOAD使用代管轉儲流程時,只有在 遷移至已啟用唯讀副本的現有目的地執行個體時,資料庫遷移服務才需要
GTID_MODE = ON設定。 - 如果是 MySQL 8.0 以上版本:請確認遷移帳戶沒有
BACKUP_ADMIN權限。
手動傾印
如果您提供使用
mysqldump建立的傾印檔案,則必須提供 CDC 階段所需的權限:
設定 Microsoft Azure Database for MySQL 來源
如要為遷移程序設定 Microsoft Azure Database for MySQL 來源執行個體,請按照下列步驟操作:
- 檢查來源資料庫是否包含使用者透過
DEFINER子句定義的中繼資料。請參閱「 使用DEFINER子句驗證中繼資料」一節。同質 MySQL 遷移適用的資料庫遷移服務不會遷移使用者帳戶和登入資訊。如果來源包含由使用者帳戶定義的中繼資料,且含有
DEFINER子句,可能會導致遷移作業遭到封鎖。 - 如果來源資料庫包含參照
mysql、performance_schema、information_schema、ndbinfo或sys系統結構定義中資料表的物件,請確保副本資料庫也包含這些系統結構定義資料表。如果副本資料庫沒有這些資料表,遷移工作可能會失敗,並顯示
Unknown table in system schema。 -
確認
GTID_MODE已設為ON或OFF,不支援其他值。Microsoft Azure Database for MySQL 預設使用GTID_MODE = OFF。在下列情況下,資料庫遷移服務需要將
GTID_MODE設為ON:如要進一步瞭解
GTID_MODE,請參閱「 全域交易 ID 系統變數」。 -
驗證及設定來源資料庫的二進位記錄設定。 請執行下列步驟:
- Microsoft Azure Database for MySQL 預設會啟用二進位記錄功能。您不需要啟用這項功能,但請確認功能已啟用。詳情請參閱 Microsoft 說明文件。
-
請設定
binlog_expire_logs_seconds,確保資料保留時間夠長,以便支援資料庫遷移作業。一般而言,一週就足夠。詳情請參閱 Microsoft 說明文件中的「在 Azure Database for MySQL 中設定伺服器參數」和「
binlog_expire_logs_seconds參數」。 - 重新啟動伺服器,讓變更生效。
檢查
require_secure_transport設定的值。根據預設,Microsoft Azure 資料庫會要求所有傳入連線使用 SSL/TLS 加密。建立來源連線設定檔時,請根據
require_secure_transport值使用下列其中一項加密設定:- 如果
require_secure_transport設為on,請選取「Basic」、「TLS」或「mTLS」。 - 如果
require_secure_transport設為off,請選取「無」。
- 如果
-
在執行個體建立專用的遷移使用者帳戶。 請參閱 帳戶管理聲明。請確認下列事項:
- 您允許專屬使用者帳戶從任何主機連線 (
host=%)。 - 帳戶密碼長度不超過 32 個半形字元。 如要進一步瞭解 MySQL 使用者密碼長度限制,請參閱 MySQL 錯誤 #43439。
- 您允許專屬使用者帳戶從任何主機連線 (
-
將必要權限指派給專用的遷移使用者帳戶。 如果是連續遷移,所需權限的完整清單取決於您是提供自己的 dump 檔案,還是使用資料庫遷移服務代管的 dump 功能:
代管轉儲
如要讓資料庫遷移服務自動完整傾印來源資料庫,請將下列權限指派給使用者帳戶:
REPLICATION SLAVEEXECUTEREPLICATION CLIENTSELECTSHOW VIEWTRIGGER- 來源採用
GTID_MODE = ON設定:RELOAD使用代管轉儲流程時,只有在 遷移至已啟用唯讀副本的現有目的地執行個體時,資料庫遷移服務才需要
GTID_MODE = ON設定。 - 如果是 MySQL 8.0 以上版本:請確認遷移帳戶沒有
BACKUP_ADMIN權限。
手動轉儲
如果您提供使用
mysqldump建立的傾印檔案,則必須提供 CDC 階段所需的權限:
後續步驟
如要瞭解 MySQL 適用的 Cloud SQL 同質遷移作業的完整逐步操作說明,請參閱「 開始使用 MySQL 適用的 Cloud SQL 遷移作業」。