本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Microsoft SQL Server 資料庫做為 AWS Database Migration Service 的目標
您可以使用 AWS DMS 將資料遷移到 Microsoft SQL Server 資料庫。使用 SQL Server 資料庫做為目標,您可以遷移其他 SQL Server 資料庫或其他受支援資料庫的資料。
如需有關 AWS DMS 支援作為目標的 SQL Server 版本資訊,請參閱 的目標 AWS DMS。
AWS DMS 支援企業版、標準版、工作群組和開發人員的內部部署和 Amazon RDS 版本。
如需使用 AWS DMS 和 SQL Server 目標資料庫的其他詳細資訊,請參閱以下內容。
主題
使用 SQL Server 做為 AWS Database Migration Service 目標的限制
使用 SQL Server 資料庫做為 AWS DMS 目標時有下列限制:
-
當您手動建立附計算資料行的 SQL Server 目標資料表時,使用 BCP 大量複製公用程式時不支援完全載入複寫。若要使用完全載入複寫,請在端點上設定額外連線屬性 (ECA)
'useBCPFullLoad=false'
以停用 BCP 載入。如需在端點上設定 ECA 的詳細資訊,請參閱 來源與目標端點。如需使用 BCP 的詳細資訊,請參閱 Microsoft SQL Server 文件。 -
使用 SQL Server 空間資料類型 (GEOMETRY 和 GEOGRAPHY) 複寫資料表時,AWS DMS 會使用預設 SRID 取代您可能已插入的任何空間參考識別符 (SRID)。GEOMETRY 的預設 SRID 為 0,而 GEOGRAPHY 的預設 SRID 為 4326。
-
不支援暫時資料表。如果目標上的暫時資料表是以手動方式建立,則遷移這些資料表可能要在交易套用模式中使用僅複寫任務。
-
目前 PostgreSQL 來源中的
boolean
資料類型會以具有不一致值的bit
資料類型形式,移轉至 SQLServer 目標。若要解決這項問題,請執行下列動作:
請使用資料行的
VARCHAR(1)
資料類型預先建立資料表 (或讓 AWS DMS 建立資料表)。然後讓下游處理將「F」視為 False,將「T」視為 True。若要避免變更下游處理,請將轉換規則新增至任務以將「F」值變更為「0」、將「T」值變更為 1,並將這些值儲存為 SQL Server 位元資料類型。
-
AWS DMS 不支援變更處理設定資料欄的可為 Null 性 (使用包含
ALTER TABLE
陳述式的ALTER COLUMN [SET|DROP] NOT NULL
子句)。 -
不支援 Windows 驗證。
使用 SQL Server 做為 AWS Database Migration Service 目標的安全需求
以下說明對 Microsoft SQL Server 目標使用 AWS DMS 時的安全性需求:
-
在您要連線的 SQL Server 資料庫上,AWS DMS 使用者帳戶至少必須具有
db_owner
使用者角色。 -
SQL Server 系統管理員必須向所有 AWS DMS 使用者帳戶提供此許可。
使用 SQL Server 作為 AWS DMS 目標時的端點設定
您可以使用端點設定來設定您的 SQL Server 目標,類似於使用額外的連線屬性。您可以在使用 AWS DMS 主控台建立目標端點時指定設定,或使用 AWS CLI 中的 create-endpoint
命令,以 --microsoft-sql-server-settings '{"
JSON 語法指定設定。EndpointSetting"
:
"value"
, ...
}'
下列資料表顯示您可搭配 SQL Server 作為目標使用的端點設定。
名稱 | 描述 |
---|---|
|
指定 AWS DMS 內部資料表的檔案群組。當複寫任務開始時,所有內部 AWS DMS 控制資料表 (awsdms_ apply_exception、awsdms_apply、awsdms_changes) 都會建立在指定的檔案群組中。 預設值:n/a 有效值:字串 範例: 以下是建立檔案群組的命令範例。
|
|
使用這項額外連線屬性 (ECA) 來設定 SQL Server 執行個體的用戶端陳述式逾時 (以秒為單位)。預設值為 60 秒。 範例: |
|
使用這項屬性傳輸資料以使用 BCP 進行完全載入操作,當目標資料表包含來源資料表所沒有的身分資料行時,您必須停用使用 BCP 載入資料表選項。 預設值:true 有效值:true/false 範例: |
Microsoft SQL Server 的目標資料類型
下表顯示在使用 AWS DMS 和來自 AWS DMS 資料類型的預設映射時受支援的 Microsoft SQL Server 目標資料類型。如需 AWS DMS 資料類型的詳細資訊,請參閱AWS Database Migration Service 的資料類型。
AWS DMS 資料類型 |
SQL Server 資料類型 |
---|---|
BOOLEAN |
TINYINT |
BYTES |
VARBINARY (長度) |
DATE |
SQL Server 2008 和更新版本請使用 DATE。 舊版且若擴展等於或小於 3 請使用 DATETIME。所有其他案例請使用 VARCHAR (37)。 |
TIME |
SQL Server 2008 和更新版本請使用 DATETIME2 (%d)。 舊版且若擴展等於或小於 3 請使用 DATETIME。所有其他案例請使用 VARCHAR (37)。 |
DATETIME |
SQL Server 2008 和更新版本請使用 DATETIME2 (scale)。 舊版且若擴展等於或小於 3 請使用 DATETIME。所有其他案例請使用 VARCHAR (37)。 |
INT1 |
SMALLINT |
INT2 |
SMALLINT |
INT4 |
INT |
INT8 |
BIGINT |
NUMERIC |
NUMERIC (p,s) |
REAL4 |
REAL |
REAL8 |
FLOAT |
STRING |
如果資料行是日期或時間資料行,請執行下列動作:
如果資料行不是日期或時間資料行,請使用 VARCHAR (長度)。 |
UINT1 |
TINYINT |
UINT2 |
SMALLINT |
UINT4 |
INT |
UINT8 |
BIGINT |
WSTRING |
NVARCHAR (長度) |
BLOB |
VARBINARY(max) IMAGE 若要在 AWS DMS 使用此資料類型,您必須針對特定任務使用 BLOB。AWS DMS 只有在包含主索引鍵的資料表中才支援 BLOB 資料類型。 |
CLOB |
VARCHAR(max) 若要在 AWS DMS 使用此資料類型,您必須針對特定任務使用 CLOB。在變更資料擷取 (CDC) 期間,AWS DMS 只在包含主索引鍵的資料表中支援 CLOB 資料類型。 |
NCLOB |
NVARCHAR(max) 若要在 AWS DMS 使用此資料類型,您必須針對特定任務使用 NCLOB。在 CDC 期間,AWS DMS 只在包含主索引鍵的資料表中支援 NCLOB 資料類型。 |