278
阿裏雲
Oracle到PPAS不停機數據遷移__數據遷移_用戶指南_數據傳輸-阿裏雲
使用數據傳輸DTS可以將本地的Oracle的數據遷移至RDS For PostgreSQL Plus Advanced Server。同時,DTS提供的增量數據遷移功能,可以實現Oracle在提供服務的過程中,進行數據遷移,當Oracle跟PPAS兩邊數據達到動態同步過程中,將業務切換到PPAS,使得依賴Oracle的應用停機時間最短。
本小節簡單介紹使用DTS進行Oracle->RDS For PostgreSQL Plus Advanced Server不停機數據遷移的任務配置流程。
為便於編寫,下文用 RDS For PPAS表示 RDS For PostgreSQL Plus Advanced Server。
遷移類型簡介
Oracle->RDS For PPAS的遷移,支持結構遷移、全量數據遷移及增量數據遷移。各個遷移階段的支持範圍如下:
結構遷移
DTS將遷移對象的結構定義遷移到目標實例。目前DTS支持的對象包括:表、視圖、同義詞、觸發器、存儲過程、存儲函數、包、自定義類型。
全量數據遷移
DTS將源數據庫遷移對象的存量數據遷移到目標實例。
如果未選擇增量數據遷移,那麼Oracle數據庫有數據寫入的話,新增增量數據不一定能夠被遷移到PPAS中。所以,如果要保證遷移數據一致性,那麼盡量選擇在業務低峰期進行停機遷移。
增量數據遷移
增量數據遷移會將遷移過程中,源Oracle實例的增量變更數據同步到目標PPAS實例,增量數據遷移可以實現Oracle實例在遷移過程中產生的增量數據被實時同步到目標庫,最終Oracle同目標RDS PPAS實例進入動態數據同步的過程。
遷移限製
- 遷移過程中,不支持DDL操作
- 不支持物化視圖的遷移
- 結構遷移時,reverse index遷移到RDS For PPAS中,存儲成普通索引
- 結構遷移時,位圖索引遷移到RDS For PPAS,存儲成普通索引
- 結構遷移時,分區索引遷移到RDS For PPAS,在每個分區上創建獨立的索引
- 增量數據遷移隻支持有主鍵,或有非空唯一索引的表
- 增量數據遷移不支持long類型
遷移權限要求
當使用DTS進行Oracle->RDS For PPAS遷移時,不同遷移類型,對源及目標數據庫的遷移帳號權限要求如下:
遷移類型 | 結構遷移 | 全量遷移 | 增量數據遷移 |
---|---|---|---|
本地Oracle實例 | schema的owner | schema的owner | SYSDBA |
目的RDS for PPAS實例 | schema的owner | schema的owner | schema的owner |
遷移前置條件
- Oracle版本為10g,11g,12c
- Oracle 開啟supplement log,且要求 supplemental_log_data_pk,supplemental_log_data_ui 開啟
- Oracle要求開啟archive log
數據類型映射關係
由於Oracle跟RDS For PPAS的數據類型不是一一對應的,所以數據傳輸服務在進行結構遷移時,會根據兩種數據庫類型的數據類型定義,進行類型映射,下表為數據傳輸服務定義的數據類型映射關係。
Oracle數據類型 | PPAS數據類型 | 數據傳輸服務是否支持 |
---|---|---|
varchar2(n [char/byte]) | varchar2[(n)] | 支持 |
nvarchar2[(n)] | nvarchar2[(n)] | 支持 |
char[(n [byte/char])] | char[(n)] | 支持 |
nchar[(n)]] | nchar[(n)] | 支持 |
number[(p[,s])] | number[(p[,s])] | 支持 |
float(p)] | double precision | 支持 |
long | long | 支持 |
date | date | 支持 |
binary_float | real | 支持 |
binary_double | double precision | 支持 |
timestamp[(fractional_seconds_precision)] | timestamp[(fractional_seconds_precision)] | 支持 |
timestamp[(fractional_seconds_precision)]with time zone | timestamp[(fractional_seconds_precision)]with time zone | 支持 |
timestamp[(fractional_seconds_precision)]with local time zone | timestamp[(fractional_seconds_precision)]with time zone | 支持 |
clob | clob | 支持 |
nclob | nclob | 支持 |
blob | blob | 支持 |
raw | raw(size) | 支持 |
long raw | long raw | 支持 |
bfile | — | 不支持 |
interval year(year_precision) to mongth | interval year to mongth | 不支持 |
interval day(day_precision) to second[(fractional_seconds_precision)] | interval day to second[(fractional_seconds_precision)] | 不支持 |
由於RDS For PPAS不支持數據類型timestamp[(fractional_seconds_precision)]with local time zone,所以數據傳輸服務在遷移這種類型的數據時,會將其轉換成UTC時區後,存入RDS For PPAS的數據類型timestamp[(fractional_seconds_precision)]with time zone中.
遷移步驟
下麵詳細介紹下使用DTS將Oracle數據庫遷移到RDS for PPAS的任務配置流程。
遷移帳號創建
遷移任務配置,需要提供Oracle數據庫及目標RDS實例的遷移賬號。遷移賬號所需權限詳見上文的 遷移權限要求。
如果您的Oracle實例的遷移賬號尚未創建,那麼您可以參考 Oracle Grant語法說明,創建滿足要求的遷移賬號。
RDS For PPAS 遷移賬號的創建及授權操作如下:
遷移任務配置
當上麵的所有前置條件都配置完成後,就可以開始正式的數據遷移了。下麵詳細介紹遷移任務配置流程。
- 使用目標RDS實例所屬阿裏雲賬號登陸數據傳輸DTS控製台,點擊右上角的創建遷移任務,開始遷移任務配置。
Oracle實例及目標RDS實例連接信息配置。
這個步驟主要配置 遷移任務名稱,Oracle連接信息及目標RDS實例連接信息。其中:
任務名稱
DTS為每個任務自動生成一個任務名稱,任務名稱沒有唯一性要求。您可以根據需要修改任務名稱,建議為任務配置具有業務意義的名稱,便於後續的任務識別。
源實例信息
- 實例類型:選擇 有公網IP的自建數據庫
- 數據庫類型: 選擇 Oracle
- 主機名或IP地址: 配置Oracle訪問地址,這個地址必須為公網訪問方式
- 端口:Oracle實例的監聽端口
- SID:Oracle實例的SID
- 數據庫賬號:Oracle實例的連接賬號
- 數據庫密碼:上麵Oracle連接賬號對應的密碼
目標實例信息
- 實例類型:選擇 RDS實例
- RDS實例ID: 配置遷移的目標RDS實例的實例ID。 DTS支持經典網絡、VPC網絡的RDS實例
- 賬號:RDS實例的連接賬號
- 密碼:上麵RDS實例連接賬號對應的密碼
當配置完連接信息後,點擊右下角 授權白名單並進入下一步 進行白名單授權。這個步驟DTS會將DTS服務器的IP地址添加到目標RDS實例的白名單中,避免因為RDS實例設置了白名單,導致DTS服務器連接不上RDS實例導致遷移失敗。
遷移對象及遷移類型配置。
遷移類型DTS支持 結構遷移、全量數據遷移、增量數據遷移。
如果需要進行不停機遷移,那麼需要選擇:結構遷移+全量數據遷移+增量數據遷移。
如果隻進行全量遷移,那麼需要選擇:結構遷移+全量數據遷移。
遷移對象
遷移對象,需要選擇您要遷移的對象。遷移對象選擇的粒度可以為:庫、表、列三個粒度。默認情況下,對象遷移到RDS For PPAS實例後,對象名跟本地Oracle實例一致。如果您遷移的對象在源實例跟目標實例上名稱不同,那麼需要使用DTS提供的對象名映射功能,詳細使用方式可以參考庫表列映射。
當配置完遷移對象及遷移類型後,即進入任務啟動前的預檢查步驟。
預檢查。
在遷移任務正式啟動之前,會先進行前置預檢查,隻有預檢查通過後,才能成功啟動遷移。
如果預檢查失敗,那麼可以點擊具體檢查項後的按鈕,查看具體的失敗詳情,並根據失敗原因修複後,重新進行預檢查。
當修複完成後,可以在任務列表中,選擇這個任務,重新啟動預檢查。
購買實例並啟動任務。
當預檢查通過後即進入遷移實例購買清單確認界麵。請根據業務壓力選擇具體的規格並同意產品服務條款後,啟動遷移任務。
當任務啟動後,可以到任務列表中查看任務具體的遷移狀態及進度。
增量數據遷移是個動態同步的過程,所以建議在增量遷移達到無延遲狀態時,在目標數據庫上進行業務驗證,如果驗證成功,那麼可以停掉遷移任務,然後將業務切換到目標數據庫。
至此,完成本地Oracle數據庫到RDS for PPAS實例的不停機數據遷移的任務配置。
附:預檢查內容
DTS在啟動遷移之前,會進行前置預檢查,本小節簡單介紹Oracle->RDS For PPAS的預檢查內容:
預檢查項 | 檢查內容 | 備注 |
---|---|---|
源庫連接性檢查 | 檢查DTS服務同Oracle實例的連通性 | (1) 填寫信息是否有誤?如果填寫信息有誤,請修改後重新預檢查 (2) 檢查Oracle是否開啟監聽端口 |
目的庫連接性檢查 | 檢查DTS服務同目的RDS For PPAS實例的連通性 | 檢查填寫信息是否有誤,如果有誤請先修改後重新預檢查 |
源庫版本檢查 | 檢查Oracle實例的版本,DTS是否支持 | DTS目前隻支持10g,11g,12c三個版本 |
源庫權限檢查 | 檢查Oracle實例訪問賬號的權限是否滿足要求 | 如果權限不足,請參照上麵的權限要求一節授權後,重新預檢查 |
目的庫權限檢查 | 檢查RDS For PPAS實例訪問賬號的權限是否滿足要求 | 如果權限不足,請參照上麵的權限要求一節授權後,重新預檢查 |
同名對象存在性檢查 | 檢查待遷移對象在目標RDS For PPAS是否已經存在 | 如果檢查失敗,請將目標庫中這些已經存在的對象刪除後,重新進行預檢查 |
源端同名對象存在性檢查 | 檢查待遷移對象中,要遷入目標同一個schema的對象是否同名 | 如果檢查失敗,可以參考 庫表列映射 將重名對象進行重命名 |
源庫日誌模式檢查 | 檢查源庫是否開啟archive log | 如果未開啟,請啟用後,重新預檢查 |
約束完整性檢查 | 檢查待遷移對象依賴的父對象是否遷移 | 如果檢查失敗,那麼可以修改遷移對象,同時遷移依賴的父對象後,重新預檢查 |
DBLINK存在性檢查 | 檢查源庫是否存在DBLINK | 如果存在,那麼需要修改遷移對象,不選擇DBLINK |
增量拓撲衝突檢查 | 檢查同一個遷移對象是否已經存在遷移鏈路 | 如果存在衝突鏈路,那麼需要刪除掉衝突鏈路後,重新預檢查 |
字段類型檢查 | 檢查待遷移表的是否存在數據類型為long類型的字段 | 如果存在那麼對應的表隻能進行全量數據遷移,不能選擇增量數據遷移 |
表是否存在主鍵或者唯一性非空索引檢查 | 檢查待遷移表是否包含主鍵或非空唯一鍵 | 如果存在那麼對應的表隻能進行全量數據遷移,不能選擇增量數據遷移 |
補償日誌開啟檢查 | 檢查是否開啟supplemental_log | 如果未開啟,請啟用後,重新預檢查 |
最後更新:2016-11-23 16:03:55
上一篇:
SQL Server不停機遷移__數據遷移_用戶指南_數據傳輸-阿裏雲
下一篇:
本地PostgreSQL遷移至RDS for PostgreSQL__數據遷移_用戶指南_數據傳輸-阿裏雲
快速搭建移動應用直傳服務__移動應用端直傳實踐_最佳實踐_對象存儲 OSS-阿裏雲
雲服務器 ECS 申請解鎖
阿裏雲如何成為智慧環保的“天眼”和“大腦”?
查詢路由表列表__路由表相關接口_API 參考_雲服務器 ECS-阿裏雲
使用金融雲VPC__使用金融雲產品_金融雲-阿裏雲
CNAME回源___產品功能說明_產品常見問題_DDoS 高防IP-阿裏雲
AWS、阿裏雲等諸強競爭下,百度雲能否用ABC戰略突圍?
MergeShards__日誌庫相關接口_API-Reference_日誌服務-阿裏雲
設置頁麵優化__配置操作接口_API 手冊_CDN-阿裏雲
創建授權__資源授權接口_Open API_消息隊列 MQ-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