使用 SAP ASE 資料庫做為 AWS DMS 的來源 - AWS 資料庫遷移服務

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

使用 SAP ASE 資料庫做為 AWS DMS 的來源

您可以使用 AWS DMS 從 SAP Adaptive Server Enterprise (ASE) 資料庫 (前稱為 Sybase) 遷移資料。在將 SAP ASE 資料庫作為來源的情況下,您可以將資料遷移到所有其他受支援的 AWS DMS 目標資料庫。

如需有關 AWS DMS 支援作為來源的 SAP ASE 版本的資訊,請參閱 的來源 AWS DMS

如需使用 SAP ASE 資料庫和 AWS DMS 的其他詳細資訊,請參閱以下各節。

使用 SAP ASE 資料庫做為 AWS DMS 來源的事前準備

若要 SAP ASE 資料庫成為 AWS DMS 的來源,請執行下列動作:

  • 使用 sp_setreptable 命令啟用資料表的 SAP ASE 複寫。如需詳細資訊,請參閱 Sybase 資訊中心封存

  • 停用 SAP ASE 資料庫上的 RepAgent。如需詳細資訊,請參閱停止和停用主要資料庫中的 RepAgent 執行緒

  • 若要在針對非拉丁字元 (例如中文) 設定之 Windows EC2 執行個體上,複寫到 SAP ASE 15.7 版,請在目標電腦上安裝 SAP ASE 15.7 SP121。

注意

對於進行中的變更資料擷取 (CDC) 複寫,DMS 會執行 dbcc logtransferdbcc log 以從交易日誌讀取資料。

使用 SAP ASE 做為 AWS DMS 來源的限制

使用 SAP ASE 資料庫做為 AWS DMS 來源時,有下列限制:

  • 您只能針對每個 SAP ASE 資料庫執行一項具有持續複寫或 CDC 的 AWS DMS 任務。您可以同時執行多個僅限完全載入的任務。

  • 您無法重新命名資料表。例如,下列命令會失敗。

    sp_rename 'Sales.SalesRegion', 'SalesReg;
  • 您無法重新命名資料行。例如,下列命令會失敗。

    sp_rename 'Sales.Sales.Region', 'RegID', 'COLUMN';
  • 位在二進位資料類型字串尾端的零值,在複寫到目標資料庫會被截斷。例如,來源資料表的 0x0000000000000000000000000100000100000000 會成為目標資料表的 0x00000000000000000000000001000001

  • 如果資料庫預設值設為不允許 NULL 值,則 AWS DMS 會建立資料行不允許 NULL 值的目標資料表。因此,如果完全載入或 CDC 複寫任務包含空值,AWS DMS 即會擲出錯誤。您可以使用下列命令允許來源資料庫使用 NULL 值,以避免這些錯誤。

    sp_dboption database_name, 'allow nulls by default', 'true' go use database_name CHECKPOINT go
  • 不支援 reorg rebuild 索引命令。

  • AWS DMS 不支援叢集或使用 MSA (多站台可用性)/暖待命作為來源。

  • 在對應規則中使用 AR_H_TIMESTAMP 轉換標頭表達式時,不會擷取新增資料欄的毫秒數。

  • 在 CDC 期間執行合併操作會導致無法復原的錯誤。若要使目標恢復同步,請執行完全載入。

  • 使用資料列鎖定配置的資料表不支援復原觸發程序事件。

  • AWS DMS 從來源 SAP 資料庫捨棄任務範圍內的資料表後,無法繼續複寫任務。如果 DMS 複寫任務已停止並執行任何 DML 操作 (INSERT、UPDATE、DELETE),則在捨棄資料表後,您必須重新開始複寫任務。

使用 SAP ASE 做為 AWS DMS 來源所需的許可

若要使用 SAP ASE 資料庫作為 AWS DMS 任務的來源,您需要授予許可。授予 AWS DMS 資料庫定義中指定的使用者帳戶,在 SAP ASE 資料庫中的下列許可:

  • sa_role

  • replication_role

  • sybase_ts_role

  • 依預設,當您需要具備執行 sp_setreptable 預存程序的許可時,AWS DMS 會啟用 SAP ASE 複寫選項。如果要直接從資料庫端點在資料表上執行 sp_setreptable,而不是透過 AWS DMS 本身執行,則可以使用 enableReplication 額外連線屬性。如需更多詳細資訊,請參閱 使用 SAP ASE 作為 AWS DMS 來源時的端點設定

移除截斷點

