閱讀278 返回首頁    go 阿裏雲


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

遷移前置條件

  1. Oracle版本為10g,11g,12c
  2. Oracle 開啟supplement log,且要求 supplemental_log_data_pk,supplemental_log_data_ui 開啟
  3. 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 遷移賬號的創建及授權操作如下:

ppas賬號創建

遷移任務配置

當上麵的所有前置條件都配置完成後,就可以開始正式的數據遷移了。下麵詳細介紹遷移任務配置流程。

  1. 使用目標RDS實例所屬阿裏雲賬號登陸數據傳輸DTS控製台,點擊右上角的創建遷移任務,開始遷移任務配置。
  2. 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實例連接賬號對應的密碼

      oracle_ppas_步驟1

      當配置完連接信息後,點擊右下角 授權白名單並進入下一步 進行白名單授權。這個步驟DTS會將DTS服務器的IP地址添加到目標RDS實例的白名單中,避免因為RDS實例設置了白名單,導致DTS服務器連接不上RDS實例導致遷移失敗。

  3. 遷移對象及遷移類型配置。

    • 遷移類型DTS支持 結構遷移、全量數據遷移、增量數據遷移。

      如果需要進行不停機遷移,那麼需要選擇:結構遷移+全量數據遷移+增量數據遷移

      如果隻進行全量遷移,那麼需要選擇:結構遷移+全量數據遷移

    • 遷移對象

      遷移對象,需要選擇您要遷移的對象。遷移對象選擇的粒度可以為:庫、表、列三個粒度。默認情況下,對象遷移到RDS For PPAS實例後,對象名跟本地Oracle實例一致。如果您遷移的對象在源實例跟目標實例上名稱不同,那麼需要使用DTS提供的對象名映射功能,詳細使用方式可以參考庫表列映射

      對象選擇

      當配置完遷移對象及遷移類型後,即進入任務啟動前的預檢查步驟。

  4. 預檢查。

    在遷移任務正式啟動之前,會先進行前置預檢查,隻有預檢查通過後,才能成功啟動遷移。

    如果預檢查失敗,那麼可以點擊具體檢查項後的按鈕,查看具體的失敗詳情,並根據失敗原因修複後,重新進行預檢查。

    預檢查失敗

    當修複完成後,可以在任務列表中,選擇這個任務,重新啟動預檢查。

  5. 購買實例並啟動任務。

    當預檢查通過後即進入遷移實例購買清單確認界麵。請根據業務壓力選擇具體的規格並同意產品服務條款後,啟動遷移任務。

    當任務啟動後,可以到任務列表中查看任務具體的遷移狀態及進度。

    增量數據遷移是個動態同步的過程,所以建議在增量遷移達到無延遲狀態時,在目標數據庫上進行業務驗證,如果驗證成功,那麼可以停掉遷移任務,然後將業務切換到目標數據庫。

    至此,完成本地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

  上一篇:go SQL Server不停機遷移__數據遷移_用戶指南_數據傳輸-阿裏雲
  下一篇:go 本地PostgreSQL遷移至RDS for PostgreSQL__數據遷移_用戶指南_數據傳輸-阿裏雲