吳天宇 馮蕊 楊翠
(甘肅同興智能科技發展有限責任公司 甘肅省蘭州市 730050)
Oracle 數據庫因其方便、快捷、高效的特點而備受青睞,是最常用商用數據庫之一。在數據庫的遷移過程中,選擇批量數據無損遷移技術,優化遷移方案,能夠使得停庫時間被最大程度上減少,提升數據庫的可利用率,進而能夠最大程度上減少業務損失,更好的保障企業的經濟效益[1]。基于此,本文對Oracle 數據庫批量數據無損遷移技術進行簡要的分析與探索,就如何Oracle 數據庫遷移技術的選擇提出自己的建議。
Oracle 數據庫是目前世界上最流行的關系數據庫管理系統,受到各大、中、小企業的青睞。Oracle 數據庫具有內部系統可移植性好、方便快捷、應用廣等特點,是一種高效率、可靠性好的 適應高吞吐量的數據庫解決方案。[2]并且由于Oracle 數據庫自身能夠實現跨硬件平臺、跨操作系統的數據操作能力,Oracle 數據庫的應用范圍呈現出極速拓展的發展態勢。在企業尤其是大企業中,由于數據龐雜,在進行數據遷移的過程中,操作不當就會造成數據丟失、多池組鏈邏輯混亂等問題,使得新舊系統之間難以有效對接,使公司的正常運行受到影響。因此選擇科學有效的遷移技術,制定切實可行的遷移方案具有重要的價值。
進行批量數據無損遷移的過程中,首先要實現批量數據同步,可以借助觸發器實現對Oracle 數據庫批量數據的變化的有效捕捉,由于在觸發器的使用過程中,會產生一定的數據冗余,為了解決這一問題,可以將觸發器用數據庫中的日志表進行代替,使用日志表中的sql 語句實現對變化信息的存儲[3]。這里需要注意的是,在設計數據庫表時,要對其具體的規模進行控制。數據庫表的具體結構如圖1。
在使用其中的觸發器時,要注意觸發器的觸發方式,即以行級觸發以記錄控制信息,在使用觸發器進行更新操作實施,要對更新字段進行判斷,當發現結果為主鍵時,就要刪除數據庫表中舊主鍵值的所有相應日志記錄,并且要記錄以下兩條控制信息。第一條,負責標示刪除的舊主鍵值日志記錄。第二條,負責標示插入的新主鍵值日志記錄[4]。如果發現結果為非主鍵時,則要首先派單主鍵的字段是否發生了變化,如果確認發生了變化,則要將更新的字段計入到UCN 中,并且判斷這則記錄是否進行過更新,如果更新過就將日志表中對于的記錄進行更新。具體流程如圖2。通過以上操作將批量數據的變化保存至設計的日志表中,就能夠有效實現數據的同步。

圖1:Oracle 數據庫表的具體結構示意圖

