摘 要 隨著系統(tǒng)業(yè)務(wù)的不斷擴展 系統(tǒng)產(chǎn)生的數(shù)據(jù)呈幾何級增長 而數(shù)據(jù)是信息系統(tǒng)的核心 因此在數(shù)據(jù)遷移中 保障數(shù)據(jù)的安全性更是重中之重ORACLE 數(shù)據(jù)庫是世界上主流的數(shù)據(jù)庫之一 數(shù)據(jù)遷移的方法有多種 而如何在有限的系統(tǒng)停機時間內(nèi)完成ORACLE 數(shù)據(jù)庫的數(shù)據(jù)遷移工作 并保證數(shù)據(jù)的完整性和正確性 文章將結(jié)合實際案例進行探討
關(guān)鍵詞ORACLE 數(shù)據(jù)遷移 數(shù)據(jù)庫
中圖法分類號TP311 ?文獻標(biāo)識碼A
隨著信息技術(shù)的快速發(fā)展、各項業(yè)務(wù)的數(shù)字化辦理,以及信息系統(tǒng)覆蓋面不斷增大,系統(tǒng)產(chǎn)生的業(yè)務(wù)數(shù)據(jù)也隨之增長,這對服務(wù)器和存儲設(shè)備提出了新的要求,這些要求通過對設(shè)備進行升級、擴容來實現(xiàn),在升級改造過程中,數(shù)據(jù)遷移是必不可少的一項工作。而ORACLE 數(shù)據(jù)庫是目前最流行的關(guān)系型數(shù)據(jù)庫之一,有安全級別高、處理速度快、存儲量大等優(yōu)勢,廣泛應(yīng)用于各個關(guān)鍵領(lǐng)域。ORACLE 數(shù)據(jù)庫如何在數(shù)據(jù)遷移中實現(xiàn)數(shù)據(jù)的完整性、提高數(shù)據(jù)的安全性,本文將結(jié)合數(shù)據(jù)遷移的實際案例,分析數(shù)據(jù)遷移的動機、方法、風(fēng)險等,并討論其在實際中的應(yīng)用。
1 數(shù)據(jù)遷移的動機
數(shù)據(jù)中心的搬遷:由于機構(gòu)搬遷或者相關(guān)政策的因素影響,需要把數(shù)據(jù)中心搬遷或合并到新的地址,根據(jù)需求合理安排數(shù)據(jù)的存儲空間,因此涉及數(shù)據(jù)的遷移和存儲的整合。
舊的存儲性能不足:隨著信息系統(tǒng)的發(fā)展,現(xiàn)有的存儲設(shè)備容量不足、機器老化等,已無法滿足需求,甚至影響到系統(tǒng)的正常使用,數(shù)據(jù)遷移迫在眉睫。信息系統(tǒng)升級:當(dāng)信息系統(tǒng)升級后,要將舊系統(tǒng)的數(shù)據(jù)遷移到新系統(tǒng)上,涉及舊系統(tǒng)數(shù)據(jù)的整理、抽取,按照新系統(tǒng)數(shù)據(jù)庫表的邏輯結(jié)構(gòu)關(guān)聯(lián)對應(yīng)并遷移。
2 數(shù)據(jù)遷移的方法
數(shù)據(jù)遷移一般分為物理遷移和邏輯遷移2 種。物理遷移指將整個數(shù)據(jù)庫備份后再完全恢復(fù),根據(jù)是否關(guān)閉數(shù)據(jù)庫又將備份的方法分為冷備份和熱備份。冷備份稱為脫機備份,是在關(guān)閉數(shù)據(jù)庫的環(huán)境下進行數(shù)據(jù)備份,優(yōu)點是操作比較簡單、方便歸檔;缺點是當(dāng)數(shù)據(jù)量大時,該方法停機時間較長,會引起系統(tǒng)長時間無法使用。熱備份也稱為聯(lián)機備份,適用于數(shù)據(jù)庫不能停的情況,而數(shù)據(jù)是不斷改變的,該方法也稱為不一致備份。
邏輯遷移指將數(shù)據(jù)庫的結(jié)構(gòu)和數(shù)據(jù)導(dǎo)出到文件,再導(dǎo)入到目標(biāo)數(shù)據(jù)庫,其中Orecle 數(shù)據(jù)庫主要遷移方法有Exp/ Imp 工具遷移數(shù)據(jù)、Expdp/ Impdp 工具遷移數(shù)據(jù)、利用data guard 遷移、用rman 做遷移等[1] 。自Oracle 軟件推廣應(yīng)用以來,Exp/ Imp 工具就被作為備份遷移的配套工具,其操作簡單,但導(dǎo)入導(dǎo)出慢、效率低、數(shù)據(jù)遷移時需要停機操作等,適合中小型數(shù)據(jù)庫的數(shù)據(jù)遷移工作。
Expdp/ Impdp 工具一般被稱為“數(shù)據(jù)泵”,針對Exp/ Imp 工具效率低的問題,其加強了數(shù)據(jù)的并行處理能力,并支持暫停和遠(yuǎn)端操作,大幅提高了數(shù)據(jù)遷移的效率,缺點是數(shù)據(jù)遷移時同樣需要停機操作。
RMAN 能備份整個數(shù)據(jù)庫或數(shù)據(jù)庫部件,且支持DATABLOCK 方式導(dǎo)入,但只用于Oracle 8 或更高版本,且跨Oracle 版本的支持較差。
GoldenGate 是一種非插入性的基于日志的結(jié)構(gòu)化數(shù)據(jù)復(fù)制軟件,它通過解析源數(shù)據(jù)庫的日志獲得數(shù)據(jù)的增刪改變化,再將這些變化應(yīng)用到目標(biāo)數(shù)據(jù)庫,實現(xiàn)源數(shù)據(jù)庫與目標(biāo)數(shù)據(jù)庫同步、雙活。其優(yōu)點是不影響業(yè)務(wù)數(shù)據(jù),可同步遷移,支持異構(gòu),且與EXP /EXPDP 結(jié)合使用效果良好,缺點是主機和存儲都要雙份,使用其軟件會產(chǎn)生一定費用。
3 數(shù)據(jù)遷移的風(fēng)險
數(shù)據(jù)遷移遇到最大的風(fēng)險首先是數(shù)據(jù)丟失。例如,物理遷移中設(shè)備在搬遷過程中損壞,導(dǎo)致備份數(shù)據(jù)丟失等。
其次是數(shù)據(jù)完整性的問題。一方面是數(shù)據(jù)字段在源系統(tǒng)和目標(biāo)系統(tǒng)的不一致,用戶訪問權(quán)限不足等問題,導(dǎo)致數(shù)據(jù)遷移到新設(shè)備后查找不到;另一方面是在數(shù)據(jù)遷移過程中短時間出現(xiàn)故障導(dǎo)致數(shù)據(jù)丟失,這需要遷移數(shù)據(jù)后進行數(shù)據(jù)校驗的工作[2] 。
最后是長時間停機影響系統(tǒng)業(yè)務(wù)的辦理。其風(fēng)險來源于未能在計劃時間內(nèi)完成數(shù)據(jù)遷移,導(dǎo)致長時間停機,影響到業(yè)務(wù)的辦理。所以遷移所需的時間和設(shè)備要適當(dāng)做好冗余,才能在計劃時間內(nèi)順利完成。數(shù)據(jù)遷移必然會存在一定的安全風(fēng)險,因此搬遷方案的制定要謹(jǐn)慎,遷移策略要合理,遷移計劃要有冗余,才能把風(fēng)險降到最低。
4 數(shù)據(jù)遷移案例
4.1 當(dāng)前現(xiàn)狀
某單位管理和運維部門涉及全市數(shù)據(jù)的相關(guān)業(yè)務(wù)系統(tǒng),其數(shù)據(jù)中心運行的系統(tǒng)眾多、數(shù)據(jù)量大、業(yè)務(wù)增量大,存在較大的運維風(fēng)險。目前業(yè)務(wù)系統(tǒng)存儲已經(jīng)出現(xiàn)了無法完整備份、空間不夠隨時需要擴容、鏡像備份許可不足、數(shù)據(jù)庫效率低下,前端反應(yīng)慢等問題。當(dāng)發(fā)生存儲故障時,要進行空間緊急擴展,如果不盡快進行遷移、擴容、優(yōu)化和運維保障,系統(tǒng)隨時可能出現(xiàn)故障,后果極為嚴(yán)重。因此,該單位決定在數(shù)據(jù)中心搬遷的同時,進行數(shù)據(jù)的遷移、擴容等。
數(shù)據(jù)存儲主要由2 臺小型機和HDS 存儲構(gòu)成。每臺小型機劃分為2 個物理分區(qū),除了上述設(shè)備還有Oracle 數(shù)據(jù)庫,可用于檔案查詢、鏡像備份、數(shù)據(jù)驗證。HDS 存儲陣列處于系統(tǒng)的核心位置,核心數(shù)據(jù)都存儲在HDS 存儲上。宏杉存儲作為備用磁盤陣列使用。
4.2 遷移方案
借遷移的機會對整體系統(tǒng)進行優(yōu)化。根據(jù)實際情況該方案選擇使用GoldenGate 進行數(shù)據(jù)遷移。在新機房中,先利用現(xiàn)有的2 臺IBM 小型機及新購的HDS 存儲完成Oracle 數(shù)據(jù)庫的配置,然后將所有數(shù)據(jù)同步到新機房的新數(shù)據(jù)庫中。在新系統(tǒng)運行穩(wěn)定后,停止舊系統(tǒng),將舊HDS 存儲搬遷到新機房中,與新HDS 構(gòu)成雙存儲冗余配置。將宏杉存儲和飛康CDP 作為同城異地的災(zāi)備系統(tǒng)使用,以提高數(shù)據(jù)的安全性。
(1)通過現(xiàn)行構(gòu)建新業(yè)務(wù)系統(tǒng)基礎(chǔ)平臺,進行新舊系統(tǒng)的數(shù)據(jù)同步鏡像,在此基礎(chǔ)上進行各種業(yè)務(wù)測試和數(shù)據(jù)校驗,可以將短期遷移和架構(gòu)調(diào)整的風(fēng)險降到最低,甚至完全消除。
(2)通過新舊2 臺HDS 存儲進行冗余配置和設(shè)置Oracle ASM 的冗余磁盤組,可以完全實現(xiàn)高效、安全和無縫切換的磁盤冗余,任何一個磁盤陣列崩潰,數(shù)據(jù)庫可以自動漂移到另外一個陣列,客戶端完全不受影響。相較而言,如果現(xiàn)有架構(gòu)、HDS 磁盤陣列崩潰,宏杉存儲接管,中間必然會有較長時間的切換過程,少則2 小時,多則數(shù)天。同時,2 臺磁盤陣列相互鏡像比數(shù)據(jù)在同一個陣列上備份更安全。
(3)將宏杉存儲和飛康CDP 部署在災(zāi)備機房,能夠?qū)崿F(xiàn)同城災(zāi)備保護,從而進一步提升交易系統(tǒng)的安全性。
4.3 遷移實現(xiàn)過程
(1)首先購買1 臺新的HDS 存儲設(shè)備并將其部署于新機房中,將新的HDS 存儲設(shè)備作為新系統(tǒng)的核心存儲設(shè)備。
(2)將新購的2 臺IBM 小型機搬遷到新機房中,并將其作為新系統(tǒng)的數(shù)據(jù)庫服務(wù)器。2 臺小型機都配置Oracle _闖抇_磼_L11g 數(shù)據(jù)庫。每臺小型機分2 個物理分區(qū),兩兩組成RAC(A1 分區(qū)和B1 分區(qū)組成RAC,A2 分區(qū)和B2 分區(qū)組成RAC)。配置Oracle 數(shù)據(jù)庫,設(shè)置DATABLOCK_SIZE 參數(shù)為8KB。按照業(yè)務(wù)規(guī)則創(chuàng)建相應(yīng)的表空間,以存儲不同時期的分區(qū)數(shù)據(jù),提升查詢效率。
(3)使用數(shù)據(jù)同步工具將舊業(yè)務(wù)系統(tǒng)數(shù)據(jù)庫同步到新數(shù)據(jù)庫中,并進行數(shù)據(jù)校驗、業(yè)務(wù)驗證。
(4)在完成相關(guān)測試的情況下,將業(yè)務(wù)系統(tǒng)切換到新機房和新系統(tǒng),實現(xiàn)平滑過渡。新舊機房、系統(tǒng)切換時間不超過8 小時。
(5)運行一段時間(至少一個月)后,將舊機房內(nèi)的HDS 存儲下架、搬遷到新機房中,重新配置磁盤組,與后加入新系統(tǒng)數(shù)據(jù)庫的ASM 實現(xiàn)在線ASM 磁盤組冗余配置。
(6)將現(xiàn)有的飛康CDP 鏡像備份系統(tǒng)進行重新配置,并對新系統(tǒng)的HDS 磁盤陣列進行鏡像備份。
(7)對備份功能和恢復(fù)功能進行測試,以確保各項功能正常。
(8)對新系統(tǒng)的數(shù)據(jù)庫進行跟蹤優(yōu)化和日常運維管理,以減少故障點,提高運行效率。
5 ORACLE 數(shù)據(jù)庫在數(shù)據(jù)遷移后的維護優(yōu)化
5.1 檢查數(shù)據(jù)庫文件和進程運行情況
數(shù)據(jù)庫內(nèi)存儲的文件狀態(tài)是反映系統(tǒng)穩(wěn)定性的主要指標(biāo),需要在日常維護階段定期檢查確定文件狀態(tài),判斷文件是否異常。若出現(xiàn)問題,則管理員應(yīng)及時上報并采取針對性技術(shù)進行阻止或化解,如迅速找尋攻擊對象、備份數(shù)據(jù)。在日常檢查中常見的異常情況包含“表空間不足”,因此有必要及時拓展表空間,恢復(fù)文件和數(shù)據(jù)[3] 。同時,需要及時檢查數(shù)據(jù)庫進程,對于規(guī)定時間內(nèi)的數(shù)據(jù)處理任務(wù),需檢查其運行結(jié)果和工作進程,若未按時完成操作,則有必要查詢異常原因。例如,Oracle 數(shù)據(jù)庫運行中出現(xiàn)不同等級報錯信息,應(yīng)針對特定對象進行檢查,為后續(xù)項目維護提供數(shù)據(jù)支持。
5.2 排查日志文件
系統(tǒng)日常維護階段需要仔細(xì)排查日志文件,即警告日志,其中包含Oracle 數(shù)據(jù)庫在實際運行階段的多項問題。這些內(nèi)容雖然不會在短期內(nèi)對系統(tǒng)工作造成影響,但仍需要長期監(jiān)測,不斷更新優(yōu)化文件,防止后續(xù)出現(xiàn)嚴(yán)重問題。例如,Oracle 數(shù)據(jù)庫的運行階段,其日志文件內(nèi)會積攢部分警告文件,管理員可以定期查看alert_SID.log,其中會包含以下內(nèi)容:Oracle 數(shù)據(jù)庫的開閉時間記錄、切換失敗過程、數(shù)據(jù)文件擴充、創(chuàng)建表空間記錄、系統(tǒng)報錯(ORA?600 內(nèi)部文件錯誤)。因此,管理員有必要定期檢查日志文件,結(jié)合報錯信息進行針對性優(yōu)化。例如,開閉參數(shù)報錯時,查找初始化參數(shù)的記錄。如果報錯原因是操作未完成、檢查點提前歸檔等,需要重新形成日志文件,提升歸檔速率。此外,若非管理人員惡意刪除表空間,管理員應(yīng)及時查找操作ID,限制其操作權(quán)限,并重置密碼。
5.3 對數(shù)據(jù)庫系統(tǒng)進行性能檢測
在日常維護工作中,需要對數(shù)據(jù)庫的運行性能進行測試,以便找尋故障,提升系統(tǒng)的運行速率。在借助Statspack、AWR 報告開展系統(tǒng)分析工作時,可以得到對應(yīng)的歷史狀態(tài)數(shù)據(jù)。此報告主要通過采集歷史信息完成分析,具有一定的滯后性,需要針對服務(wù)器參數(shù)、數(shù)據(jù)庫核心性能開展實時監(jiān)測工作。
5.4 數(shù)據(jù)備份
數(shù)據(jù)庫備份可以防止系統(tǒng)出現(xiàn)故障( 數(shù)據(jù)損毀、丟失),快速完成數(shù)據(jù)恢復(fù),提升數(shù)據(jù)保護水平。數(shù)據(jù)庫備份過程主要包含物理和邏輯2 種模式,其中物理備份的基本單元是磁盤塊,借助該結(jié)果拷貝數(shù)據(jù),通過物理模式恢復(fù)初始存儲特征。物理備份劃分為熱備份和冷備份。邏輯備份主要單位是數(shù)據(jù)文件,能夠生成數(shù)據(jù)映像,實現(xiàn)數(shù)據(jù)的邏輯恢復(fù)。常見的Oracle 數(shù)據(jù)庫邏輯備份工具包含exp/ imp,expdp/ impdp 數(shù)據(jù)泵,可以靈活高效地進行數(shù)據(jù)恢復(fù)和備份。此外,在許多企業(yè)的Oracle 數(shù)據(jù)庫備份工作中常常應(yīng)用RMAN 軟件,其具有較高的自動化數(shù)據(jù)管理能力。因此,在日常運維優(yōu)化階段,管理員需要將物理和邏輯備份方式充分結(jié)合,依托RMAN 工具,借助自動化腳本模式,定期備份控制文件、數(shù)據(jù)文件、參數(shù)文件、日志文件,并將備份數(shù)據(jù)存儲到多個磁盤內(nèi),構(gòu)建專業(yè)的磁盤存儲環(huán)境,提升備份可行性。
5.5 處理數(shù)據(jù)庫壞塊
若在Oracle 數(shù)據(jù)庫日常維護階段遇到數(shù)據(jù)壞塊,能夠從警告日志文件中及時查找對應(yīng)信息。不過若想精確判斷其是否為壞塊,管理員需要借助排除法開展工作,具體內(nèi)容如下。首先,定位發(fā)生壞塊問題的區(qū)域或?qū)ο?,設(shè)置針對性的解決方式。其次,刪除并重建表空間,查看數(shù)據(jù)庫備份情況,借助備份文件恢復(fù)數(shù)據(jù)。若出現(xiàn)表空間內(nèi)缺少數(shù)據(jù)的問題,則需要人工復(fù)制數(shù)據(jù)庫初始記錄,重新構(gòu)建表空間。最后,標(biāo)注壞塊主體,將表中其他數(shù)據(jù)存儲到另一種表內(nèi),刪除故障表,生成對應(yīng)索引。
5.6 優(yōu)化數(shù)據(jù)庫系統(tǒng)
在日常維護和數(shù)據(jù)庫系統(tǒng)優(yōu)化工作中,需要關(guān)注以下內(nèi)容。第一,科學(xué)配置存儲空間,提升內(nèi)部空間、表空間的參數(shù)設(shè)置水平。第二,降低輸出、輸入次數(shù),減少系統(tǒng)交互頻率,降低CPU 的實際運行負(fù)擔(dān),優(yōu)化Oracle 數(shù)據(jù)庫系統(tǒng)性能,避免不必要的資源消耗。第三,科學(xué)設(shè)置環(huán)境參數(shù),提高環(huán)境利用功率,加快等待程序運行,避免鎖存器沖突。因此,有必要進行數(shù)據(jù)的分頁處理、構(gòu)建索引。在調(diào)用SQL 語句時,只顯示特定字段,優(yōu)化Oracle 數(shù)據(jù)庫系統(tǒng)性能,在確保數(shù)據(jù)安全的基礎(chǔ)上,提升系統(tǒng)性能。
6 結(jié)束語
不同的數(shù)據(jù)遷移方法有不同的特點,適用于不同的數(shù)據(jù)遷移需求。數(shù)據(jù)量小且可停機操作的業(yè)務(wù)系統(tǒng),可采用Exp/ Imp 工具、Expdp/ Impdp 工具;若數(shù)據(jù)遷移需在不停機情況下進行, 則可優(yōu)先使用GOLDENGATE 技術(shù)。數(shù)據(jù)中心的遷移是個系統(tǒng)性工程,因此要制定一個科學(xué)有效的數(shù)據(jù)遷移方案,才能保證數(shù)據(jù)的完整性和安全性。實踐證明,選擇一種相對切實可行的方案有利于提高數(shù)據(jù)遷移的速度和質(zhì)量,進而提高其安全性和可靠性。
參考文獻:
[1] 徐靈均.?dāng)?shù)據(jù)遷移技術(shù)及其應(yīng)用[D].南京:南京理工大學(xué),2013.
[2] 王剛,王冬,李文,等.大數(shù)據(jù)環(huán)境下的數(shù)據(jù)遷移技術(shù)研究[J].微型電腦應(yīng)用,2013,30(5):1?3.
[3] 陸葉杉.系統(tǒng)數(shù)據(jù)遷移常見問題及案例分析[J].計算機科學(xué),2019,46(S1):412?416.
作者簡介:
蘇婷(1987—),本科,工程師,研究方向:計算機科學(xué)與技術(shù)、數(shù)據(jù)庫管理。