使用 Microsoft SQL 伺服器資料庫作為來源 AWS DMS - AWS 資料庫遷移服務

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

使用 Microsoft SQL 伺服器資料庫作為來源 AWS DMS

使用從一個或多個 Microsoft SQL 服務器數據庫遷移數據 AWS DMS。將SQL伺服器資料庫做為來源時,您可以將資料移轉至另一個SQL伺服器資料庫,或移轉至其他 AWS DMS 支援的資料庫之一。

如需有關 AWS DMS 支援做為來源之SQL伺服器版本的資訊,請參閱的來源 AWS DMS

來源SQL伺服器資料庫可以安裝在網路中的任何電腦上。您需要具有您選擇之工作類型之來源資料庫存取權限的SQL伺服器帳戶,才能搭配使用 AWS DMS。如需詳細資訊,請參閱SQL伺服器工作的權限

AWS DMS 支援從SQL伺服器的具名執行個體移轉資料。建立來源端點時,您可以在伺服器名稱中使用以下符號。

IPAddress\InstanceName

例如,以下是正確的來源端點伺服器名稱。在這裡,名稱的第一部分是伺服器的 IP 位址,第二部分是SQL伺服器執行個體名稱 (在此範例中為SQLTest)。

10.0.0.25\SQLTest

此外,請取得您的具名SQL伺服器執行個體監聽的連接埠號碼,並使用它來設定 AWS DMS 來源端點。

注意

端口 1433 是 Microsoft SQL 服務器的默認設置。但是,每次SQL伺服器啟動時都會變更的動態連接埠,以及用來透過防火牆連接至SQL伺服器的特定靜態連接埠號碼也會經常使用。因此,當您建立 AWS DMS 來源端點時,您想要知道SQL伺服器具名執行個體的實際連接埠號碼。

您可以使用SSL來加密SQL伺服器端點和複寫執行個體之間的連線。如需搭配SQL伺服器端點使SSL用的詳細資訊,請參閱使用 SSL 搭配使用 AWS Database Migration Service

您可以使CDC用SQL伺服器資料庫的持續移轉。如需有關為其配置來源SQL伺服器資料庫的資訊CDC,請參閱擷取資料變更,以便從SQL伺服器進行複寫

如需使用SQL伺服器來源資料庫的其他詳細資訊 AWS DMS,請參閱下列內容。

使用伺SQL服器做為來源的限制 AWS DMS

