超大資料量遷移方案,XTTS vs OGG

碼農談IT發表於2023-02-24


需求

由於X86伺服器的價效比超高,很多客戶在很早就開始大規模的U2L改造,也導致IOE中的I最先被去掉了。不過當前還是有一些存量客戶使用的UNIX系統,當需要將UNIX上的Oracle資料遷移到Linux平臺上時,就會用到跨平臺遷移方案了,常見的如 expdp/impdp 邏輯匯出匯入方式、XTTS 、OGG等。
正好近期和朋友討論了一下 XTTS 和 OGG 對超大型資料庫的遷移方案對比。所以就寫下來記錄一下。

方案

XTTS方案

超大資料量遷移方案,XTTS vs OGG

xtts遷移主要由Oracle官方提供的xttdriver.pl工具實現,該工具可以從MOS下載下來,具體操作方式網上已經有很多人寫過了,就不再複述了。
大致步驟為:
「Step1:源資料備份」

  • 檢查自包含,確認需要遷移的表空間。
  • 源端開啟BCT(Block Change Tracking),為後期抽取增量做準備。
  • xttdriver.pl -p 執行一個資料庫全備,準備一塊臨時空間存放。

「Step2:格式轉換」

  • xttdriver.pl -c 呼叫rman convert將備份檔案轉換為Linux格式檔案。

「Step3:增量同步」

  • xttdriver.pl -i 同步增量資料

「Step4/5: 割接」

  • 停止業務,防止寫入資料,源庫表空間值為Readonly。
  • expdp源庫匯出後設資料
  • impdp目標庫匯入後設資料

ogg方案

超大資料量遷移方案,XTTS vs OGGogg方案

「Step1:ogg軟體安裝」

  • 源庫和目標庫安裝ogg軟體
  • 源庫開啟捕獲,獲取scn號

「Step2:全備份」

  • 發起一個RMAN全備份,根據scn恢復到中間伺服器

「Step3:匯出匯入」

  • expdp匯出中間伺服器資料
  • impdp匯入目標資料庫

「Step4:增量同步」

  • ogg開啟實時同步

「Step5:割接」

  • 割接時應用連結直接切換至目標庫即可。

比一比優略

「方案對比」「XTTS」「OGG」
割接停機時間匯出匯入後設資料耗時較長,而且受限於資料物件數量。
而且匯入統計資訊耗時特別長,建議排除統計資訊匯入。
停機視窗基本等於0,可以實現零停機切換。
操作複雜度主要依賴xttdriver.pl工具集實現,操作複雜度較高主要依賴ogg軟體實現,操作複雜度較高
風險點1)後設資料匯入時,一是時間較長。二是如果匯入過程中失敗了再次匯入可能失敗,從而割接失敗。
2)在遷移準備過程中新增了資料檔案,還需要進行新增操作。
1)邏輯同步方式,需要校驗同步資料的準確性。雖然ogg足夠強,但是如果操作手法不夠絲滑,還是會有資料不同步的情況發生。
2)如果源庫資料型別特別複雜,可能遇到不支援的資料型別。
適用情況資料量特別大(數十TB、數百TB)
物件數量不多
資料物件複雜
<5TB的系統初始化可以使用expdp
>5TB的系統初始化可以結合使用tts
資料物件種類單,特別適合SAP系統遷移

「無論是哪種方案,各有利弊。都需要經過多次測試,方順利完成專案。」



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70024924/viewspace-2936855/,如需轉載,請註明出處,否則將追究法律責任。

相關文章