當任務開始時,AWS DMS 會在 syslogshold 系統檢視中建立 $replication_truncation_point 項目,指出正在進行複寫程序。雖然 AWS DMS 正在運作,但會根據已複製到目標的資料量,按一般間隔推進複寫截斷點。

建立 $replication_truncation_point 項目之後,持續執行 AWS DMS 任務,以防止資料庫日誌過大。如果您想要永久停止 AWS DMS 任務,請發出下列命令移除複寫截斷點:

dbcc settrunc('ltm','ignore')

移除截斷點後,您即無法繼續 AWS DMS 任務。日誌會繼續自動截斷在檢查點 (如已設定自動截斷)。

使用 SAP ASE 作為 AWS DMS 來源時的端點設定

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

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

名稱 描述
Charset

將此屬性設定為對應於國際字元集的 SAP ASE 名稱。

預設值:iso_1

範例:--sybase-settings '{"Charset": "utf8"}'

有效值:

  • acsii_8

  • big5hk

  • cp437

  • cp850

  • cp852

  • cp852

  • cp855

  • cp857

  • cp858

  • cp860

  • cp864

  • cp866

  • cp869

  • cp874

  • cp932

  • cp936

  • cp950

  • cp1250

  • cp1251

  • cp1252

  • cp1253

  • cp1254

  • cp1255

  • cp1256

  • cp1257

  • cp1258

  • deckanji

  • euccns

  • eucgb

  • eucjis

  • eucksc

  • gb18030

  • greek8

  • iso_1

  • iso88592

  • iso88595

  • iso88596

  • iso88597

  • iso88598

  • iso88599

  • iso15

  • kz1048

  • koi8

  • roman8

  • iso88599

  • sjis

  • tis620

  • turkish8

  • utf8

如需有關 SAP ASE 資料庫中支援字元集的其他問題,請參閱 Adaptive Server Enterprise:支援的字元集

EnableReplication

如果您想要從資料庫端在資料表上啟用 sp_setreptable (而不是透過 AWS DMS),請設定此屬性。

預設值:true

有效值:truefalse

範例:--sybase-settings '{"EnableReplication": false}'

EncryptPassword

如果您已在來源資料庫啟用 "net password encryption reqd",請設定此屬性。

預設值:0

有效值:012

範例:--sybase-settings '{"EncryptPassword": 1}'

如需這些參數值的詳細資訊,請參閱 Adaptive Server Enterprise:使用 EncryptPassword 連線字串屬性

Provider

如果您想要針對 ASE 15.7 版及更新版本使用 Transport Layer Security (TLS) 1.2,請設定此屬性。請注意,AWS 需要 TLS 1.2 或更新版本,並建議使用 1.3 版。

預設值:Adaptive Server Enterprise

有效值:Adaptive Server Enterprise 16.03.06

範例:--sybase-settings '{"Provider": "Adaptive Server Enterprise 16.03.06"}'

SAP ASE 的來源資料類型

如需使用 AWS DMS 和從 AWS DMS 資料類型的預設映射時受支援的 SAP ASE 來源資料類型清單,請參閱下表。AWS DMS 不支援資料行為使用者定義類型 (UDT) 資料類型的 SAP ASE 來源資料表。使用此資料類型複寫的資料行會建立為 NULL。

如需如何檢視目標之映射資料類型的資訊,請參閱您目標端點的資料遷移的目標一節。

如需 AWS DMS 資料類型的詳細資訊,請參閱AWS Database Migration Service 的資料類型

SAP ASE 資料類型

AWS DMS 資料類型

BIGINT

INT8

UNSIGNED BIGINT

UINT8

INT

INT4

UNSIGNED INT

UINT4

SMALLINT

INT2

UNSIGNED SMALLINT

UINT2

TINYINT

UINT1

DECIMAL

NUMERIC

NUMERIC

NUMERIC

FLOAT

REAL8

DOUBLE

REAL8

REAL

REAL4

MONEY

NUMERIC

SMALLMONEY

NUMERIC

DATETIME

DATETIME

BIGDATETIME

DATETIME(6)

SMALLDATETIME

DATETIME

DATE

DATE

TIME

TIME

BIGTIME

TIME

CHAR

STRING

UNICHAR

WSTRING

NCHAR

WSTRING

VARCHAR

STRING

UNIVARCHAR

WSTRING

NVARCHAR

WSTRING

BINARY

BYTES

VARBINARY

BYTES

BIT

BOOLEAN

TEXT

CLOB

UNITEXT

NCLOB

IMAGE

BLOB