使用SQL伺服器資料庫做為來源時,會套用下列限制 AWS DMS:

  • 資料行的身分屬性不會遷移到目標資料庫資料行。

  • SQL伺服器端點不支援使用具有疏鬆資料行的資料表。

  • 不支援 Windows 驗證。

  • SQL伺服器中計算欄位的變更不會複寫。

  • 不支援時態資料表。

  • SQL不支援伺服器磁碟分割切換。

  • 使用WRITETEXT和UPDATETEXT公用程式時, AWS DMS 不會擷取來源資料庫上套用的事件。

  • 不支持以下數據操作語言(DML)模式。

    SELECT * INTO new_table FROM existing_table
  • 使用 SQL Server 作為來源時,不支援資料行層級加密。

  • AWS DMS 不支援伺服器 2008 或伺服SQL器 2008 R2 作為來源的SQL伺服器層級稽核。這是因為SQL伺服器 2008 年和 2008 R2 的已知問題。例如,執行下列命令會導 AWS DMS 致失敗。

    USE [master] GO ALTER SERVER AUDIT [my_audit_test-20140710] WITH (STATE=on) GO
  • 使用SQL伺服器做為來源時,在完整 lob 模式下不支援幾何資料行。請改用有限 lob 模式或將 InlineLobMaxSize 任務設定設為使用內嵌 lob 模式。

  • 在複寫工作中使用 Microsoft SQL Server 來源資料庫時,如果您移除工作,則不會移除SQL伺服器複寫發行者定義。Microsoft SQL 服務器系統管理員必須從 Microsoft SQL 服務器中刪除這些定義。

  • 僅支援完整載入工作,從結構描述繫結和 non-schema-bound 檢視移轉資料。

  • 不支援使用 sp_rename 重新命名資料表 (例如 sp_rename 'Sales.SalesRegion', 'SalesReg;))

  • 不支援使用 sp_rename 重新命名欄 (例如 sp_rename 'Sales.Sales.Region', 'RegID', 'COLUMN';)

  • AWS DMS 不支持設置和取消設置列默認值的更改處理(使用帶有ALTER TABLE語句的ALTER COLUMN SET DEFAULT子句)。

  • AWS DMS 不支持更改處理來設置列可空性(使用帶有語句的ALTER COLUMN [SET|DROP] NOT NULLALTER TABLE句)。

  • 使用SQL伺服器 2012 和SQL伺服器 2014 時,使用可用性群組的DMS複寫時,通訊群組資料庫無法放置在可用性群組中。SQL2016 支援將散發資料庫放入可用性群組,但用於合併、雙向或 peer-to-peer 複寫拓撲的散發資料庫除外。

  • 對於分區資料表, AWS DMS 不支援每個分割區的不同資料壓縮設定。

  • 將值插入至SQL伺服器空間資料類型 (GEOGRAPHY和GEOMETRY) 時,您可以忽略空間參考系統識別碼 (SRID) 性質,也可以指定其他編號。使用空間資料類型複寫表格時, AWS DMS 會以預設值取代 SRID (0 代表GEOMETRY,4326 代表)。SRID GEOGRAPHY

  • 如果您的數據庫未配置為 MS-REPLICATION 或 MS-CDC,您仍然可以捕獲沒有主鍵的表,但只捕獲INSERT/DELETEDML事件。UPDATE和TRUNCATETABLE事件被忽略。

  • 不支援 Columnstore 索引。

  • 不支援記憶體最佳化表格 (使用記憶體內OLTP)。

  • 使用包含多個資料行的主索引鍵複寫資料表時,不支援在完全載入期間更新主索引鍵資料行。

  • 不支援延遲耐久性。

  • readBackupOnly=Y端點設定 (額外連線屬性) 不適RDS用於SQL伺服器來源執行個體,因為RDS執行備份的方式。

  • EXCLUSIVE_AUTOMATIC_TRUNCATION無法在 Amazon RDS SQL Server 來源執行個體上運作,因為RDS使用者無法存取執行SQL伺服器預存程序sp_repldone

  • AWS DMS 不捕獲截斷命令。

  • AWS DMS 不支援在開啟加速資料庫復原 (ADR) 的情況下從資料庫進行複寫。

  • AWS DMS 不支援在單一交易中擷取資料定義語言 (DDLDML) 和資料操作語言 () 陳述式。

  • AWS DMS 不支援複寫資料層應用程式套件 (DACPAC)。

  • UPDATE當您將變更套用至目標資料庫時,包含主索引鍵或唯一索引以及更新多個資料列的陳述式可能會造成衝突。例如,當目標資料庫將更新套用為INSERT和DELETE陳述式而非單UPDATE一陳述式時,就可能會發生這種情況。使用批次最佳化套用模式時,資料表可能會遭忽略。使用交易式套用模式時,UPDATE作業可能會導致違反條件約束。若要避免此問題,請重新載入相關資料表。或者,在「套用例外」控制資料表 (dmslogs.awsdms_apply_exceptions) 中找出有問題的記錄,然後在目標資料庫中手動編輯這些記錄。如需詳細資訊,請參閱變更處理調校設定

  • AWS DMS 不支援資料表和結構描述的複寫,其中名稱包含下列集合中的特殊字元。

    \\ -- \n \" \b \r ' \t ;

  • 不支援資料遮罩。 AWS DMS 移轉已遮罩的資料,而不進行遮罩。

  • AWS DMS 複製最多 32,767 個資料表與主索引鍵,每個資料表最多可複製 1,000 個資料欄。這是因為 AWS DMS 會為每個複寫的資料表建立SQL伺服器複寫發行項,而SQL伺服器複寫發行項有這些限制。

  • 使用變更資料擷取 (CDC) 時,您必須將組成唯一索引的所有資料行定義為NOT NULL。如果不滿足此要求,則會導致SQL服務器系統錯誤 22838。

  • 如果SQL伺服器從使用中的交易記錄檔封存到備份記錄檔,或從使用中的交易記錄中截斷這些事件,您可能會遺失事件。

以下限制在存取備份交易日誌時適用:

  • 不支援加密備份。

  • 不支援儲存在URL或上的備份。

  • AWS DMS 不支援從替代共用資料夾的檔案層級直接處理交易記錄檔備份。

  • 對於 Microsoft SQL 伺服器專用 Amazon 以外RDS的雲端SQL伺服器來源,僅 AWS DMS 支援使用中交易記錄的持續複寫 (CDC)。您無法使用備份記錄CDC。如果SQL伺服器將它們從使用中的交易記錄檔封存到備份記錄檔,或是在DMS可以讀取之前將它們從使用中的交易記錄檔中截斷,您可能會遺失事件。

  • 對於適用RDS於 Microsoft SQL Server 來源的 Amazon, AWS DMS 3.5.2 及以下版本僅支援使用中交易記錄的持續複寫 (CDC),因為DMS無法使用CDC存取備份日誌。如果RDSSQL伺服器將它們從使用中的交易記錄檔封存到備份記錄檔,或是在DMS可以讀取之前從使用中交易記錄檔截斷它們,您可能會遺失事件。此限制不適用於 3.5.3 及更高 AWS DMS 版本。

SQL伺服器工作的權限

僅限完全載入任務的許可

若要執行僅限完全載入任務,需要下列許可。請注意, AWS DMS 不會建立dms_user登入。如需有關建立SQL伺服器登入的資訊,請參閱使用 Microsoft SQL Server 建立資料庫使用者

USE db_name; CREATE USER dms_user FOR LOGIN dms_user; ALTER ROLE [db_datareader] ADD MEMBER dms_user; GRANT VIEW DATABASE STATE to dms_user; GRANT VIEW DEFINITION to dms_user; USE master; GRANT VIEW SERVER STATE TO dms_user;

具有進行中複寫之工作的權限

自我管理的SQL伺服器執行個體可設定為使用或不使DMS用sysadmin角色的持續複寫。對於您無法授與sysadmin角色的SQL伺服器執行個體,請確定DMS使用者具有如下所述的權限。

從自我管理的SQL伺服器資料庫設定進行中複寫的權限
  1. 使用SQL伺服器管理 Studio (SSMS) 建立具有密碼驗證的新SQL伺服器帳戶,或如先前所述僅限完全載入任務的許可,例如,self_managed_user

  2. 執行下列GRANT命令:

    GRANT VIEW SERVER STATE TO self_managed_user; USE MSDB; GRANT SELECT ON MSDB.DBO.BACKUPSET TO self_managed_user; GRANT SELECT ON MSDB.DBO.BACKUPMEDIAFAMILY TO self_managed_user; GRANT SELECT ON MSDB.DBO.BACKUPFILE TO self_managed_user; USE db_name; CREATE USER self_managed_user FOR LOGIN self_managed_user; ALTER ROLE [db_owner] ADD MEMBER self_managed_user; GRANT VIEW DEFINITION to self_managed_user;
  3. 除了上述權限之外,使用者還需要下列其中一項:

設定從雲端SQL伺服器資料庫進行複寫的權限

雲端託管SQL伺服器執行個體是在 Amazon 上執行的執行個體,RDS適用於 Microsoft SQL 伺服器、Azure SQL 受控執行個體或任何其他受管理雲端SQL伺服器執行DMS個體。

使用SQL伺服器管理 Studio (SSMS) 建立具有密碼驗證的新SQL伺服器帳戶,或如先前所述僅限完全載入任務的許可,例如,rds_user

執行下列授予命令。

GRANT VIEW SERVER STATE TO rds_user; USE MSDB; GRANT SELECT ON MSDB.DBO.BACKUPSET TO rds_user; GRANT SELECT ON MSDB.DBO.BACKUPMEDIAFAMILY TO rds_user; GRANT SELECT ON MSDB.DBO.BACKUPFILE TO rds_user; USE db_name; CREATE USER rds_user FOR LOGIN rds_user; ALTER ROLE [db_owner] ADD MEMBER rds_user; GRANT VIEW DEFINITION to rds_user;

對於適RDS用於 Microsoft SQL 伺服器來源的 Amazon,3.5.3 及以上DMS版本支援從交易日誌備份讀取。除了上述內容之外,為了確保能夠存取記錄備份,請授與master使用者權限或RDSSQL伺服器來源的下列權限:DMS

//DMS 3.5.3 version onwards GRANT EXEC ON msdb.dbo.rds_dms_tlog_download TO rds_user; GRANT EXEC ON msdb.dbo.rds_dms_tlog_read TO rds_user; GRANT EXEC ON msdb.dbo.rds_dms_tlog_list_current_lsn TO rds_user; GRANT EXEC ON msdb.dbo.rds_task_status TO rds_user;

從SQL伺服器來源使用進行中複寫 (CDC) 的先決條件

您可以將持續複寫 (變更資料擷取或CDC) 用於內部部署或 Amazon 上的自我管理SQL伺服器資料庫EC2,或是 Amazon RDS 或 Microsoft Azure SQL 受控執行個體之類的雲端資料庫。

下列需求特別適用於以SQL伺服器資料庫作為來源使用進行中複寫時 AWS DMS:

  • SQL伺服器必須設定為完整備份,而且您必須先執行備份,才能開始複寫資料。

  • 復原模型必須設定為 Bulk logged (大量記錄)Full (完整)

  • SQL不支援將伺服器備份到多個磁碟。如果將備份定義為透過不同磁碟將資料庫備份寫入多個檔案,則 AWS DMS 無法讀取資料,且 AWS DMS 工作會失敗。

  • 對於自我管理的SQL伺服器來源,當您移除工作時,不會移除DMSCDC工作中使用之來源的SQL伺服器複寫發行者定義。SQL伺服器系統管理員必須從伺SQL服器刪除這些自我管理來源的定義。

  • 期間CDC, AWS DMS 需要查詢SQL伺服器事務記錄檔備份以讀取變更。 AWS DMS 不支援使用原生格式的協力廠商備份軟體所建立的SQL伺服器交易記錄備份。若要支援使用原生格式並使用第三方備份軟體建立的交易日誌備份,請將 use3rdPartyBackupDevice=Y 連線屬性新增至來源端點。

  • 對於自我管理的SQL伺服器來源,請注意,在發佈新建立的資料表之前,SQLServer 不會擷取變更。將表格新增至SQL伺服器來源時,會 AWS DMS 管理建立發行集。不過,此程序可能需要幾分鐘。此延遲期間對新建立資料表的操作,不會擷取或複寫到目標。

  • AWS DMS 變更資料擷取需要在SQL伺服器中開啟完整交易記錄。若要在SQL伺服器中開啟完整的交易記錄,請啟用 MS-REPLICATION 或 CHANGE DATA CAPTURE (CDC)。

  • SQL在 MS CDC 捕獲作業處理這些更改之前,服務器 tlog 條目不會被標記為重複使用。

  • CDC記憶體最佳化表格不支援作業。此限制適用於SQL伺服器 2014 (首次引入此功能時) 及更高版本。

  • AWS DMS 變更資料擷取需要在 Amazon EC2 或內部部署SQL伺服器上預設使用分發資料庫作為來源。因此,請確定您已啟動分發者,同時為具有主索引鍵的資料表設定 MS 複寫。

SQL伺服器支援的壓縮方法

請注意下列有關中SQL伺服器壓縮方法支援的相關資訊 AWS DMS:

  • AWS DMS 支援 2008 及更新版本SQL伺服器中的列/頁面壓縮。

  • AWS DMS 不支持 Vardecimal 存儲格式。

  • AWS DMS 不支援稀疏資料行和資料行結構壓縮。

使用自我管理的SQL伺服器 AlwaysOn可用性群組

SQL伺服器永遠開啟可用性群組提供高可用性和災難復原,作為資料庫鏡像的企業級替代方案。

在中 AWS DMS,您可以從單一主要或次要可用性群組複本移轉變更。

使用主要可用群組複本

若要使用主要可用性群組作為中的來源 AWS DMS,請執行下列動作:
  1. 開啟可用性複本中所有SQL伺服器執行個體的發佈選項。如需詳細資訊,請參閱在自我管SQL理的伺服器上設定進行中的複寫

  2. 在 AWS DMS 主控台中,開啟SQL伺服器來源資料庫設定。針對「伺服器名稱」,指定為您的可用性群組接聽程式設定的網域名稱服務 (DNS) 名稱或 IP 位址。

當您第一次啟動 AWS DMS 任務時,可能需要比平常更長的時間才能開始。較慢的原因是因為可用群組伺服器正在複寫資料表文章的建立。

使用次要可用群組複本

若要使用次要可用性群組作為中的來源 AWS DMS,請執行下列動作:
  1. 使用與 AWS DMS 來源端點使用者所使用的相同認證來連線至個別複本。

  2. 確定您的 AWS DMS 複寫執行個體可以解析所有現有複本的DNS名稱,並連線到這些複本。您可以使用下列SQL查詢來取得所有複本的DNS名稱。

    select ar.replica_server_name, ar.endpoint_url from sys.availability_replicas ar JOIN sys.availability_databases_cluster adc ON adc.group_id = ar.group_id AND adc.database_name = '<source_database_name>';
  3. 建立來源端點時,請為端點的伺服器DNS名稱或端點密碼的伺服器位址指定可用性群組接聽程式的名稱。如需可用性群組接聽程式的詳細資訊,請參閱什麼是可用性群組接聽程式? 在SQL服務器文檔中。

    您可以使用公用DNS伺服器或內部部署DNS伺服器來解析可用性群組接聽程式、主要複本和次要複本。若要使用現場部署DNS伺服器,請設定 Amazon Route 53 解析器。如需詳細資訊,請參閱 使用自己的內部部署名稱伺服器

  4. 請將下列連線額外屬性新增至來源端點。

    額外連線屬性 Value 備註
    applicationIntent ReadOnly 如果沒有此ODBC設定,複寫工作會路由傳送至主要可用性群組複本。如需詳細資訊,請參閱SQL伺服器文件中的高可用性、嚴重損壞修復的SQL伺服器原生用戶端 Support。
    multiSubnetFailover yes 如需詳細資訊,請參閱SQL伺服器文件中的高可用性、嚴重損壞修復的SQL伺服器原生用戶端 Support。
    alwaysOnSharedSynchedBackupIsEnabled false 如需詳細資訊,請參閱使用SQL伺服器做為來源時的端點設定 AWS DMS
    activateSafeguard false 如需詳細資訊,請參閱下列 限制
    setUpMsCdcForTables false 如需詳細資訊,請參閱下列 限制
  5. 啟用可用群組中所有複本上之分佈選項。將所有節點新增至分發者清單。如需詳細資訊,請參閱設定分佈

  6. 在主要讀寫複本上執行下列查詢,以啟用資料庫的發布功能。您只針對資料庫執行一次此查詢。

    sp_replicationdboption @dbname = N'<source DB name>', @optname = N'publish', @value = N'true';

限制

下列是使用次要可用群組複本的限制:

  • AWS DMS 使用唯讀可用性群組複本作為來源時,不支援保護。如需詳細資訊,請參閱使用SQL伺服器做為來源時的端點設定 AWS DMS

  • AWS DMS 使用唯讀可用性群組複本作為來源時,不支援setUpMsCdcForTables額外的連線屬性。如需詳細資訊,請參閱使用SQL伺服器做為來源時的端點設定 AWS DMS

  • AWS DMS 可以使用自我管理的次要可用性群組複本作為從 3.4.7 版開始進行複寫 (變更資料擷取或CDC) 的來源資料庫。不支援雲端SQL伺服器異地同步備份僅供讀取複本。如果您使用舊版的 AWS DMS,請確定您使用的主要可用性群組複本做為的來源資料庫CDC。

容錯移轉至其他節點

如果您將端點的ApplicationIntent額外連線屬性設定為ReadOnly,則您的 AWS DMS 任務會連線至具有最高唯讀路由優先順序的唯讀節點。然後,當優先順序最高的唯讀節點無法使用時,其會容錯移轉至可用群組中的其他唯讀節點。如果未設定ApplicationIntent,您的 AWS DMS 工作只會連線至可用性群組中的主要 (讀取/寫入) 節點。

使用SQL伺服器做為來源時的端點設定 AWS DMS

您可以使用端點設定來設定SQL伺服器來源資料庫,類似於使用額外的連線屬性。您可以在使用 AWS DMS 主控台建立來源端點時指定設定,或使用中的指create-endpoint令搭配--microsoft-sql-server-settings '{"EndpointSetting": "value", ...}'JSON語法來指定設定。AWS CLI

下表顯示可與SQL伺服器作為來源搭配使用的端點設定。

名稱 描述

ActivateSafeguard

此屬性會開啟或關閉「保護」。如需「保護」的相關資訊,請參閱下列SafeguardPolicy

預設值:true

有效值:{falsetrue}

範例:'{"ActivateSafeguard": true}'

AlwaysOnSharedSynchedBackupIsEnabled

此屬性會調整從裝載為永遠開啟可用性群組叢集一部分的SQL伺服器來源資料庫移轉 AWS DMS 時的行為。

AWS DMS 已增強對設定為在「永遠開啟」叢集中執行的SQL伺服器來源資料庫的支援。在此情況下, AWS DMS 會嘗試追蹤交易備份是否正在 Always On 叢集中的節點進行,而不是從來源資料庫執行個體託管所在的節點進行。啟動移轉工作時, AWS DMS 會嘗試連線至叢集中的每個節點,但如果無法連線到任何一個節點,就會失敗。

如果您需 AWS DMS 要輪詢 [永遠開啟] 叢集中的所有節點以進行交易備份,請將此屬性設定為false

預設值:true

有效值:truefalse

範例:'{"AlwaysOnSharedSynchedBackupIsEnabled": false}'

"ApplicationIntent": "readonly"

此ODBC驅動程式屬性設定會導致SQL伺服器將您的複寫工作路由到最高優先順序的唯讀節點。如果沒有此設定,SQL伺服器會將您的複寫工作路由到主要的讀寫節點。

EnableNonSysadminWrapper

當您在沒有 sysadmin 使用者的獨立SQL伺服器上設定持續複寫時,請使用此端點設定。3.4.7 及更高 AWS DMS 版本支援此參數。如需在獨立SQL伺服器上設定進行中複寫的相關資訊,請參閱擷取資料變更,以便從SQL伺服器進行複寫

預設值:false

有效值:truefalse

範例:'{"EnableNonSysadminWrapper": true}'

ExecuteTimeout

使用這個額外的連線屬性 (ECA) 來設定SQL伺服器執行個體的用戶端陳述式逾時 (以秒為單位)。預設值為 60 秒。

範例:'{"ExecuteTimeout": 100}'

FatalOnSimpleModel

設定為時true,當SQL伺服器資料庫復原模式設定為時,此設定會產生嚴重錯誤simple

預設值:false

有效值:truefalse

範例:'{"FatalOnSimpleModel": true}'

ForceLobLookup

強制內聯LOB查找LOB。

預設值:false

有效值:truefalse

範例:'{"ForceLobLookup": false}'

"MultiSubnetFailover": "Yes"

此ODBC驅動程式屬性有助DMS於在可用性群組容錯移轉的情況下連線至新的主要驅動程式。此屬性是針對連線中斷或接聽程式 IP 地址不正確的情況所設計。在這些情況下,會 AWS DMS 嘗試連線至與可用性群組接聽程式相關聯的所有 IP 位址。

ReadBackupOnly

使用此屬性需要 sysadmin 權限。當此屬性設定為時Y,在進行中的複寫期間,只會從交易記錄檔備份讀 AWS DMS 取變更,而不會從使用中交易記錄檔讀取。將此參數設為 Y 可讓您控制在完全載入和進行中複寫任務期間控制作用中交易日誌檔的成長。不過,此參數可以將一些來源延遲新增至進行中複寫。

有效值:NY。預設值為 N

範例:'{"ReadBackupOnly": Y}'

附註:由於RDS執行備份的方式,此參數無法在 Amazon RDS SQL Server 來源執行個體上運作。

SafeguardPolicy

為了獲得最佳效能,請 AWS DMS 嘗試從作用中的交易記錄 (TLOG) 擷取所有未讀取的變更。但是,有時由於截斷,活動TLOG可能不包含所有未讀更改。發生這種情況時, AWS DMS 存取記錄備份以擷取遺失的變更。若要將存取記錄備份的需求降到最低,請使用下列其中一種方法來 AWS DMS 防止截斷:

  1. RELY_ON_SQL_SERVER_REPLICATION_AGENT(在資料庫中啟動交易):這是的預設值 AWS DMS。

    使用此設定時, AWS DMS 需要執行SQL伺服器記錄讀取器代理程式,才 AWS DMS 能將標記為要複寫的交易從作用中移動TLOG。請注意,如果記錄讀取器代理程式未執行,則作用中TLOG可能會變為已滿,導致來源資料庫切換至唯讀模式,直到您可以解決問題為止。如果您需要在資料庫中啟用 Microsoft 複寫以外的目的 AWS DMS,則必須選擇此設定。

    當您使用此設定時,建立名為的資料表, AWS DMS 將記錄備份讀取降到最少,awsdms_truncation_safeguard並透過模擬資料庫中的開啟交易來防止TLOG截斷。這樣可避免資料庫在五分鐘內 (依預設) 截斷事件並將其移至備份日誌。請確定資料表未包含在任何維護計劃中,否則可能會導致維護作業失敗。如果沒有使用 Start Transactions 資料庫選項設定的任務,您就可以放心地刪除資料表。

  2. EXCLUSIVE_AUTOMATIC_TRUNCATION(僅適sp_repldone用於單一工作):當您使用此設定時, AWS DMS 可完全控制將記錄項目標記為ready for truncation使用的複寫代理程式程序sp_repldone。使用此設定時, AWS DMS 不會像使用 RELY_ON_SQL_SERVER_REPLICATION_AGENT (預設) 設定一樣使用虛擬交易。僅當 MS 複寫不用於來源資料庫以外 AWS DMS 的任何其他用途時,才能使用此設定。此外,使用此設定時,只有一 AWS DMS 項工作可以存取資料庫。如果您需要針對相同的資料庫 AWS DMS 執行 parallel 工作,請使用RELY_ON_SQL_SERVER_REPLICATION_AGENT.

    • 此設定需要在資料庫中停止日誌讀取器代理程式。如果工作開始時正在執行記錄讀取器代理程式, AWS DMS 工作將會強制其停止。或者,您可以在開始任務之前手動停止日誌讀取器代理程式。

    • 搭配 MS-使用此方法時CDC,應停止並停用 MS CDC 擷取MS-CDC 清理作業。

    • Microsoft SQL 伺服器移轉工作在遠端散發者電腦上執行時,您無法使用此設定,因為 AWS DMS 無法存取遠端電腦。

    • EXCLUSIVE_AUTOMATIC_TRUNCATION不適用RDS於SQL伺服器來源執行個體的 Amazon,因為 Amazon RDS 使用者無法執行sp_repldone預存程序。

    • 如果您將 SafeguardPolicy 設為 EXCLUSIVE_AUTOMATIC_TRUNCATION,而不使用 sysadmin 角色,則必須將 dbo.syscategoriesdbo.sysjobs 物件的許可授予 dmsuser 使用者。

預設值:RELY_ON_SQL_SERVER_REPLICATION_AGENT

有效值:{EXCLUSIVE_AUTOMATIC_TRUNCATIONRELY_ON_SQL_SERVER_REPLICATION_AGENT}

範例:'{"SafeguardPolicy": "EXCLUSIVE_AUTOMATIC_TRUNCATION"}'

SetUpMsCdcForTables

此屬性會CDC針對來源資料庫和工作對應中未啟用 MS 複寫的資料表開啟 MS-。將此值設定為 true,會在來源資料庫上執行 sp_cdc_enable_db 預存程序,然後在來源資料庫中未啟用 MS-Replication 之任務中的每個資料表上執行 sp_cdc_enable_table 預存程序。如需開啟分佈的詳細資訊,請參閱在自我管SQL理的伺服器上設定進行中的複寫

有效值:{truefalse}

範例:'{"SetUpMsCdcForTables": true}'

TlogAccessMode

指示用於擷取CDC資料的模式。

預設值:PreferTlog

有效值:BackupOnlyPreferBackupPreferTlogTlogOnly

範例:'{"TlogAccessMode": "PreferTlog"}'

Use3rdPartyBackupDevice

將此屬性設定為 Y 時,如果以原生格式建立第三方交易日誌備份, AWS DMS 會對其進行處理。

伺服器的來源資SQL料類型

使用 SQL Server 做為 AWS DMS 支援大多SQL數伺服器資料類型的來源的資料移轉。下表顯示使用時所支援的SQL伺服器來源資料類型,以 AWS DMS 及來自 AWS DMS 資料類型的預設對應。

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

如需有關資 AWS DMS 料類型的其他資訊,請參閱AWS Database Migration Service 的資料類型

SQL伺服器資料類型

AWS DMS 資料類型

BIGINT

INT8

BIT

BOOLEAN

DECIMAL

NUMERIC

INT

INT4

MONEY

NUMERIC

NUMERIC(p, s)

NUMERIC

SMALLINT

INT2

SMALLMONEY

NUMERIC

TINYINT

UINT1

REAL

REAL4

FLOAT

REAL8

DATETIME

DATETIME

DATETIME2(SQL伺服器 2008 及更新版本)

DATETIME

SMALLDATETIME

DATETIME

DATE

DATE

TIME

TIME

DATETIMEOFFSET

WSTRING

CHAR

STRING

VARCHAR

STRING

VARCHAR(最大值)

CLOB

TEXT

若要搭配使用此資料類型 AWS DMS,您必須針對特定工作啟用CLOB資料類型的使用。

對於SQL伺服器LOB資料表,即使是未變更 SQL Server 中資料行值的UPDATE陳述式,也會更 AWS DMS 新目標中的資LOB料行。

期間CDC,僅在包含主索引鍵的CLOB資料表中 AWS DMS 支援資料類型。

NCHAR

WSTRING

NVARCHAR(長度)

WSTRING

NVARCHAR(最大值)

NCLOB

NTEXT

若要搭配使用此資料類型 AWS DMS,您必須啟用特 SupportLobs 定工作的使用。如需啟用 Lob 支援的詳細資訊,請參閱設定LOB工 AWS DMS 作中來源資料庫的支援

對於SQL伺服器LOB資料表,即使是未變更 SQL Server 中資料行值的UPDATE陳述式,也會更 AWS DMS 新目標中的資LOB料行。

期間CDC,僅在包含主索引鍵的CLOB資料表中 AWS DMS 支援資料類型。

BINARY

BYTES

VARBINARY

BYTES

VARBINARY(最大值)

BLOB

IMAGE

對於SQL伺服器LOB資料表,即使是未變更 SQL Server 中資料行值的UPDATE陳述式,也會更 AWS DMS 新目標中的資LOB料行。

若要搭配使用此資料類型 AWS DMS,您必須針對特定工作啟用BLOB資料類型的使用。

AWS DMS 僅在包含主索引鍵的BLOB資料表中支援資料類型。

TIMESTAMP

BYTES

UNIQUEIDENTIFIER

STRING

HIERARCHYID

複製HIERARCHYID到SQL伺服器目標端點時使用。

複製到所有其他目標端點時,請使用 WSTRING (250)。

XML

NCLOB

對於SQL伺服器LOB資料表,即使是未變更 SQL Server 中資料行值的UPDATE陳述式,也會更 AWS DMS 新目標中的資LOB料行。

若要搭配使用此資料類型 AWS DMS,您必須針對特定工作啟用NCLOB資料類型的使用。

期間CDC,僅在包含主索引鍵的NCLOB資料表中 AWS DMS 支援資料類型。

GEOMETRY

複製GEOMETRY到支援此資料類型的目標端點時使用。

在複製CLOB到不支援此資料類型的目標端點時使用。

GEOGRAPHY

複製GEOGRAPHY到支援此資料類型的目標端點時使用。

在複製CLOB到不支援此資料類型的目標端點時使用。

AWS DMS 不支援包含具有下列資料類型之欄位的表格。

  • CURSOR

  • SQL_VARIANT

  • TABLE

注意

使用者定義的資料類型是否受支援,依其基本類型而定。例如,根據的使用者定義資料類型DATETIME會當做DATETIME資料類型來處理。