設定來源 MySQL 資料庫,以便持續遷移資料

本頁面說明如何設定下列來源資料庫執行個體,以便執行連續同質 MySQL 遷移作業:

設定 MySQL 適用的 Cloud SQL 來源

如要為遷移程序設定 MySQL 適用的 Cloud SQL 來源執行個體,請按照下列步驟操作:

  1. 檢查來源資料庫是否包含使用者以 DEFINER 子句定義的中繼資料。請參閱 使用 DEFINER 子句驗證中繼資料。

    資料庫遷移服務在執行同質 MySQL 遷移作業時,不會遷移使用者帳戶和登入資訊。如果來源含有使用者帳戶定義的元資料,且附有 DEFINER 子句,可能會導致遷移作業遭到封鎖。

  2. 如果來源資料庫包含參照 mysql、performance_schema、information_schema、ndbinfo 或 sys 系統結構定義中資料表的物件,請確保副本資料庫也包含這些系統結構定義資料表。

    如果副本資料庫沒有這些資料表,遷移工作可能會失敗,並顯示 Unknown table in system schema 。

  3. 在來源資料庫啟用及設定二進位記錄。

    在 MySQL 適用的 Cloud SQL 中,使用時間點復原 (PITR) 時,系統會自動啟用二進位記錄。您可以使用 Cloud SQL 提供的系統旗標,設定記錄格式和保留期限。請按照下列步驟操作:

    1. 在執行個體上啟用 PITR。這項功能會自動啟用二進位記錄功能。在 Cloud SQL 中,您無法在未啟用 PITR 的情況下啟用二進位記錄。詳情請參閱 Cloud SQL 說明文件中的「 時間點復原 (PITR)」。
    2. 使用 Cloud SQL 旗標調整記錄設定。 詳情請參閱 Cloud SQL 說明文件中的「設定資料庫旗標」。
      1. 資料庫遷移服務要求 binlog_format 設為 ROW。您不必調整這項設定,MySQL 適用的 Cloud SQL 會自動將 binlog_format 旗標設為 ROW。
      2. 將 記錄保留期限設為足夠的時間長度,以便支援資料庫遷移作業。一般來說,一週就足夠。 使用下列其中一個旗標:
        • MySQL 5.6 - 5.7:expire_logs_days
        • MySQL 8.0 以上版本:expire_logs_days, binlog_expire_logs_seconds
  4. 在執行個體建立專用的遷移使用者帳戶。 請參閱 Cloud SQL 說明文件中的「 建立使用者」。請確認下列事項:

    • 您允許專屬使用者帳戶從任何主機連線 (host=%)。
    • 帳戶密碼長度不超過 32 個半形字元。 如要進一步瞭解 MySQL 使用者密碼長度限制,請參閱 MySQL 錯誤 #43439。
  5. 將必要權限指派給專用的遷移使用者帳戶。 如要進行持續遷移,所需權限的完整清單取決於您是否提供自己的 dump 檔案,或是使用資料庫遷移服務管理 dump 功能:

    代管轉儲

    如要讓資料庫遷移服務自動完整傾印來源資料庫,請將下列權限指派給使用者帳戶:

    手動轉儲

    如果您提供使用 mysqldump 建立的傾印檔案,則必須提供 CDC 階段所需的權限:

設定自行託管的 MySQL 來源

如要為遷移程序設定自行託管的 MySQL 來源執行個體,請按照下列步驟操作:

  1. 確認所有資料表 (系統資料庫中的資料表除外) 都使用 InnoDB 儲存引擎。如果使用其他儲存空間引擎,可能需要轉換資料表。 詳情請參閱「 將資料表從 MyISAM 轉換為 InnoDB」。
  2. 檢查來源資料庫是否包含使用者透過 DEFINER 子句定義的中繼資料。請參閱 使用 DEFINER 子句驗證中繼資料。

    資料庫遷移服務在執行同質 MySQL 遷移作業時,不會遷移使用者帳戶和登入資訊。如果來源含有使用者帳戶定義的元資料,且附有 DEFINER 子句,可能會導致遷移作業遭到封鎖。

  3. 如果來源資料庫包含參照 mysql、performance_schema、information_schema、ndbinfo 或 sys 系統結構定義中資料表的物件,請確保副本資料庫也包含這些系統結構定義資料表。

    如果副本資料庫沒有這些資料表,遷移工作可能會失敗,並顯示 Unknown table in system schema 。

  4. 將 server-id 設定設為 1 或更大的值。詳情請參閱「 複製和二進位記錄選項和變數」。
  5. 確認 GTID_MODE 已設為 ON 或 OFF,不支援其他值。

    在下列情況下,資料庫遷移服務需要將 GTID_MODE 設為 ON:

    如要進一步瞭解 GTID_MODE,請參閱「 全域交易 ID 系統變數」。

  6. 在來源資料庫啟用及設定二進位記錄。請執行下列步驟:

  7. 在執行個體建立專用的遷移使用者帳戶。 請參閱 帳戶管理聲明。請確認下列事項:

    • 您允許專屬使用者帳戶從任何主機連線 (host=%)。
    • 帳戶密碼長度不超過 32 個半形字元。 如要進一步瞭解 MySQL 使用者密碼長度限制,請參閱 MySQL Bug #43439。
  8. 將必要權限指派給專用的遷移使用者帳戶。 如要執行連續遷移作業,所需權限的完整清單取決於您是否提供自己的 dump 檔案,或使用資料庫遷移服務代管的 dump 功能:

    代管轉儲

    如要讓資料庫遷移服務自動完整傾印來源資料庫,請將下列權限指派給使用者帳戶:

    手動轉儲

    如果您提供使用 mysqldump 建立的傾印檔案,則必須提供 CDC 階段所需的權限:

