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