

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 MySQL 相容資料庫做為 的來源 AWS DMS
<a name="CHAP_Source.MySQL"></a>

您可以使用 AWS Database Migration Service 從任何 MySQL 相容資料庫 (MySQL、MariaDB 或 Amazon Aurora MySQL) 遷移資料。

如需有關 AWS DMS 支援做為來源的 MySQL 版本的資訊，請參閱 [的來源 AWS DMS](CHAP_Introduction.Sources.md)。

您可以使用 SSL 加密您 MySQL 相容端點與複寫執行個體之間的連線。如需在與 MySQL 相容之端點使用 SSL 的詳細資訊，請參閱[搭配 使用 SSL AWS Database Migration Service](CHAP_Security.SSL.md)。

在以下各節中，「自我管理」一詞適用於安裝在內部部署或 Amazon EC2 上的任何資料庫。「AWS管理的」一詞適用於 Amazon RDS、Amazon Aurora 或 Amazon S3 上的任何資料庫。

如需使用 MySQL 相容資料庫和 的其他詳細資訊 AWS DMS，請參閱下列各節。

**Topics**
+ [使用 從 MySQL 遷移至 MySQL AWS DMS](#CHAP_Source.MySQL.Homogeneous)
+ [使用任何 MySQL 相容資料庫做為 的來源 AWS DMS](#CHAP_Source.MySQL.Prerequisites)
+ [使用自我管理的 MySQL 相容資料庫做為 的來源 AWS DMS](#CHAP_Source.MySQL.CustomerManaged)
+ [使用 AWS管理的 MySQL 相容資料庫做為 的來源 AWS DMS](#CHAP_Source.MySQL.AmazonManaged)
+ [使用 MySQL 資料庫做為 來源的限制 AWS DMS](#CHAP_Source.MySQL.Limitations)
+ [支援 XA 交易](#CHAP_Source.MySQL.XA)
+ [使用 MySQL 做為 來源時的端點設定 AWS DMS](#CHAP_Source.MySQL.ConnectionAttrib)
+ [MySQL 的來源資料類型](#CHAP_Source.MySQL.DataTypes)

**注意**  
設定 AWS Database Migration Service (AWS DMS) 映射規則時，請務必避免將萬用字元 (%) 用於資料庫或結構描述名稱。反之，您必須僅明確指定需要遷移的使用者建立資料庫。使用萬用字元包含遷移程序中的所有資料庫，包括目標執行個體上不需要的系統資料庫。由於 MySQL Amazon RDS 主要使用者缺少將資料匯入目標系統資料庫的必要許可，因此嘗試遷移這些系統資料庫會失敗。

## 使用 從 MySQL 遷移至 MySQL AWS DMS
<a name="CHAP_Source.MySQL.Homogeneous"></a>

對於異質遷移，當您從 MySQL 以外的資料庫引擎遷移到 MySQL 資料庫時， AWS DMS 幾乎總是最適合使用的遷移工具。但是對於從 MySQL 資料庫遷移至 MySQL 資料庫的同質遷移，我們建議您使用同質資料遷移專案。相較於 AWS DMS，同質資料遷移會使用原生資料庫工具，來提供更好的資料遷移效能和準確性。

## 使用任何 MySQL 相容資料庫做為 的來源 AWS DMS
<a name="CHAP_Source.MySQL.Prerequisites"></a>

開始使用 MySQL 資料庫做為來源之前 AWS DMS，請確定您有下列先決條件。這些先決條件適用於自我管理或 AWS受管來源。

您必須擁有具有複寫管理員角色 AWS DMS 的 帳戶。此角色需要以下權限：
+ **REPLICATION CLIENT**：僅 CDC 任務需要此權限。換言之，完全載入任務不需要此權限。
**注意**  
對於 MariaDB 10.5.2\+ 版，您可以使用 BINLOG MONITOR – 這是 REPLICATION CLIENT 的替代項目。
+ **REPLICATION SLAVE**：僅 CDC 任務需要此權限。換言之，完全載入任務不需要此權限。
+ **SUPER**：僅 MySQL 5.6.6 版以前的版本需要此權限。

 AWS DMS 使用者也必須具有指定用於複寫之來源資料表的 SELECT 權限。

如果您使用 MySQL 特定的預遷移評估，請授予下列權限：

```
grant select on mysql.user to <dms_user>;
grant select on mysql.db to <dms_user>;
grant select on mysql.tables_priv to <dms_user>;
grant select on mysql.role_edges to <dms_user>  #only for MySQL version 8.0.11 and higher
grant select on performance_schema.replication_connection_status to <dms_user>;  #Required for primary instance validation - MySQL version 5.7 and higher only
```

如果您使用 RDS 來源並計劃執行 MySQL 特定的預遷移評估，請新增下列許可：

```
grant select on mysql.rds_configuration to <dms_user>;  #Required for binary log retention check
```

如果參數`BatchEnable`為 `true`，則需要授予：

```
grant create temporary tables on `<schema>`.* to <dms_user>;
```

## 使用自我管理的 MySQL 相容資料庫做為 的來源 AWS DMS
<a name="CHAP_Source.MySQL.CustomerManaged"></a>

您可以使用以下自我管理 MySQL 相容資料庫做為 AWS DMS的來源：
+ MySQL Community Edition
+ MySQL Standard Edition
+ MySQL Enterprise Edition
+ MySQL Cluster Carrier Grade Edition
+ MariaDB Community Edition
+ MariaDB Enterprise Edition
+ MariaDB 資料行存放區

若要使用 CDC，請確保啟用二進位記錄。若要啟用二進位記錄，您必須在 MySQL 的 `my.ini` (Windows) 或 `my.cnf` (UNIX) 檔案中設定以下參數。


| 參數 | Value | 
| --- | --- | 
| `server_id` | 將此參數值設為 1 或更大。 | 
| `log-bin` | 將路徑設定到二進位日誌檔，例如 `log-bin=E:\MySql_Logs\BinLog`。不要包含副檔名。 | 
| `binlog_format` | 將此參數設為 `ROW`。我們建議在複寫期間進行此設定，因為在某些情況下，當將 `binlog_format` 設為 `STATEMENT` 時，可能會在將資料複寫到目標時造成不一致。將 `binlog_format` 設為 `MIXED` 時，資料庫引擎也會將類似不一致的資料寫入目標，因為資料庫引擎會自動切換到以 `STATEMENT` 為基礎的記錄，進而導致在目標資料庫上寫入不一致的資料。 | 
| `expire_logs_days` | 將此參數值設為 1 或更大。為避免過度使用磁碟空間，建議您不要使用預設值 0。 | 
| `binlog_checksum` | 針對 `NONE` DMS 3.4.7 版或更舊版本，將此參數設為 。 | 
| `binlog_row_image` | 將此參數設為 `FULL`。 | 
| `log_slave_updates` | 如果您使用 MySQL 或 MariaDB 僅供讀取複本做為來源，請將此參數設為 `TRUE`。 | 

如果您使用 MySQL 或 MariaDB 僅供讀取複本做為使用**遷移現有資料之 DMS 遷移任務的來源，並複寫持續變更**模式，則可能會遺失資料。在下列情況下，DMS 不會在完全載入或 CDC 期間寫入交易：
+ DMS 任務開始之前，交易已遞交至主要執行個體。
+ 在 DMS 任務啟動之前，交易尚未遞交至複本，因為主要執行個體與複本之間存在延遲。

主要執行個體與複本之間的延遲越長，資料遺失的可能性就越大。

如果您的來源使用 NDB (叢集化) 資料庫引擎，即必須設定以下參數，對使用該儲存引擎的資料表啟用 CDC。將這些變更新增至 MySQL 的 `my.ini` (Windows) 或 `my.cnf` (UNIX) 檔案。


| 參數 | Value | 
| --- | --- | 
| `ndb_log_bin` | 將此參數設為 `ON`。這個值可確保叢集化資料表的變更都會記錄到二進位日誌。 | 
| `ndb_log_update_as_write` | 將此參數設為 `OFF`。這個值避免在二進位日誌中將 UPDATE 陳述式編寫為 INSERT 陳述式。 | 
| `ndb_log_updated_only` | 將此參數設為 `OFF`。這個值可確保二進位日誌包含整個資料列，不僅是變更的資料行。 | 

## 使用 AWS管理的 MySQL 相容資料庫做為 的來源 AWS DMS
<a name="CHAP_Source.MySQL.AmazonManaged"></a>

您可以使用下列 AWS受管 MySQL 相容資料庫做為 的來源 AWS DMS：
+ MySQL Community Edition
+ MariaDB Community Edition
+ Amazon Aurora MySQL-Compatible Edition

使用 AWS受管 MySQL 相容資料庫做為 的來源時 AWS DMS，請確定您有下列 CDC 的先決條件：
+ 若要為適用於 MySQL 的 RDS 和適用於 MariaDB 的 RDS 啟用二進位日誌，請在執行個體層級啟用自動備份。若要為 Aurora MySQL 叢集啟用二進位日誌，請變更參數群組中的變數 `binlog_format`。

  如需設定自動備份的相關資訊，請參閱《Amazon RDS 使用者指南》**中的[使用自動備份](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithAutomatedBackups.html)。

  如需為 Amazon RDS for MySQL 資料庫設定二進位記錄功能的相關資訊，請參閱《Amazon RDS 使用者指南》**中的[設定二進位記錄格式](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.MySQL.BinaryFormat.html)。

  如需為 Aurora MySQL 叢集設定二進位記錄的相關資訊，請參閱[如何為 Amazon Aurora MySQL 叢集開啟二進位記錄功能？](https://aws.amazon.com/premiumsupport/knowledge-center/enable-binary-logging-aurora/)。
+ 如果您打算使用 CDC，請開啟二進位記錄功能。如需為 Amazon RDS for MySQL 資料庫設定二進位記錄功能的相關資訊，請參閱《Amazon RDS 使用者指南》**中的[設定二進位記錄格式](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.MySQL.BinaryFormat.html)。
+ 確保二進位日誌可供 使用 AWS DMS。由於 AWS受管 MySQL 相容資料庫會盡快清除二進位日誌，因此您應該增加日誌保持可用的時間長度。例如，執行下列命令將日誌保留期增加為 24 小時。

  ```
   call mysql.rds_set_configuration('binlog retention hours', 24);
  ```
+ 將 `binlog_format` 參數設為 `"ROW"`。
**注意**  
在 MySQL 或 MariaDB 上，`binlog_format` 是動態參數，因此您不必重新啟動，新值便會生效。不過，新值只會套用至新的工作階段。如果您為了複寫目的而將 `binlog_format` 切換到 `ROW`，如果那些工作階段在您變更值之前已開始，則資料庫仍然可以使用 `MIXED` 格式建立後續的二進位日誌。這可能會 AWS DMS 阻止 正確擷取來源資料庫上的所有變更。當您變更 MariaDB 或 MySQL 資料庫上的 `binlog_format` 設定時，請務必重新啟動資料庫以關閉所有現有的工作階段，或重新啟動任何執行 DML (資料操作語言) 操作的應用程式。將 `binlog_format` 參數變更為 後，強制資料庫重新啟動所有工作階段，`ROW`可確保資料庫使用正確的格式寫入所有後續來源資料庫變更，讓 AWS DMS 可以正確擷取這些變更。
+ 將 `binlog_row_image` 參數設為 `"Full"`。
+ 將 `"NONE"` DMS 3.4.7 版或更舊版本的 `binlog_checksum` 參數設為 。如需在 Amazon RDS MySQL 中設定參數的詳細資訊，請參閱《Amazon RDS 使用者指南》**中的[使用自動備份](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithAutomatedBackups.html)。
+ 如果您使用 Amazon RDS MySQL 或 Amazon RDS MariaDB 僅供讀取複本作為來源，則請在僅供讀取複本上啟用備份，並確保將 `log_slave_updates` 參數設為 `TRUE`。

## 使用 MySQL 資料庫做為 來源的限制 AWS DMS
<a name="CHAP_Source.MySQL.Limitations"></a>

使用 MySQL 資料庫做為來源時，請考慮下列事項：
+  不支援 Amazon RDS MySQL 5.5 版或較舊版本的變更資料擷取 (CDC)。針對 Amazon RDS MySQL，您必須使用 5.6、5.7 或 8.0 版才能啟用 CDC。若為自我管理 MySQL 5.5 來源，則可支援 CDC。
+ 對於 CDC，`CREATE TABLE`、`ADD COLUMN` 和 `DROP COLUMN` 變更資料欄資料類型，且支援 `renaming a column`。但是，不支援 `DROP TABLE`、`RENAME TABLE` 和對其他屬性 (例如資料欄預設值、資料欄可為 Null 性、字元集等) 進行的更新。
+  對於來源上的分割資料表，當您將**目標資料表準備模式**設定為在**目標上捨棄資料表**時， 會在 MySQL 目標上 AWS DMS 建立沒有任何分割區的簡單資料表。若要將分割資料表遷移到目標的分割資料表，請在目標 MySQL 資料庫上預先建立分割資料表。
+  關聯式目標不支援使用 `ALTER TABLE {{table_name}} ADD COLUMN {{column_name}}`陳述式將資料欄新增至資料表的開頭 (FIRST) 或中間 (AFTER)。資料行一律新增到資料表結尾處。當目標為 Amazon S3 或 Amazon Kinesis Data Streams 時，支援使用 FIRST 或 AFTER 新增資料欄。
+ 當資料表名稱包含大小寫字元，而來源引擎託管在檔案名稱不區分大小寫的作業系統上時，不支援 CDC。範例是使用 HFS\+ 的 Microsoft Windows 或 OS X。
+ 您可以使用 Aurora MySQL 相容版本無伺服器 v1 進行完全載入，但無法將其用於 CDC。這是因為您無法滿足 MySQL 的先決條件。如需詳細資訊，請參閱[參數群組和 Aurora Serverless 第 1 版](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.how-it-works.html#aurora-serverless.parameter-groups)。

  Aurora MySQL 相容版本 Serverless v2 支援 CDC。
+  資料行中的 AUTO\_INCREMENT 屬性不會遷移到目標資料庫資料行。
+  當二進位日誌不儲存在標準區塊儲存時，不支援擷取變更。例如，當二進位日誌存放在 Amazon S3 上時，CDC 無法運作。
+  AWS DMS 根據預設， 會使用 InnoDB 儲存引擎建立目標資料表。如果您需要使用 InnoDB 以外的儲存引擎，您必須手動建立資料表，並使用 [do nothing (不執行任何動做)](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html) 模式遷移到它。
+ 除非 DMS 遷移任務模式是**遷移現有資料**， AWS DMS 否則您無法使用 Aurora MySQL 複本做為 的來源，僅限完全載入。
+  如果 MySQL 相容來源在完全載入期間停止，任務 AWS DMS 不會因錯誤而停止。任務成功結束，但目標與來源可能不同步。如果發生這種情況，請重新啟動任務或重新載入受影響的資料表。
+  不遷移建立在部分資料行值的索引。例如，目標中不會建立索引 CREATE INDEX first\_ten\_chars ON customer (name(10))。
+ 在某些情況下，任務設定不複寫 LOB ("SupportLobs" 在任務設定中為 false，或在任務主控台中選擇** “Don't include LOB columns” (請勿包含 LOB 資料欄)**)。在這些情況下， AWS DMS 不會將任何 MEDIUMBLOB、LONGBLOB、MEDIUMTEXT 和 LONGTEXT 資料欄遷移到目標。

  BLOB、TINYBLOB、TEXT 和 TINYTEXT 資料行不受影響，會遷移到目標。
+ MariaDB 來源和目標資料庫上不支援暫時時間資料表或系統版本控制的資料表。
+ 如果在兩個 Amazon RDS Aurora MySQL 叢集之間進行遷移，則 RDS Aurora MySQL 來源端點必須是讀取/寫入執行個體，而不是複本執行個體。
+ AWS DMS 目前不支援 MariaDB 的檢視遷移。
+ AWS DMS 不支援 MySQL 分割資料表的 DDL 變更。若要在 CDC 期間略過分割區 DDL 變更的資料表暫停，請將 `skipTableSuspensionForPartitionDdl` 設為 `true`。
+ AWS DMS 僅支援 3.5.0 版和更新版本的 XA 交易。舊版不支援 XA 交易。 AWS DMS 不支援 MariaDB 10.6 版或更新版本中的 XA 交易。如需詳細資訊，請參閱[支援 XA 交易](#CHAP_Source.MySQL.XA)以下內容。
+ AWS DMS 即使來源資料包含 GTIDs進行複寫。
+ AWS DMS 不支援 Aurora MySQL 增強型二進位日誌。
+ AWS DMS 不支援二進位日誌交易壓縮。
+ AWS DMS 不會使用 InnoDB 儲存引擎為 MySQL 資料庫傳播 ON DELETE CASCADE 和 ON UPDATE CASCADE 事件。對於這些事件，MySQL 不會產生 binlog 事件來反映子資料表上的梯級操作。因此， AWS DMS 無法將對應的變更複寫至子資料表。如需詳細資訊，請參閱[未遷移的索引、外部索引鍵或梯級更新或刪除](CHAP_Troubleshooting.md#CHAP_Troubleshooting.MySQL.FKsAndIndexes)。
+ AWS DMS 不會擷取運算 (`VIRTUAL` 和 `GENERATED ALWAYS`) 資料欄的變更。若要解決這個限制，您可以執行以下操作：
  + 在目標資料庫中預先建立目標資料表，並使用 `DO_NOTHING` 或 `TRUNCATE_BEFORE_LOAD` 完全載入任務設定建立 AWS DMS 任務。
  + 新增轉換規則，以從任務範圍移除計算資料欄。如需轉型規則的詳細資訊，請參閱[轉換規則與動作](CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Transformations.md)。
+ 由於內部 MySQL 限制， AWS DMS 可以處理大小不超過 4GB BINLOGs。大於 4GB BINLOGs 可能會導致 DMS 任務失敗或其他無法預測的行為。您必須減少交易的大小，以避免 BINLOGs大於 4GB。
+ AWS DMS 不支援結構描述、資料表和資料欄名稱中的反引號 (```) 或單引號 (`'`)。
+ AWS DMS 不會從來源資料庫中的隱藏資料欄遷移資料。若要將這些資料欄包含在遷移範圍中，請使用 ALTER TABLE 陳述式讓這些資料欄可見。

## 支援 XA 交易
<a name="CHAP_Source.MySQL.XA"></a>

延伸架構 (XA) 交易是這種交易，可用來將來自多個交易資源的一系列操作分組為單一、可靠的全域交易。XA 交易使用兩階段遞交通訊協定。一般而言，存在開啟 XA 交易時擷取變更可能會導致資料遺失。如果您的資料庫不使用 XA 交易，您可以使用`IgnoreOpenXaTransactionsCheck`失能值 忽略此許可和組態`TRUE`。若要從具有 XA 交易的來源開始複寫，請執行下列動作：
+ 確定 AWS DMS 端點使用者具有下列許可：

  ```
  grant XA_RECOVER_ADMIN on *.* to 'userName'@'%';
  ```
+ 將端點設定 `IgnoreOpenXaTransactionsCheck` 設為 `false`。

**注意**  
AWS DMS 不支援 MariaDB 來源資料庫 10.6 版或更新版本上的 XA 交易。

## 使用 MySQL 做為 來源時的端點設定 AWS DMS
<a name="CHAP_Source.MySQL.ConnectionAttrib"></a>

您可以使用端點設定來設定 MySQL 來源資料庫，類似於使用額外的連線屬性。當您使用 AWS DMS 主控台或使用 中的 `create-endpoint`命令搭配 `--my-sql-settings '{"{{EndpointSetting"}}: {{"value"}}, {{...}}}'` JSON 語法來建立來源端點時[AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/dms/index.html)，您可以指定設定。

下列資料表顯示您可以在將 MySQL 作為來源搭配使用的端點設定。


| 名稱 | 描述 | 
| --- | --- | 
| `ConnectionTimeout` | 使用此額外的連線屬性 (ECA)，以秒為單位設定 MySQL 執行個體的端點連線逾時。預設值為 10 秒。ECA 範例：`ConnectionTimeout=30`。 | 
| EventsPollInterval | 指定資料庫閒置時，二進位日誌之新變更/事件的檢查頻率。<br />預設值：5 <br />有效值：1-60 <br />範例：`--my-sql-settings '{"EventsPollInterval": 5}'`<br />在此範例中， 會每五秒 AWS DMS 檢查二進位日誌中的變更。 | 
| ExecuteTimeout | 對於 3.4.7 版和更新 AWS DMS 版本， 會以秒為單位設定 MySQL 來源端點的用戶端陳述式逾時。<br />預設值：60 <br />範例：`--my-sql-settings '{"ExecuteTimeout": 1500}'` | 
| ServerTimezone | 指定來源 MySQL 資料庫的時區。<br />範例：`--my-sql-settings '{"ServerTimezone": "{{US/Pacific}}"}'` | 
| AfterConnectScript | 指定 AWS DMS 連線至端點後立即執行的指令碼。無論 SQL 陳述式成功或失敗，遷移任務都會繼續執行。<br />有效值：一或多個有效的 SQL 陳述式，由分號開頭。<br />範例：`--my-sql-settings '{"AfterConnectScript": "ALTER SESSION SET CURRENT_SCHEMA=system"}'` | 
|  CleanSourceMetadataOnMismatch  | 發生不相符時，清除和重新建立複寫執行個體的資料表中繼資料資訊。例如，在資料表中執行更改 DDL 的情況，可能會造成在複寫執行個體的快取資料表資訊不同。布林值。<br />預設值：`false`<br />範例：`--my-sql-settings '{"CleanSourceMetadataOnMismatch": false}'` | 
|  skipTableSuspensionForPartitionDdl  | AWS DMS 不支援 MySQL 分割資料表的 DDL 變更。對於 3.4.6 版和更新 AWS DMS 版本，將此設定為在 CDC. AWS DMS ignores partitioned-table-related DDL 期間`true`略過分割區 DDL 變更的資料表停用，並繼續處理進一步的二進位日誌變更。<br />預設值：`false`<br />範例：`--my-sql-settings '{"skipTableSuspensionForPartitionDdl": true}'` | 
|  IgnoreOpenXaTransactionsCheck  | 對於 3.5.0 版和更新 AWS DMS 版本，指定任務是否應該在啟動時忽略開啟的 XA 交易。如果來源具有 XA 交易，請將此設為 `false`。<br />預設值：`true`<br />範例：`--my-sql-settings '{"IgnoreOpenXaTransactionsCheck": false}'` | 

## MySQL 的來源資料類型
<a name="CHAP_Source.MySQL.DataTypes"></a>

下表顯示使用 時支援的 MySQL 資料庫來源資料類型， AWS DMS 以及來自 AWS DMS 資料類型的預設映射。

如需如何檢視從目標映射的資料類型資訊，請參閱您要使用的目標端點一節。

如需 AWS DMS 資料類型的詳細資訊，請參閱 [AWS Database Migration Service 的資料類型](CHAP_Reference.DataTypes.md)。


|  MySQL 資料類型  |  AWS DMS 資料類型  | 
| --- | --- | 
| INT | INT4 | 
| BIGINT | INT8 | 
| MEDIUMINT | INT4 | 
| TINYINT | INT1 | 
| SMALLINT | INT2 | 
| UNSIGNED TINYINT | UINT1 | 
| UNSIGNED SMALLINT | UINT2 | 
| UNSIGNED MEDIUMINT | UINT4 | 
| UNSIGNED INT | UINT4 | 
| UNSIGNED BIGINT | UINT8 | 
| DECIMAL(10) | NUMERIC (10,0) | 
| BINARY | BYTES(1) | 
| BIT | BOOLEAN | 
| BIT(64) | BYTES(8) | 
| BLOB | BYTES(65535) | 
| LONGBLOB | BLOB | 
| MEDIUMBLOB | BLOB | 
| TINYBLOB | BYTES(255) | 
| DATE | DATE | 
| DATETIME | DATETIME<br />複寫沒有括號值的 DATETIME (不含毫秒)。複寫具有括號值為 1 到 5 (例如 `DATETIME(5)`) 的 DATETIME (含毫秒)。<br />複寫 DATETIME 資料欄時，目標上的時間保持不變。其不會轉換為 UTC。 | 
| TIME | STRING | 
| TIMESTAMP | DATETIME<br />複寫 TIMESTAMP 資料欄時，會將時間轉換為目標上的 UTC。 | 
| YEAR | INT2 | 
| DOUBLE | REAL8 | 
| FLOAT | REAL(DOUBLE)<br />如果 FLOAT 值不在以下範圍內，請使用轉換將 FLOAT 對應至 STRING。如需轉型的詳細資訊，請參閱[轉換規則與動作](CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Transformations.md)。<br />支援的 FLOAT 範圍是 -1.79E\+308 到 -2.23E-308、0，以及 2.23E-308 到 1.79E\+308 | 
| VARCHAR (45) | WSTRING (45) | 
| VARCHAR (2000) | WSTRING (2000) | 
| VARCHAR (4000) | WSTRING (4000) | 
| VARBINARY (4000) | BYTES (4000) | 
| VARBINARY (2000) | BYTES (2000) | 
| CHAR | WSTRING | 
| TEXT | WSTRING | 
| LONGTEXT | NCLOB | 
| MEDIUMTEXT | NCLOB | 
| TINYTEXT | WSTRING(255) | 
| GEOMETRY | BLOB | 
| POINT | BLOB | 
| LINESTRING | BLOB | 
| POLYGON | BLOB | 
| MULTIPOINT | BLOB | 
| MULTILINESTRING | BLOB | 
| MULTIPOLYGON | BLOB | 
| GEOMETRYCOLLECTION | BLOB | 
| ENUM | WSTRING ({{長度}})<br />在這裡，{{長度}}是 ENUM 中最長值的長度。 | 
| SET | WSTRING ({{長度}})<br />在這裡，{{長度}}是 SET 中所有值的總長度 (包括逗號)。 | 
| JSON | CLOB | 

**注意**  
在某些情況下，您可以使用值「零」 (也就是 0000-00-00)，來指定 DATETIME 和 TIMESTAMP 資料類型。如果這樣做，請確定複寫任務中的目標資料庫支援 DATETIME 和 TIMESTAMP 資料類型的「零」值。否則，這些值在目標上會記錄為 null。