設定 MySQL 適用的 Amazon RDS 來源

如要為遷移程序設定 Amazon RDS for MySQL 來源執行個體,請按照下列步驟操作:

  1. Amazon RDS for MySQL 預設使用 InnoDB 儲存引擎,但也允許使用其他儲存引擎。確認所有資料表 (系統資料庫中的資料表除外) 都使用 InnoDB 儲存引擎。如果使用其他儲存空間引擎,可能需要轉換資料表。 詳情請參閱「 將資料表從 MyISAM 轉換為 InnoDB」。
  2. 檢查來源資料庫是否包含使用者以 DEFINER 子句定義的中繼資料。請參閱「 使用 DEFINER 子句驗證中繼資料」一節。

    資料庫遷移服務不支援同質 MySQL 遷移作業,無法遷移使用者帳戶和登入資訊。如果來源含有使用者帳戶定義的元資料,且附有 DEFINER 子句,可能會導致遷移作業遭到封鎖。

  3. 如果來源資料庫包含參照 mysql、performance_schema、information_schema、ndbinfo 或 sys 系統結構定義中資料表的物件,請確保副本資料庫也包含這些系統結構定義資料表。

    如果副本資料庫沒有這些資料表,遷移工作可能會失敗,並顯示 Unknown table in system schema 。

  4. 確認 GTID_MODE 已設為 ON 或 OFF,不支援其他值。MySQL 適用的 Amazon RDS 預設使用 GTID_MODE = OFF。

    在下列情況下,資料庫遷移服務需要將 GTID_MODE 設為 ON:

    如要進一步瞭解 GTID_MODE,請參閱「 全域交易 ID 系統變數」。

  5. 在來源資料庫中驗證及設定二進位記錄。請執行下列步驟:

    1. 請確保執行個體使用自動備份功能。只有在啟用自動備份時,Amazon RDS 才會產生二進位記錄。詳情請參閱 Amazon RDS 說明文件中的「啟用自動備份」。
    2. 將記錄保留期限設為足夠的時間長度,以便支援資料庫遷移作業。一般來說,一週就足夠。 請參閱 Amazon RDS 說明文件中的「 設定及顯示二進位記錄設定」。

    3. 重新啟動伺服器,讓變更生效。
  6. 在執行個體中建立專用的遷移使用者帳戶。 請參閱 帳戶管理聲明。請確認:

    • 您允許專屬使用者帳戶從任何主機連線 (host=%)。
    • 帳戶密碼長度不超過 32 個半形字元。 如要進一步瞭解 MySQL 使用者密碼長度限制,請參閱 MySQL 錯誤 #43439。
  7. 將必要權限指派給專用的遷移使用者帳戶。 如要執行連續遷移作業,所需權限的完整清單取決於您是否提供自己的 dump 檔案,或使用資料庫遷移服務代管的 dump 功能:

    代管轉儲

    如要讓資料庫遷移服務自動完整傾印來源資料庫,請將下列權限指派給使用者帳戶:

    手動轉儲

    如果您提供 使用 mysqldump 建立的 dump 檔案,則必須提供 CDC 階段所需的權限:

設定 Amazon Aurora for MySQL 來源

