Oracle跨平台遷移的簡單總結

2021-09-22 19:14:33 字數 1885 閱讀 8052

前段時間測試了一下goldengate,結合我之前的一些嘗試,對於小機環境的遷移,思路是逐步清晰了起來。

需求的核心是跨平台遷移資料庫,最好能夠公升級到新的版本,對於乙個核心系統的一主兩備,需要保證資料完整性的前提,同時能夠盡可能保持在乙個較短的維護時間,對此自己也琢磨了很多方案。

想了nfs的方案,在備庫端建立乙個nfs掛載點,源端指向linux環境,然後直接failover,這樣資料就能夠直接到linux端,然後做乙個跨平台的convert操作

這樣就可以盡可能快的切換資料到了linux端,然後在linux端轉換檔案後直接利用tts的方式匯入,如果準備充分,這個過程應該不超過半個小時。

自己還為這種方案而沾沾自喜,最後試了一遍,發現其實不是那麼回事。問題的瓶頸在**呢,就是跨平台的系統呼叫介面。

如果在solaris端使用nfs共享的檔案,嘗試啟動資料庫,那麼就會沒有響應,會丟擲乙個比較奇怪的問題。

當然自己也堅持不懈查了一些資料,發現真不能這麼玩,同時solaris還可以,跨平台的情況下,還是有很多大大的不同。所以nfs這個方案就點到為止,pass了。

而對於大資料量的資料庫做跨平台遷移,還有什麼其他的思路嗎,xtts是一種方式,但是這種方案就比較糾結了,幾乎是不可實現的,源端的資料庫的網絡卡過舊,io能力不足,拷貝基本上就是7m每秒的速度,對於乙個近1t資料量的資料庫做檔案拷貝,簡直不敢想象。方案雖然可行,但是不可接受。

那麼使用datapump呢,這個方案想比xtts就更糾結了,傳輸,匯入都更加耗時。如果保守估計,匯出,傳輸,匯入,整個過程估計得10多個小時,那我就可以直接下班回家了。

還有什麼方案呢,其實還有不少,如果裡面的表不多的話,可以直接使用物化檢視的增量重新整理來玩等。

最後到了我不大擅長的goldengate了,最後發現還是這種方式是一種可持續性的,維護時間最短的方案。

首先是全量同步,這個過程可以通過datapump來完成,為什麼選擇datapump呢,就因為是邏輯的,而物理的方式有一定的侷限性,可以很輕鬆實現資料的跨版本匯入。

那麼問題來了,備庫怎麼datapump匯出,這個不可行啊,我如果直接failover了,備庫就不可用了,還得重搭,這個還是有風險的。

如果你這麼想,那就對了,其實可以充分利用閃回資料庫的原理,先failover,然後datapump匯出,完成這個工作之後,閃回繼續接受歸檔,就是這個套路。

這個匯入的過程持續10個小時,還是5個小時,都影響不大,因為都是新主庫的操作。

而接下來的事情就需要注意了,那就是主庫端的增量同步。

使用goldengate的意義就在於此。

怎麼做增量同步呢,我們在備庫端全量同步的時候需要標記乙個檢查點scn,後續做增量同步就可以基於這個點來做了。

比如在目標端使用ogg同步,指定基於scn 1887488就可以選擇性同步了。

ggsci (newtest.oracle.com) 3> start rep_tlbb, aftercsn 1887488

整個過程會保證資料的一致性,而且是乙個持續性的同步過程,如果說誇張一些,是零維護時間的遷移式公升級。總之,維護時間很短,對於業務端來說是透明的而且完全無感知。

ZStack跨平台遷移可以如此簡單

前言 zstack 從1.8 版本開機就支援了vcenter的納管,並不斷豐富其運維 租戶 運營等方面的能力。加之國產化浪潮的推動,從納管到遷移幾乎是一串順其自然的需求,遷移中客戶主要面臨兩個困難,一是部分業務連續不中斷或者盡量降低中斷時間,再則免費工具的複雜程度以及相容性所存在的問題,導致客戶不得...

Oracle 11g 資料庫跨平台遷移

源端系統版本 red hat enterprise linux 6.5 目標端系統版本 windows 7 service pack1 目標端資料庫版本 oracle 11.2.0.4 1 建立測試表 create table test as select from sys.test sys使用者下...

SYBASE 資料庫的跨平台遷移

包括兩個方面 資料庫結構的遷移 如表結構 檢視 觸發器等 和資料的遷移 操作步驟如下 1 利用工具 sybase自帶工具或第三方工具 生成以下指令碼備用 createusetye createtable createview createprocedure dropindex createindex...