魯明 段莉明
摘 要:本文介紹了Oracle數(shù)據(jù)庫基于Linux系統(tǒng)遷移的研究問題。在數(shù)據(jù)庫領(lǐng)域一直處于領(lǐng)先地位的Oracle數(shù)據(jù)庫以其良好的可移植性、可靠性和高效性,倍受各級用戶的推崇和喜愛。隨著Oracle數(shù)據(jù)庫的不斷更新和發(fā)展,其使用用戶的群體也在不斷的增加,因此對Oracle數(shù)據(jù)庫的存儲遷移技術(shù)的研究在國內(nèi)外如雨后春筍般不斷發(fā)展。
關(guān)鍵詞:oracle,數(shù)據(jù)遷移,跨平臺
中圖分類號: TP391 文獻標識碼: A 文章編號: 1673-1069(2016)25-195-2
0 引言
伴隨著IT行業(yè)的迅速發(fā)展,IT系統(tǒng)中數(shù)據(jù)的安全性,已經(jīng)是對企業(yè)運營產(chǎn)生了重大影響。而數(shù)據(jù)庫的安全遷移也為IT系統(tǒng)的可持續(xù)運行和數(shù)據(jù)安全提供一道保護屏障。而且近年來頻繁出現(xiàn)的自然災害或者突發(fā)事件也讓越來越多的人們意識到,原有的數(shù)據(jù)存儲方式已經(jīng)無法滿足企業(yè)的需要。本文正是從數(shù)據(jù)庫遷移的實際操作中總結(jié)整理而成。
1 oracle數(shù)據(jù)庫文件構(gòu)成
數(shù)據(jù)庫是一種物理的存儲結(jié)構(gòu),它是由多種物理文件組成的,在Oracle數(shù)據(jù)庫系統(tǒng)中分為,核心文件和非核心文件兩大類[1]。其中核心文件由數(shù)據(jù)文件,控制文件,日志文件,參數(shù)文件組成,非核心文件由密碼文件,告警日志文件,各種跟蹤文件組成。
控制文件:控制文件是一個二進制的文件,它描述了數(shù)據(jù)庫當前的物理狀態(tài),記錄了RMAN備份的元數(shù)據(jù)。控制文件包含有數(shù)據(jù)庫的名稱、數(shù)據(jù)庫的創(chuàng)建信息、表空間的信息、數(shù)據(jù)文件的狀態(tài)、日志文件的信息、備份的信息、檢查點的信息等。
數(shù)據(jù)文件:,一個數(shù)據(jù)庫中一定至少有一個數(shù)據(jù)文件(system01.dbf),如果一個數(shù)據(jù)庫存在多個數(shù)據(jù)文件,應該分別把它們存放在不同的磁盤上,這樣做不僅可以提高數(shù)據(jù)的存取速度,有利于提高數(shù)據(jù)庫的性能,而且還能防止數(shù)據(jù)文件同時被損壞,實現(xiàn)高度容災。
日志文件:數(shù)據(jù)庫日志文件包括歸檔日志和非歸檔日志,記錄了數(shù)據(jù)庫的所有修改信息,歸檔日志會在數(shù)據(jù)庫切換日志時,備份歷史日志,日志記錄的是數(shù)據(jù)庫改變的信息、因此當數(shù)據(jù)庫損壞時可以通過日志文件實現(xiàn)數(shù)據(jù)庫的完全恢復、不完全恢復,而非歸檔日志不會備份歷史日志,只能恢復到數(shù)據(jù)庫最后一次備份時的狀態(tài)[2]。
臨時文件:創(chuàng)建數(shù)據(jù)庫對象的時候指定的是使用表空間,一個表空間至少包含一個數(shù)據(jù)文件,臨時文件是臨時表空間對應的數(shù)據(jù)文件,并不是已用完就被刪除的,而是指這個文件存儲的對象是臨時存在的對象。臨時文件主要用于大量的排序的時候,如果不能在數(shù)據(jù)庫的內(nèi)存中做排序,就會把臨時文件作為中轉(zhuǎn)。
參數(shù)文件:參數(shù)文件是記錄數(shù)據(jù)庫系統(tǒng)配置的文件,每次數(shù)據(jù)庫一啟動,Oracle就會自動地從參數(shù)文件中讀取系統(tǒng)參數(shù)的設置來配置并啟動數(shù)據(jù)庫。如內(nèi)存的大小分配,此次啟動可以打開的進程數(shù)和會話數(shù)等。
2 Oracle數(shù)據(jù)庫遷移的遷移方案
oracle數(shù)據(jù)庫狀態(tài)分類:
nomount:此狀態(tài)可以讀取初始化參數(shù)文件,啟動實例,可以進行數(shù)據(jù)庫的創(chuàng)建。
mount:數(shù)據(jù)庫維護狀態(tài),讀取控制文件。
open: 打開數(shù)據(jù)文件,日志文件,是數(shù)據(jù)庫可以對全體用戶提供服務了。
數(shù)據(jù)庫物理遷移過程大體可分為以下四個步驟:
第一步:加載初始化文件
oracle啟動后,數(shù)據(jù)庫默認會讀取一個二進制的初始化文件spfile
第二步:加載控制文件,保證在初始化文件中,控制文件的路徑正確
在初始化文件中定義控制文件的位置,在確??刂莆募窂秸_的情況下,才能對控制文件進行加載,其命令是alter database mount。
第三步:加載數(shù)據(jù)庫,包括重做日志文件
加載控制文件之后,執(zhí)行命令alter database open對數(shù)據(jù)庫進行開啟,整個數(shù)據(jù)庫啟動過程完成了。
第四步:啟動數(shù)據(jù)庫成功之后,就說明遷移成功,可以觀察數(shù)據(jù)是否丟失,然后啟動監(jiān)聽和配置文件等。
3 Oracle數(shù)據(jù)庫遷移具體實踐
下面以把數(shù)據(jù)庫從文件系統(tǒng)遷移到ASM磁盤組為例進行演示步驟:
首先,ASM是把多個磁盤組織為一個磁盤組,作為Oracle的邏輯卷管理器,利用ASM技術(shù)可以把數(shù)據(jù)均勻分布在這些磁盤上來解決從文件區(qū)到物理磁盤塊的映射問題。這種設計除了定位文件區(qū)非??焖僦猓€在增加或刪除磁盤時有所幫助,因為文件區(qū)的位置不需要調(diào)整[3]。
把數(shù)據(jù)庫從文件系統(tǒng)遷移到ASM磁盤組主要是把數(shù)據(jù)庫的控制文件,數(shù)據(jù)文件和日志文件分別放在不同的磁盤組上,實現(xiàn)對這些文件的一個冗余放置,還簡化了對數(shù)據(jù)文件的管理。
3.1 遷移數(shù)據(jù)庫
①遷移數(shù)據(jù)庫前先在RMAN下備份數(shù)據(jù)庫,設置系統(tǒng)冗余度,并打開優(yōu)化器和控制文件的自動備份功能
②創(chuàng)建遷移的控制文件存放的目錄
③修改參數(shù)文件把控制文件的默認位置修改到ASM磁盤組上,然后用Pfile來生成spfile文件
SQL> create pfile from spfile;
④利用RMAN工具恢復控制文件,將數(shù)據(jù)庫啟動到mount狀態(tài);加載控制文件,如果出現(xiàn)錯誤,就說明控制文件所在的路徑和參數(shù)文件路徑不一致,要修改初始化參數(shù),文件中控制文件的參數(shù),然后重新加載。
4 總結(jié)與展望
數(shù)據(jù)庫管理技術(shù)是現(xiàn)今社會中信息科學與技術(shù)的重要組成部分,數(shù)據(jù)庫遷移技術(shù)的研究保證了數(shù)據(jù)安全以及高效的存儲[4][5]。在實際操作過程中,Oracle數(shù)據(jù)庫基于Linux系統(tǒng)的遷移過程中會出現(xiàn)各種各樣的情況,如果想要安全完整的遷移數(shù)據(jù)庫,一定要先做好備份,然后反復的實驗驗證,最終才能保證數(shù)據(jù)庫完整安全的遷移。
參 考 文 獻
[1] 張敏.數(shù)據(jù)庫安全研究現(xiàn)狀與展望[J].中國科學院院刊,2011.03.
[2] 趙欽,周丹.政府辦公自動化信息系統(tǒng)數(shù)據(jù)遷移解決方案[J].廣西科學院學報,2008.24.
[3] 段衛(wèi)國,李俊春.Oracle 數(shù)據(jù)庫數(shù)據(jù)遷移技術(shù)研究[J].信息技術(shù),2015.8.
[4] Kathy Rich.Oracle Data Pump,10g Release 2 (10.2)[M].Oracle Database Utilities, 2005.
[5] 葉瑞綿,王曉華,丁慧瑩.Oracle數(shù)據(jù)庫跨版本的升級實現(xiàn)[J].中國數(shù)字醫(yī)學,2016.5.