如要為遷移程序設定 MySQL 適用的 Amazon Aurora 來源執行個體,請按照下列步驟操作:

  1. 檢查來源資料庫是否包含使用者透過 DEFINER 子句定義的中繼資料。請參閱「 使用 DEFINER 子句驗證中繼資料」。

    資料庫遷移服務在執行同質 MySQL 遷移作業時,不會遷移使用者帳戶和登入資訊。如果來源包含由使用者帳戶定義的中繼資料,且含有 DEFINER 子句,可能會導致遷移作業無法進行。

  2. 如果來源資料庫包含參照 mysql、performance_schema、information_schema、ndbinfo 或 sys 系統結構定義中資料表的物件,請確保副本資料庫也包含這些系統結構定義資料表。

    如果副本資料庫沒有這些資料表,遷移工作可能會失敗,並顯示 Unknown table in system schema 。

  3. 確認 GTID_MODE 已設為 ON 或 OFF,不支援其他值。MySQL 適用的 Amazon Aurora 預設使用 GTID_MODE = OFF。

    在下列情況下,資料庫遷移服務需要將 GTID_MODE 設為 ON:

    如要進一步瞭解 GTID_MODE,請參閱「 全域交易 ID 系統變數」。

  4. 在來源資料庫中啟用及設定二進位記錄。請執行下列步驟:

    1. 為 MySQL 資料庫啟用二進位記錄。
    2. 設定記錄保留期限,確保資料保留時間夠長,以便支援資料庫遷移作業。一般來說,一週就足夠。 請參閱「 設定及顯示二進位記錄設定」。

    3. 重新啟動伺服器,讓變更生效。
  5. 在執行個體中建立專用的遷移使用者帳戶。 請參閱 帳戶管理聲明。請確認:

    • 您允許專屬使用者帳戶從任何主機連線 (host=%)。
    • 帳戶密碼長度不超過 32 個半形字元。 如要進一步瞭解 MySQL 使用者密碼長度限制,請參閱 MySQL Bug #43439。
  6. 將必要權限指派給專用的遷移使用者帳戶。 如要進行持續遷移,所需權限的完整清單取決於您是否提供自己的 dump 檔案,或是使用資料庫遷移服務管理 dump 功能:

    代管轉儲

    如要讓資料庫遷移服務自動完整傾印來源資料庫,請將下列權限指派給使用者帳戶:

    手動傾印

    如果您提供使用 mysqldump 建立的傾印檔案,則必須提供 CDC 階段所需的權限:

設定 Microsoft Azure Database for MySQL 來源

如要為遷移程序設定 Microsoft Azure Database for MySQL 來源執行個體,請按照下列步驟操作:

  1. 檢查來源資料庫是否包含使用者透過 DEFINER 子句定義的中繼資料。請參閱「 使用 DEFINER 子句驗證中繼資料」一節。

    同質 MySQL 遷移適用的資料庫遷移服務不會遷移使用者帳戶和登入資訊。如果來源包含由使用者帳戶定義的中繼資料,且含有 DEFINER 子句,可能會導致遷移作業遭到封鎖。

  2. 如果來源資料庫包含參照 mysql、performance_schema、information_schema、ndbinfo 或 sys 系統結構定義中資料表的物件,請確保副本資料庫也包含這些系統結構定義資料表。

    如果副本資料庫沒有這些資料表,遷移工作可能會失敗,並顯示 Unknown table in system schema 。

  3. 確認 GTID_MODE 已設為 ON 或 OFF,不支援其他值。Microsoft Azure Database for MySQL 預設使用 GTID_MODE = OFF。

    在下列情況下,資料庫遷移服務需要將 GTID_MODE 設為 ON:

    如要進一步瞭解 GTID_MODE,請參閱「 全域交易 ID 系統變數」。

  4. 驗證及設定來源資料庫的二進位記錄設定。 請執行下列步驟:

    1. Microsoft Azure Database for MySQL 預設會啟用二進位記錄功能。您不需要啟用這項功能,但請確認功能已啟用。詳情請參閱 Microsoft 說明文件。
    2. 請設定 binlog_expire_logs_seconds,確保資料保留時間夠長,以便支援資料庫遷移作業。一般而言,一週就足夠。

      詳情請參閱 Microsoft 說明文件中的「在 Azure Database for MySQL 中設定伺服器參數」和「 binlog_expire_logs_seconds 參數」。

    3. 重新啟動伺服器,讓變更生效。
  5. 檢查 require_secure_transport 設定的值。

    根據預設,Microsoft Azure 資料庫會要求所有傳入連線使用 SSL/TLS 加密。建立來源連線設定檔時,請根據 require_secure_transport 值使用下列其中一項加密設定:

    • 如果 require_secure_transport 設為 on,請選取「Basic」、「TLS」或「mTLS」。
    • 如果 require_secure_transport 設為 off,請選取「無」。
  6. 在執行個體建立專用的遷移使用者帳戶。 請參閱 帳戶管理聲明。請確認下列事項:

    • 您允許專屬使用者帳戶從任何主機連線 (host=%)。
    • 帳戶密碼長度不超過 32 個半形字元。 如要進一步瞭解 MySQL 使用者密碼長度限制,請參閱 MySQL 錯誤 #43439。
  7. 將必要權限指派給專用的遷移使用者帳戶。 如果是連續遷移,所需權限的完整清單取決於您是提供自己的 dump 檔案,還是使用資料庫遷移服務代管的 dump 功能:

    代管轉儲

    如要讓資料庫遷移服務自動完整傾印來源資料庫,請將下列權限指派給使用者帳戶:

    手動轉儲

    如果您提供使用 mysqldump 建立的傾印檔案,則必須提供 CDC 階段所需的權限:

後續步驟

如要瞭解 MySQL 適用的 Cloud SQL 同質遷移作業的完整逐步操作說明,請參閱「 開始使用 MySQL 適用的 Cloud SQL 遷移作業」。