圖2:非主鍵操作流程圖
傳輸中選定的中間轉換格式為xml 文檔[5]。轉換完成后,再以數據包的形態保存在備份數據庫中,進而實現備份數據庫與主數據庫之間的同步。最后再使用Open JMS 對Oracle 數據庫實施批量數據傳輸。全部完成后可以通過建立元數據模型,完成Oracle 數據庫批量數據的無損遷移。在模型中,要能夠完成手動數據、定時數據以及歷史數據的批量歸檔等工作,在模型的構成結構上,具體包括專業數據庫層、應用數據庫層、應用模塊層、數據傳輸層四層的內容,這四個層級之間相互配合、密切合作,共同作用下實現Oracle 數據庫批量數據的無損遷移[6]。
數據特征綁定技術能夠有效的解決Oracle 數據庫遷移中容易發生的數據丟失的問題,通過將Oracle 數據庫中自帶的一些功能,包括數據貯存交互規則,以及數據交互池,將兩者之間的關系進行重新的排布優化為形成數據特征綁定技術[7]。在具體操作上,通過一串臨時特征代碼的有效植入,進而實現遷移過程中的有效排列與追蹤。根據數據庫中的信息類別、性質屬性來為其賦予的新型特性,這些被賦予的數據信息在權限上被限制,只能被臨時讀取,其他外界的任何操作都無法實現對其的控制,使得數據丟失的概率被大大降低,十分具有安全性。
邏輯備份與恢復技術又可以被稱為導出/ 導入。在導出中使用的文件類型hi 二進制的系統文件,并且在數據的讀取過程中不受物理位置的限制,能夠比較靈活的將整個數據庫、用戶模式或表模式中的護具進行導出。應用邏輯遷移技術時,往往是對于一些比較重要的數據,并且邏輯遷移技術的一個比較突出的優勢在于能夠實現不同操作平臺、不同數據庫版本之間的有效切換,僅為能夠對備份工作起到很好的支持,并且由于Oracle 數據庫支持同步復制,能夠提升應用的實效性。邏輯備份在應用的過程中,相較于其他的遷移方式更加方便、快捷,而且操作簡單,對磁盤空間的要求低,具有很大的應用優勢。下面對幾種邏輯備份技術進行介紹。
3.2.1 EXP/EXPDP 及IMP/IMPDP 數據備份恢復技術
EXP/EXPDP 即導出/ 導入功能,是Oracle 數據庫中比較基礎的功能。EXPDP 與EXP 采用不同的導出機制,其中采用并行導出機制的EXPDP 相較于EXP,在速度上更占優勢,但是需要注意的是EXPDP 導出后的dmp 文件只能由IMPDP 進行導入[9]。
3.2.2 RMAN 數據備份恢復技術
RMAN 在Oracle 數據庫中負責備份、還原恢復等常規功能,對于Oracle 的使用版本有著一定的要求,能夠對數據部進行整體或部分的備份,并且也支持進行增量數據塊級別的備份。就其恢復功能而言,主要是通過物理備份的形式,將數據庫中的日志信息進行搬移、重組,如果在備份頻率的設置上應用得當,能夠使數據得到很好的恢復與保存。
3.2.3 GOLDENGATE 數據復制技術
Golden Gate 軟件也是一種備份技術,通過將日志的結構化數據進行復制、解析,得到相應的數據增量變化,然后將這些變化使用到目標數據庫中。Golden Gate 軟件的使用速度十分迅猛,在異構環境下,甚至能夠實現海量數據亞秒一級的實時復制,并且應用場景十分豐富,企業的選擇數據庫遷移技術時,可以進一步考慮此項技術。
XTTS 是一個跨平臺遷移表空間,XTTS 技術是在TTS 技術的基礎上優化發展而來的,具體而言,使得進一步支持了跨平臺、增量備份,提升了應用的實效。XTTS 技術從11gR2 開始可以支持跨平臺、不同塊大小,可以使用增量備份,也能夠大大地減少了停機的時間,進而能夠更好的實現Oracle 數據庫快捷、高效、平穩、安全地跨平臺遷移,是Oracle 數據庫批量數據無損遷移技術中的重要組成部分。
(1)在前期遷移階段,首先要對遷移的用戶及需要遷移的表空間進行確認。然后對環境進行核對。要對遷移的目標庫進行查詢,查詢的主要目的在于對遷移中的用戶和表空間重名情況進行查核,如果發現重名,就要對目標庫中的用戶民和表空間名稱進行修改。并且檢查是否有用戶將表創建到本次遷移的表空間外的其他表空間上,如果有的話,就要對其中進行改造。
(2)在初始化階段要對其中的參數、表空間進行初始化。
(3)在數據同步階段,主要實現的是對數據文件的傳送、字節序轉換。
(4)在N 次增量階段,首先要創建表空間的增量備份,接著將傳送增量備份到目標庫,然后在目標庫應用增量,并生成同步的SCN 號,最后將這些步驟進行多次的重復、運次那個,實現將增量數據同步到目標庫中。
(5)在正式遷移階段,首先要將源庫表空間設置為只讀狀態,具體的操作過程包括停止源庫監聽,然后鎖住用戶,并將用戶連接進行除去,將表空間設置為只讀,然后停止源庫監聽。其次,要創建最后增量備份、轉換及傳送,使用源庫導出數字字典,對目標庫進行物化視圖授權,進而實現表空間的傳輸,接著導入元數據,并將目標庫表空間設置為讀寫模式。這種XTTS 技術的數據庫遷移方案,由于支持跨平臺遷移,并且方便、快捷,因此廣受好評,在應用XTTS 技術進行數據庫的遷移,能夠使數據庫在遷移過程中的停機時間被大大縮短。
上述介紹的幾種比較主流的數據遷移技術,在在使用過程中,要根據自身的需求進行確定,并且各自都有自身的優劣條件,例如,在使用EXP/EXPDP/IMP/IMPDP 技術時,雖然具有較好的穩定性,并且由于其本身屬于Oracle 數據庫中的自帶工具,因此在使用時對于版本的要求比較寬,但是其主要的問題在于,在進行數據遷移時必須停數據庫,這對著大企業來說是對業務的嚴重影響,對于經濟效益的獲得而言比較不利,在技術選擇時要綜合考量。
隨著技術的不斷更新,選擇一項簡單可靠、方便易行的方案,提升數據遷移的質量和速度,對于數據的安全性、可靠性、效益性都有重要影響。對于數據庫操作管理人員來說,要掌握多種數據備份遷移的技能,并且對各項技術的優勢、劣勢認識清楚,能夠在需要時做出正確的選擇,最大程度上降低數據庫停機的時間與損失,更好的處理和應對各種數據隱患。并且需要注意的是,在進行Oracle 數據庫批量數據無損遷移的過程中,數據并不是影響遷移工作質量和效率的唯一因素,一些新型的數據源或者聯機備份也能夠實現數據信息的有效遷移,數據庫操作管理人員要及時更新知識,了解各種數據信息的有效遷移的技術和設備,與時代發展同步,及時了解最新的信息和數據,使得能夠最穩妥、快速的提出相應的解決方案。