支持的源和目標數據庫
支持的源和目標數據庫如下表:
| 源數據庫 | 目標數據庫 |
|---|---|
| 自建SQL Server、RDS for SQL Server 2016 標準版/2016 企業版 /2019 標準版/2019 企業版 /2022 標準版/2022 企業版 |
RDS for SQL Server 2016 標準版/2016 企業版 /2019 標準版/2019 企業版 /2022 標準版/2022 企業版 |
說明
源數據庫版本不得高于目標數據庫版本。
支持的同步對象及SQL
同步對象
-
結構同步支持的對象:
- 數據庫、模式、分區表、索引、約束(外鍵、唯一、排他)、視圖、存儲過程、函數、觸發器。
-
支持的字段類型:
- TINYINT、SMALLINT、INT、BIGINT、DECIMAL、NUMERIC、FLOAT、REAL、SMALLMONEY、MONEY、BIT、DATE、SMALLDATETIME、DATETIME、DATETIME2、DATETIMEOFFSET、TIME、TIMESTAMP、XML、CHAR、VARCHAR、NCHAR、NVARCHAR、BINARY、VARBINARY、IMAGE、HIERARCHYID、NTEXT、TEXT、UNIQUEIDENTIFIER。
-
不支持的字段類型:
- SQL_VARIANT、GEOMETRY、GEOGRAPHY。
-
不支持用戶自定義列。
注意事項
- 每次至多同步一個庫(DATABASE),同步多個庫需要創建多個DTS任務。
- 模式:不支持系統模式的遷移。
- 表:不支持臨時表的同步,表的索引、約束會一起同步,表的觸發器,歷史表關系等在全量完成之后同步。
- 映射規則:暫不支持名稱映射。
- 同步對象中如果存在包含text、image類型大字段的表,建議創建大規格及以上規格的DTS實例進行同步,否則可能會導致 OOM。
- 如需進行增量同步,請先禁用目標數據庫中已啟用的觸發器和外鍵,否則可能會導致同步任務失敗或數據不一致。
增量數據同步支持的SQL操作
- DML
INSERT、UPDATE、DELETE。 - DDL
僅支持 CREATE TABLE、
ALTER TABLE(僅包含ADD COLUMN、DROP COLUMN)、
DROP TABLE、
CREATE INDEX、DROP INDEX、
CREATE SCHEMA、DROP SCHEMA
注意不支持分區、表定義內部包含函數
數據庫賬號及權限
數據庫 所需權限 參考賦權語句 源庫
全量同步:
需要具備sysadmin、db_owner、db_datareader、db_datawriter的其中一個角色權限。
增量同步:
需要具備sysadmin角色的權限。
授予用戶sysadmin角色權限:
ALTER SERVER ROLE sysadmin ADD MEMBER 用戶名;
授予用戶db_datareader角色權限:
ALTER SERVER ROLE db_datareader ADD MEMBER 用戶名;
授予用戶db_datawriter角色權限:
ALTER SERVER ROLE db_datawriter ADD MEMBER 用戶名;
目標庫
目標庫為天翼云RDS for SQL Server
客戶配置遷移實例的目標庫連接時只需要填入普通用戶即可,DTS會自動創建數據庫并將該數據庫的db owner權限授予配置的用戶。
目標庫為自建庫或其他云數據庫
需要具備sysadmin角色權限。
目標庫為天翼云RDS for SQL Server
無需額外進行賦權,DTS會自動創建數據庫并將該數據庫的db_owner權限授予配置的連接目標庫的普通用戶。
目標庫為自建庫或其他云數據庫時,授予用戶sysadmin角色權限:
ALTER SERVER ROLE sysadmin ADD MEMBER 用戶名;
注意當目標庫為天翼云RDS SQL Server時,客戶配置遷移實例的目標數據庫連接時只需要填入普通用戶即可,DTS會自動創建數據庫并將該數據庫的db owner權限授予配置的用戶。
操作須知
DTS同步過程一般包含四個階段:預檢查階段、結構同步階段、全量階段、增量階段。為了確保數據同步各個階段的平順,在創建同步任務前,請務必閱讀以下使用須知。
- 如同步對象為表級別,則單次同步任務僅支持同步最多3000張表。當超出數量限制,任務會在提交后會請求報錯。如果遇到這種情形,建議您拆分待同步的表,分批配置成多個任務,或者配置為整庫同步。
- 目標庫關聯RDS數據庫的字符集必須與源數據庫一致。
- 目標庫若已存在行數據,DTS在增量同步過程中源庫相同主鍵的數據將覆蓋目標庫已存在的數據,因此在同步前需要用戶自行判斷數據是否需要清除,建議用戶在同步前自行清空目標庫。
- 目標實例及關聯RDS實例的運行狀態必須正常,若關聯RDS實例是主備實例,復制狀態也必須正常。
- 目標庫關聯RDS實例必須有足夠的磁盤空間,建議至少為待同步數據量的2.5倍。(全量數據同步會并發執行 INSERT 操作,導致目標數據庫的表產生碎片,因此全量同步完成后目標數據庫的表存儲空間會比源實例的表存儲空間大)。
- SQL Server的TIMESTAMP類型字段不能顯式賦值,只能自動生成,所以目標庫庫的TIMESTAMP值自動生成,跟源庫的字段值存在差異。
- 增量同步時,cdc機制會在源庫的cdc這個schema下產生一些數據庫對象,請勿操作,否則影響增量同步。
- 在任務啟動、任務全量同步階段,不建議對源數據庫做刪除類型的DDL操作,這樣可能會引起任務同步失敗。
- 同步過程中,不允許修改、刪除連接源和目標數據庫的用戶的用戶名、密碼、權限,或修改源和目標數據庫的端口號。
- 同步過程中,不允許對源庫需要同步的表結構進行修改。
- 選擇表級對象同步時,增量同步過程中不建議對表進行重命名操作。
- 增量同步場景下,不支持源數據庫進行恢復操作。
- 增量同步場景下,不支持無主鍵表的數據增量同步,因為無主鍵表的增量同步性能遠低于有主鍵的表,而且不能保證數據的一致性。
操作步驟
1、購買DTS數據同步實例。
在管理控制臺點擊“創建實例”進入訂購頁面,“實例類型”選擇“數據同步”,“目標庫實例”的“數據庫類型”選擇SQLSERVER,選擇實例或輸入IP地址、端口,完成其他信息的填寫并完成購買。
說明遷移前請您詳細閱讀快速入門-準備工作概覽中網絡準備部分內容,了解并做好網絡方面的準備工作。
2、進入實例配置頁面。
DTS實例購買成功后,進入【數據遷移】實例列表頁面,上一步驟購買成功的實例在實例列表中顯示狀態為“待配置”,進入實例配置頁面的操作分兩種情況:
- 當DTS實例的網絡接入類型為“公網EIP”時,請先點擊“綁定彈性IP”按鈕完成公網彈性IP的綁定,然后點擊該實例操作列的“實例配置”按鈕。
- 當DTS實例網絡接入類型為“VPC網絡”時,直接點擊該實例操作列的“實例配置”按鈕。
3、配置源庫及目標庫信息。
進入實例配置第一個步驟的【配置源庫及目標庫信息】頁面,填入源庫與目標庫的相關配置信息,包括數據庫類型、IP地址端口、數據庫賬號、數據庫密碼等信息。
完成上述信息的填寫后,點擊源數據庫和目標數據庫的“測試連接”按鈕進行數據庫連接測試,檢查數據庫能否正常連接。
4、配置同步對象及高級配置。
源庫和目標庫連通性測試成功后,點下一步按鈕,進入實例配置第二個步驟的【配置同步對象及高級配置】頁面,在“源庫對象”中選擇要同步的源庫對象,包含:庫、TABLE、VIEW、FUNCTION等,選中后點擊“>”按鈕,將待同步對象移動到“已選擇對象”中。
說明關于配置同步對象及高級配置頁面的詳細說明,請參考數據傳輸服務 - 用戶指南 - 數據遷移 - 實例配置和實例編輯 - 配置遷移實例文檔中配置遷移對象及高級配置詳細說明。
5、預檢查。
完成同步對象和高級配置后,點擊“下一步預檢查”,進入實例配置第三個步驟的【預檢查】頁面。預檢查會檢查如下列表信息,并給出檢查結果,用戶可以依據檢查結果進行下一步操作。
檢查項 檢查內容 目標庫用戶權限檢查 檢查目標庫用于DTS任務的用戶是否具有相應的權限。
源庫用戶權限檢查 檢查源庫用于DTS任務的用戶是否具有相應的權限。 SQLSERVER版本檢查 檢查源庫和目標庫的SQLSERVER版本是不是符合要求。 同名對象存在性檢查 檢查目標庫中是否存在和待遷移庫同名的庫,若存在,再檢查目標庫中是否存在和待遷移庫同名的架構,若存在,檢查該庫下面是否存在同名的表、視圖、函數和存儲過程等。 源庫遷移對象依賴檢查 檢查源庫中的視圖、函數、存儲過程、觸發器依賴對象是否被選中。 歷史表檢查 源庫中是否存在未勾選的歷史表。 源庫字段類型檢查 檢查源庫中是否包含SQL_VARIANT、GEOMETRY、GEOGRAPHY字段類型。 SQLSERVER源庫數據庫名稱校驗 校驗源數據庫同步對象的庫名、架構名、表名是否只包含如下字符:字母、數字、下劃線和中劃線。 SQLSERVER源數據庫特殊字符檢查 校驗源數據庫對象名是否存在不支持的特殊字符:非ASCII字符、“. ”、 “>”、 “<”、 “\\”、 “`”、 “|”、 “,”、 “? ”、 “! ”、 “\"”和 “'”"。 SQLSERVER源庫庫名長度校驗 校驗源數據庫庫名是否超過64位。 SQLSERVER源數據庫是否是否存在被禁用的聚集索引 校驗源數據庫是否存在被禁用的聚集索引。 SQLSERVER源數據庫是否存在加密的數據庫對象 校驗源數據庫是否存在加密的數據庫對象。 SQLSERVER源數據庫恢復模式檢查 校驗源數據庫是否存在備份恢復模式不是FULL的數據庫。 SQLSERVER代理運行狀態檢查 校驗源數據庫代理是否啟動。 數據庫服務器名稱和所在操作系統的名稱是否一致 檢查SQLSERVER的數據庫服務器名稱和所在操作系統的名稱是否一致。 待同步表主鍵檢查 檢查待同步表是否都存在主鍵。
6、確認配置和啟動。
預檢查通過后,點擊“下一步”進入【確認配置】頁面,用戶可確認配置的所有信息,確認無誤后,點擊右下角的【啟動任務】,開始同步任務。