李雪鋒+陳麗榮+陳潔
摘 要:本文研究數(shù)字化校園核心數(shù)據(jù)庫升級問題,主要涉及升級方案確定、升級實踐、應急保障方案、備份保障機制等。通過對比分析,確定服務器、操作系統(tǒng)、集群與存儲管理軟件、數(shù)據(jù)庫版本等多個層面升級方案。升級前進行充分的模擬測試,及時發(fā)現(xiàn)并解決問題,為數(shù)據(jù)庫升級掃清障礙。以服務器、操作系統(tǒng)、集群與存儲管理軟件升級為基礎(chǔ),利用oracle自帶的數(shù)據(jù)泵工具,合理規(guī)劃升級時間,在節(jié)奏可控的方式下實現(xiàn)oracle實時應用集群模式升級。升級后從數(shù)據(jù)庫層面與業(yè)務層面對數(shù)據(jù)進行校驗,保障遷移前后數(shù)據(jù)的一致性。制定應急保障措施和備份保障機制,保障數(shù)據(jù)庫系統(tǒng)正常運行,進一步提高業(yè)務系統(tǒng)數(shù)據(jù)的可用性和安全性。
關(guān)鍵詞:數(shù)據(jù)泵;Oracle實時應用集群;數(shù)據(jù)安全;數(shù)據(jù)遷移
中圖分類號:G647 文獻標志碼:A 文章編號:1673-8454(2017)15-0052-07
一、建設(shè)背景
隨著信息化迅猛發(fā)展,信息化建設(shè)過程中諸多問題日益凸顯,如缺少統(tǒng)一應用平臺,信息孤島現(xiàn)象嚴重;數(shù)據(jù)標準不統(tǒng)一,不利于數(shù)據(jù)共享;缺乏相應的信息標準和管理規(guī)范;業(yè)務系統(tǒng)不完善,無法為全校師生提供全方位服務等等。華東師范大學于2002年啟動了數(shù)字化校園公共數(shù)據(jù)庫系統(tǒng)建設(shè)項目,公共數(shù)據(jù)庫系統(tǒng)是學校的一個高層應用平臺,通過統(tǒng)一門戶網(wǎng)站形式,集成了校級核心業(yè)務系統(tǒng),如辦公自動化系統(tǒng)、研究生系統(tǒng)、人事系統(tǒng)、繼續(xù)教育系統(tǒng)、黨群系統(tǒng)、教務系統(tǒng)、后勤系統(tǒng)、科研系統(tǒng)等。通過統(tǒng)一身份認證方式,實現(xiàn)門戶網(wǎng)站一次登錄便可訪問所有集成應用服務。同時建立核心數(shù)據(jù)庫模式,用于存放校級業(yè)務系統(tǒng)數(shù)據(jù),實現(xiàn)業(yè)務數(shù)據(jù)的集中管理和共享。公共數(shù)據(jù)庫系統(tǒng)在學校信息化進程中具有十分重要的意義,服務于學校教學、科研、管理和生活等各個方面,有利于進一步提升學校核心競爭力。[1-3]公共數(shù)據(jù)庫系統(tǒng)體系結(jié)構(gòu)如圖1所示。
目前,我校數(shù)字化校園公共數(shù)據(jù)庫系統(tǒng)的核心數(shù)據(jù)庫采用oracle10g RAC,承載數(shù)據(jù)庫的服務器采用的是兩臺Oracle M5000小型機,操作系統(tǒng)為Solaris 10版本,集群和存儲管理軟件采用的是Veritas Storage Foundation for RAC 5.0 Mp3。當前存在的主要問題:一是支撐核心數(shù)據(jù)庫的兩臺M5000小型機運行超過六年,設(shè)備老化,維護成本高,且CPU處理能力、內(nèi)存等方面性能已經(jīng)落后于學校信息化建設(shè)的步調(diào),系統(tǒng)穩(wěn)定性存在較大風險,存在嚴重的安全隱患;二是核心數(shù)據(jù)庫版本為Oracle10g RAC,且10G版本的主要支持和擴展支持都已結(jié)束,官方不再對新的問題提供支持服務,嚴重影響數(shù)據(jù)庫安全。綜合考慮,核心數(shù)據(jù)庫升級勢在必行。
二、升級方案確定
本次升級將實現(xiàn)由現(xiàn)有的“Oracle M5000+Solaris10.2+SFRAC5.0 Mp3+Oracle10.2.0.4RAC”升級到“oracle M10-4+Solaris11.3+Grid11.2.0.4+Oracle11.2.0.4RAC”。通過購置兩臺新的小型機Oracle M10-4[4]來替換兩臺老的Oracle M5000,采用小型機專有的solaris系統(tǒng)[5],利用Oracle自身的集群和存儲管理軟件Grid infrastructure替換第三方賽門鐵克SFRAC[6],并通過數(shù)據(jù)泵的方式來實現(xiàn)Oracle10g RAC到Oracle11g RAC[7-8]升級。
(一)服務器升級方案確定
支撐核心數(shù)據(jù)庫的小型機Oracle M5000由于運行時間過長,以及性能不能滿足學校信息化建設(shè)步伐,需要進行服務器升級。在升級選擇中,服務器類型需要考慮小型機還是x86服務器,操作系統(tǒng)類型需要考慮是unix、Linux還是Windows,最終我們選擇在小型機M10-4部署操作系統(tǒng)solaris方案,主要基于以下四點考慮。
1.軟硬件融合程度高。采用Oracle M10-4作為新的數(shù)據(jù)庫服務器,搭載特有Oraclesolaris操作系統(tǒng),運行Oracle數(shù)據(jù)庫。從服務器、操作系統(tǒng)到數(shù)據(jù)庫均由Oracle公司統(tǒng)一設(shè)計、研發(fā)、測試和生成,軟硬件融合度更好,提供一整套穩(wěn)定的解決方案,有利于數(shù)據(jù)庫性能極致發(fā)揮。
2.高級別的可靠性、可用性和可維護性(RAS)特性。作為公共數(shù)據(jù)庫系統(tǒng)的核心數(shù)據(jù)庫服務器,在可靠性、可用性和安全性等方面具有嚴苛的要求。Oracle M10-4延續(xù)大型機高標準的系統(tǒng)與部件設(shè)計技術(shù),具有大型機的RAS特性,如通過指令重試實現(xiàn)自動恢復、高達 2 TB 的系統(tǒng)內(nèi)存具有糾錯碼 (ECC) 保護功能并支持擴展 ECC、數(shù)據(jù)路徑完整性保證以及可配置的內(nèi)存鏡像等。此外,該服務器的磁盤、I/O 卡、電源和風扇采用冗余配置且可熱交換。Oracle M10-4能夠保證全年7X24正常運作,為關(guān)鍵業(yè)務提供實時、穩(wěn)定、安全服務。
3.性能優(yōu)勢。由于核心數(shù)據(jù)庫業(yè)務模型復雜,而且實時性高,主要是基于內(nèi)存的數(shù)據(jù)交換及基于多數(shù)據(jù)源的交易處理,因而對于響應速度及高并發(fā)具有很高的要求。Oracle M10-4采用多核多線程技術(shù)的SPARC 64 X處理器以及專用高速I/O通道,運行效率高,響應時間短,支持用戶高并發(fā),更快對業(yè)務請求進行處理。
4.可擴展性??紤]到公共數(shù)據(jù)庫系統(tǒng)是個不斷發(fā)展的系統(tǒng),無論是處理能力還是存儲的數(shù)據(jù)量都在不斷增長,因而需要數(shù)據(jù)庫服務器的伸縮性和升級能力強,以適應今后較長一段時間的業(yè)務需求。Oracle M10-4在CPU、內(nèi)存、I/O以及利用現(xiàn)有成熟的集群技術(shù)進行節(jié)點擴充等多個方面都具有良好的可擴展性。
(二)集群與存儲管理軟件升級方案確定
目前數(shù)據(jù)庫服務器運行的集群與存儲管理軟件是第三方賽門鐵克的SFRAC,在本次升級中,我們需要考慮集群與存儲管理軟件升級問題。在升級選擇中,是繼續(xù)使用第三方集群與管理軟件,還是使用oracle自身集群與管理軟件,我們最終確定使用Oracle自身的集群與管理軟件Grid infrastructure,主要基于以下三點考慮。
1.節(jié)省成本。在升級選擇中,我們采用Oracle自身的集群與管理軟件Grid infrastructure,無需再購買第三方集群與管理軟件。
2.兼容性好。Oracle公司對Grid infrastructure與Oracle數(shù)據(jù)庫進行統(tǒng)一設(shè)計、研發(fā)和調(diào)試等,實現(xiàn)兩者高度集成,有利于RAC穩(wěn)定性及高可用性。
3.易于管理與維護。即使使用第三方集群與存儲管理軟件,也需要安裝Oracle的集群軟件clusterware,這意味著第三方集群軟件只能代替clusterware的部分功能,因此采用Oracle自身的集群與管理軟件更易于管理和維護。
(三)oracle數(shù)據(jù)庫升級方案確定
當前數(shù)字化校園核心數(shù)據(jù)庫版本為Oracle10G RAC,且10G版本的主要支持和擴展支持都已結(jié)束,官方不再對新的問題提供支持服務,嚴重影響數(shù)據(jù)庫安全。我們采用數(shù)據(jù)泵(expdp/impdp)方式來實現(xiàn)Oracle10.2.0.4RAC到Oracle11.2.0.4 RAC升級,主要基于以下四點考慮。
1.升級速度快。數(shù)據(jù)泵是Oracle10g新引入的數(shù)據(jù)遷移工具,是傳統(tǒng)exp/imp的擴展集,支持并行模式,多線程同時進行數(shù)據(jù)操作,導入導出速度更快,有利于減少停機時間,及時恢復公共數(shù)據(jù)庫系統(tǒng)的運行。
2.可操作性強。數(shù)據(jù)泵作為一種任務來運行與管理,任務可以進行控制、暫停、重新開始、終止、并行數(shù)修改及后臺自動運行等操作。此外,可以通過Exclude與Include支持選擇部分對象來處理,通過FLASHBACK_TIME參數(shù)將某一時刻的一致性數(shù)據(jù)取出,通過ESTIMATE參數(shù)根據(jù)分配的塊或統(tǒng)計信息進行空間估計等等。在升級過程中,我們還可以通過調(diào)用STATUS實時察看任務的工作狀態(tài),可以了解到每個業(yè)務線程的狀態(tài)、當前正在處理的對象和完成的百分比以及詳細的工作進度和錯誤,保證升級的順利進行。
3.升級風險低。本次采用Oracle11g作為最終升級版本,考慮到數(shù)字化校園的業(yè)務系統(tǒng)主要基于Oracle10g開發(fā),如果跨版本直接升級到Oracle12c,會存在比較大的代碼調(diào)整與兼容性問題,采用Oracle11g風險相對較低。
4.穩(wěn)定性與性能提升。Oracle11g相對于Oracle10g而言,性能與穩(wěn)定性進一步提升,如擴展Oracle網(wǎng)格計算功能來實現(xiàn)IT資源有效利用、新增故障診斷功能更利于問題解決等等。
三、核心數(shù)據(jù)庫升級實踐
本節(jié)詳細描述了核心數(shù)據(jù)庫升級實踐,主要涉及升級前的模擬測試、升級具體操作、升級后的數(shù)據(jù)驗證等。模擬測試為數(shù)據(jù)庫升級的可行性提供依據(jù),作為存放校級業(yè)務系統(tǒng)數(shù)據(jù)的核心數(shù)據(jù)庫,在升級前需要進行充分的測試,及時發(fā)現(xiàn)并解決問題,合理規(guī)劃升級時間,為數(shù)據(jù)庫升級掃清障礙。在升級具體操作中,需要在兩臺M10-4上進行數(shù)據(jù)庫實時應用集群部署實施,通過數(shù)據(jù)泵方式完成老數(shù)據(jù)庫到新數(shù)據(jù)庫的數(shù)據(jù)遷移工作。在完成數(shù)據(jù)遷移之后,為了保障升級前后數(shù)據(jù)的一致性,分別從數(shù)據(jù)庫和業(yè)務系統(tǒng)兩個層面進行數(shù)據(jù)校驗,保障在新數(shù)據(jù)庫環(huán)境下業(yè)務系統(tǒng)能夠高效穩(wěn)定地運作。
(一)升級模擬測試
本次升級主要內(nèi)容涉及服務器、操作系統(tǒng)、集群與存儲管理軟件以及數(shù)據(jù)庫版本等多個方面。從業(yè)務數(shù)據(jù)角度分析,使用數(shù)據(jù)泵進行數(shù)據(jù)遷移過程中可能會出現(xiàn)數(shù)據(jù)丟失、數(shù)據(jù)不一致或數(shù)據(jù)不完整等問題。從業(yè)務系統(tǒng)角度分析,公共數(shù)據(jù)庫系統(tǒng)主要基于Oracle 10g開發(fā)與測試,在Oracle 11g并沒有進行過相關(guān)功能測試??紤]到Oracle11g與Oracle10g的差別,如Oracle部分函數(shù)語句在10G和11G上運行時輸出可能不一致等,系統(tǒng)在Oracle 11g上運行時可能存在一定的代碼調(diào)整和兼容性問題。因此,必須進行充分的測試,及時發(fā)現(xiàn)問題并解決問題,保障核心數(shù)據(jù)庫升級工作順利進行。
我們搭建一個獨立于生產(chǎn)環(huán)境的作業(yè)環(huán)境進行測試工作。在M10-4上部署Oracle11g RAC,并通過數(shù)據(jù)泵的方式將生產(chǎn)數(shù)據(jù)庫的數(shù)據(jù)導入到新搭建測試數(shù)據(jù)庫中,并進行生產(chǎn)數(shù)據(jù)庫與測試數(shù)據(jù)庫的數(shù)據(jù)驗證,關(guān)于這部分主要內(nèi)容將在接下來的升級具體實施和升級后數(shù)據(jù)驗證中進行詳細闡述。數(shù)據(jù)庫測試環(huán)境搭建完成之后,我們需要搭建相關(guān)業(yè)務系統(tǒng)測試環(huán)境。為了保證測試的有效性,我們需要業(yè)務測試環(huán)境與生產(chǎn)環(huán)境配置保持一致,如cpu、內(nèi)存、操作系統(tǒng)、中間件等。業(yè)務測試環(huán)境搭建的具體流程如下。
(1)為業(yè)務系統(tǒng)配置相關(guān)虛擬機,用于部署業(yè)務系統(tǒng)。
(2)在業(yè)務虛擬機上安裝配置相關(guān)的發(fā)布服務器,如weblogic、tomcat等,用于提供業(yè)務發(fā)布。
(3)在生產(chǎn)環(huán)境中將業(yè)務系統(tǒng)進行打包,將打包文件傳送到測試虛擬機上進行部署。如操作系統(tǒng)為Linux的業(yè)務,我們使用tar命令來將業(yè)務系統(tǒng)打包,通過scp命令將其傳輸?shù)綔y試環(huán)境中。
(4)在測試環(huán)境中,配置測試數(shù)據(jù)源,通過防火墻,來阻斷與生產(chǎn)數(shù)據(jù)庫的服務請求,保證數(shù)據(jù)源為測試環(huán)境數(shù)據(jù)庫。
(5)啟動發(fā)布服務器,進行業(yè)務發(fā)布及相關(guān)業(yè)務功能模塊測試工作。
模擬測試工作是保障核心數(shù)據(jù)庫順利升級的前提與關(guān)鍵。測試環(huán)境部署完成后,組織人員對業(yè)務系統(tǒng)功能進行測試,如查詢、修改、刪除、增加、導入、導出、報表等功能,采用多人輪流測試方式,確保系統(tǒng)的每一項功能都能測試通過。經(jīng)過兩個多月的測試,記錄并解決在測試過程中出現(xiàn)的問題,業(yè)務系統(tǒng)在測試環(huán)境中運行穩(wěn)定。通過模擬測試,有利于升級中問題的發(fā)現(xiàn)與解決,合理規(guī)劃升級所需時間,把控升級節(jié)奏,保障升級工作的順利進行。
(1)問題發(fā)現(xiàn)與解決。通過模擬測試,我們可以及時發(fā)現(xiàn)數(shù)據(jù)遷移過程中以及在新數(shù)據(jù)庫下業(yè)務系統(tǒng)可能出現(xiàn)的問題,有充足的時間對出現(xiàn)的問題進行處理,為數(shù)據(jù)庫正式升級掃清障礙,保證升級的順利進行。
(2)升級時間確定。通過模擬測試,可以對整個項目各個環(huán)節(jié)進行時間統(tǒng)計,確定數(shù)據(jù)庫正式升級所需要的時間。
(3)升級節(jié)奏的可控性。通過對整個升級項目的模擬測試,記錄測試中出現(xiàn)的問題及解決方法,明確具體操作過程和步驟,可以有效地把控數(shù)據(jù)庫的升級節(jié)奏,降低升級過程中出現(xiàn)未知問題的風險。
(二)升級具體實施
1.Oracle11g RAC 部署實施
(1)環(huán)境準備
在進行Oracle11g RAC安裝之前,需要進行以下五個方面的準備工作。
a.將兩臺新購置的Oracle M10-4上架并加電測試,通過網(wǎng)絡(luò)及光纖跳線將小型機M10-4接入現(xiàn)有的網(wǎng)絡(luò)拓撲中,如圖2所示。
b.存儲規(guī)劃。在EMC vplex存儲系統(tǒng)上為數(shù)據(jù)庫提供vplex共享存儲,實現(xiàn)存儲層面異地雙活容錯。[9]劃分3塊10G大小的磁盤,用于配置GRIDDG磁盤組,存放OCR和voting disk;4塊500G的磁盤,用于配置DATA磁盤組,存放數(shù)據(jù)庫;1塊1T的磁盤,用于配置FLASH磁盤組,作為恢復區(qū);配置1塊1T的磁盤,掛載到第一個節(jié)點目錄/DATABACK,存放每天邏輯備份。
c.網(wǎng)絡(luò)規(guī)劃。M10-4配置了4塊PCI-E千兆網(wǎng)卡,通過配置ipmp方式實現(xiàn)網(wǎng)絡(luò)冗余功能,將net1和net2綁定為ipmp0,作為Oracle RAC的公有地址,用于提供外部服務;將net3和net4綁定為ipmp1,作為Oracle RAC的私有地址,用于集群心跳通信。從Oracle11Gr2開始,在原有的私有IP、公有IP及浮動IP的基礎(chǔ)上引入了SCAN IP。SCAN是位于數(shù)據(jù)庫和客戶端之間的虛擬服務層,當有客戶端請求時,通過SCAN IP 監(jiān)聽,連接到后臺集群數(shù)據(jù)庫,實現(xiàn)負載均衡。
d.操作系統(tǒng)安裝配置。在兩臺M10-4上安裝配置最新版solaris11.3操作系統(tǒng),在安裝配置過程中,主要涉及管理模塊配置、鍵盤選擇、系統(tǒng)語言選擇、磁盤分區(qū)配置、時區(qū)位置選擇、時間同步協(xié)議配置、多路徑功能配置、DNS配置、主機名配置、IP地址配置、solaris內(nèi)核參數(shù)調(diào)整、shell配置、root用戶遠程登錄配置、文件上傳權(quán)限設(shè)置、hosts文件配置等。
e.數(shù)據(jù)庫前期配置。在安裝數(shù)據(jù)庫實時應用集群的兩個節(jié)點上進行數(shù)據(jù)庫安裝前相關(guān)配置,主要涉及Oracle與grid用戶配置、Oracle與grid所屬組配置、Oracle與grid用戶家目錄配置、Oracle與grid用戶基目錄配置、Oracle與grid用戶無秘鑰通信配置、數(shù)據(jù)庫名配置、數(shù)據(jù)庫實例配置、ASM實例配置、服務名配置等。
(2)Oracle11g RAC安裝配置
環(huán)境準備完善之后,接下來就需要進行Oracle11g RAC安裝配置,主要涉及Grid infrastructure安裝配置、Oracle軟件安裝配置及RAC數(shù)據(jù)庫創(chuàng)建與配置等。
a.Grid infrastructure安裝配置
本次升級中,針對集群與存儲管理軟件,我們使用Oracle自身的集群與管理軟件Grid infrastructure來代替第三方賽門鐵克SFRAC。Grid infrastructure主要包括兩個重要組件——Clusterware集群管理軟件和ASM存儲管理軟件。Clusterware集群管理軟件將RAC中的所有節(jié)點融合成一個整體,提供RAC穩(wěn)定運行環(huán)境及高可用性保障。ASM存儲管理軟件以裸設(shè)備為基礎(chǔ),可以自動管理磁盤組并提供有效的數(shù)據(jù)冗余功能。我們以grid用戶來進行Grid infrastructure安裝配置,主要涉及安裝選項及類型選擇、產(chǎn)品語言選擇、網(wǎng)格即插即用信息配置、集群節(jié)點配置、scan名稱和端口配置、集群節(jié)點添加、公共與私有網(wǎng)絡(luò)配置、ASM存儲配置、ASM磁盤組配置、ASM口令設(shè)置、操作系統(tǒng)組選擇等。在安裝配置過程中,有以下三點需要注意。①在安裝和配置集群的網(wǎng)絡(luò)基礎(chǔ)結(jié)構(gòu)中,我們需要選擇“高級安裝”模式,來進行高級配置。②創(chuàng)建ASM磁盤組中,涉及三種冗余方式——外部冗余、普通冗余及高冗余。外部冗余是指ASM不提供數(shù)據(jù)冗余,有效磁盤空間是所有磁盤設(shè)備的大小之和;普通冗余是指ASM提供兩份冗余,有效磁盤空間是所有磁盤設(shè)備大小的一半;高冗余是指ASM提供三份冗余,有效磁盤空間是所有磁盤設(shè)備大小的三分之一。③在安裝過程中會彈出一個提示框,要求在每個節(jié)點上以root身份去執(zhí)行腳本orainstRoot.sh和root.sh,先在安裝軟件的本節(jié)點上執(zhí)行完,然后再到集群其他節(jié)點運行,執(zhí)行完畢之后,回到圖形化界面確定繼續(xù)安裝。
b.Oracle軟件安裝
我們以O(shè)racle用戶來圖形化安裝Oracle軟件,主要涉及安全更新配置、安裝類型選擇、數(shù)據(jù)庫安裝類型配置、產(chǎn)品語言選擇、數(shù)據(jù)庫版本選擇、Oracle主目錄與基目錄配置、數(shù)據(jù)庫管理員與操作者組配置等。在Oracle軟件安裝過程中,有以下兩點需要注意。①在數(shù)據(jù)庫安裝類型配置中,需要選擇RAC數(shù)據(jù)庫安裝。②在安裝過程中會彈出一個提示框,要求在每個節(jié)點上以root身份去執(zhí)行腳本root.sh,執(zhí)行完畢之后,回到圖形化界面確定來完成安裝。
c.RAC數(shù)據(jù)庫創(chuàng)建與配置
安裝好Oracle數(shù)據(jù)庫軟件后,接下來通過Oracle用戶進行RAC數(shù)據(jù)庫創(chuàng)建及配置工作,主要包括數(shù)據(jù)庫類型及模板選擇、全局數(shù)據(jù)庫配置、EM配置、自動維護配置、數(shù)據(jù)庫中用戶口令配置、數(shù)據(jù)庫文件存儲類型和位置選擇、快速恢復區(qū)配置、內(nèi)存(PGA和SGA)配置、連接到操作系統(tǒng)最大用戶進程數(shù)配置、字符集配置、連接模式配置、監(jiān)聽配置、重做日志配置、歸檔模式配置等。在RAC數(shù)據(jù)庫創(chuàng)建與配置過程中,有以下六點需要注意。①在字符集配置中,需要保持與老數(shù)據(jù)庫字符集一致,否則會導致老庫數(shù)據(jù)導入新庫中顯示亂碼。②關(guān)于內(nèi)存配置,設(shè)置PGA與SGA占物理內(nèi)存70%,操作系統(tǒng)占物理內(nèi)存30%。③數(shù)據(jù)庫最大連接數(shù)是指可以同時連接到數(shù)據(jù)庫的操作系統(tǒng)進程的最大數(shù)量,包括用戶進程和Oracle后臺進程,需要根據(jù)實際情況進行配置。④根據(jù)數(shù)據(jù)庫重做日志歸檔頻率及安全性考慮,每個節(jié)點配置5個重做日志組,每個重做日志組中包含兩個重做日志文件,每個文件100M。⑤從Oracle11gr2 RAC開始,基于rman進行備份時,要求快照控制文件必須能被所有節(jié)點訪問。默認情況下,快照控制文件僅能被本節(jié)點訪問。為解決這一問題,可以將快照控制文件放置在共享存儲上。⑥從Oracle11g開始,數(shù)據(jù)庫默認策略中設(shè)置了用戶密碼有效期180天。密碼過期后,會導致連接數(shù)據(jù)庫異常,影響業(yè)務使用。
2.數(shù)據(jù)遷移
我們采用的數(shù)據(jù)遷移方案就是利用數(shù)據(jù)泵在老數(shù)據(jù)庫上進行全庫導出,在新數(shù)據(jù)上,通過業(yè)務用戶對應方案的方式進行導入。最后為了降低對業(yè)務的影響,我們將新數(shù)據(jù)庫的IP地址修改為老數(shù)據(jù)庫地址。在數(shù)據(jù)遷移前需要停止公共數(shù)據(jù)庫系統(tǒng)的所有服務以及數(shù)據(jù)庫監(jiān)聽,切斷客戶端對數(shù)據(jù)庫的服務請求,并通過第三方備份軟件netvault對老數(shù)據(jù)庫進行一次全備,保證數(shù)據(jù)安全。在小型機M10-4上完成Oracle11g RAC部署之后,接下來我們通過數(shù)據(jù)泵方式將運行在M5000上數(shù)據(jù)庫Oracle10g RAC的數(shù)據(jù)遷移到運行在M10-4的數(shù)據(jù)庫Oracle11g RAC,具體操作如下。
(1)在老數(shù)據(jù)庫Oracle10g RAC和新數(shù)據(jù)庫Oracle11g RAC建立目錄對象并授權(quán)。在使用數(shù)據(jù)泵時,其導入導出文件只能存放在數(shù)據(jù)庫目錄對象對應的操作系統(tǒng)目錄中,不能直接放置在操作系統(tǒng)目錄。我們先以O(shè)racle用戶在操作系統(tǒng)創(chuàng)建目錄,然后在數(shù)據(jù)庫中以sys用戶創(chuàng)建目錄對象,建立與操作系統(tǒng)目錄關(guān)聯(lián),并對system用戶對該目錄對象操作授權(quán)。
(三)升級后數(shù)據(jù)驗證
在完成數(shù)據(jù)遷移之后,需要進行數(shù)據(jù)驗證工作。數(shù)據(jù)驗證是數(shù)據(jù)遷移完成后的重要環(huán)節(jié),是對遷移質(zhì)量的檢查,也是判斷業(yè)務系統(tǒng)能否正式提供服務的重要依據(jù)。我們將從兩個層面進行驗證工作:一是數(shù)據(jù)庫層面,進行老數(shù)據(jù)庫與新數(shù)據(jù)庫比對工作;二是業(yè)務系統(tǒng)層面,對各個業(yè)務系統(tǒng)進行功能、流程、性能、準確性等多角度測試。
1.數(shù)據(jù)庫層面
為了保障數(shù)據(jù)庫遷移前后數(shù)據(jù)的一致性,數(shù)據(jù)遷移完成后,我們從數(shù)據(jù)庫層面來進行老數(shù)據(jù)庫與新數(shù)據(jù)庫的比對工作。考慮到數(shù)據(jù)量比較大以及數(shù)據(jù)庫中的對象比較多,主要采取抽樣方式對數(shù)據(jù)庫中與業(yè)務系統(tǒng)相關(guān)的用戶、表、表空間、視圖、索引、同義詞、約束、序列、權(quán)限、角色、任務、dblink、觸發(fā)器、存儲過程、函數(shù)、包等進行名稱及數(shù)量比對。通過數(shù)據(jù)庫比對發(fā)現(xiàn),任務和dblink并沒有從老數(shù)據(jù)庫遷移到新數(shù)據(jù)庫中,需要通過手工方式重新建立任務和dblink。
2.業(yè)務系統(tǒng)層面
業(yè)務系統(tǒng)主要涉及辦公自動化系統(tǒng)、研究生系統(tǒng)、人事系統(tǒng)、繼續(xù)教育系統(tǒng)、黨群系統(tǒng)、教務系統(tǒng)、后勤系統(tǒng)、科研系統(tǒng)等。為了保證業(yè)務系統(tǒng)能夠正常提供服務,在完成數(shù)據(jù)庫比對后,需要進行業(yè)務系統(tǒng)相關(guān)測試工作。相關(guān)業(yè)務系統(tǒng)負責人對所管業(yè)務系統(tǒng)進行測試。業(yè)務功能測試:對每個業(yè)務系統(tǒng)具體功能進行測試,如查詢、修改、刪除、增加、導入、導出、報表等功能。業(yè)務流程測試:在完成各個業(yè)務系統(tǒng)基礎(chǔ)功能測試的基礎(chǔ)上,進行業(yè)務流程測試。業(yè)務流程測試:從用戶角度出發(fā),模擬用戶實際工作流程,測試業(yè)務系統(tǒng)完成相應業(yè)務的能力。業(yè)務性能測試:通過對關(guān)鍵業(yè)務查詢速度、業(yè)務系統(tǒng)響應能力等進行測試,檢驗系統(tǒng)性能。業(yè)務數(shù)據(jù)準確性測試:通過編寫檢查程序進行前后數(shù)據(jù)對比等等。通過測試驗證,在新數(shù)據(jù)庫環(huán)境下,業(yè)務系統(tǒng)能夠高效穩(wěn)定地運作。
四、應急保障方案
本次數(shù)字化校園核心數(shù)據(jù)庫升級存在許多風險點。一是數(shù)據(jù)一致性風險,采用數(shù)據(jù)泵方式進行業(yè)務數(shù)據(jù)遷移,盡管有詳細的數(shù)據(jù)一致性核查方案,但仍無法保證不會存在數(shù)據(jù)損壞和丟失的風險。二是Oracle數(shù)據(jù)庫版本風險,從Oracle10.0.2.4 RAC升級到Oracle11.0.2.4 RAC,盡管我們在升級前已經(jīng)進行很長時間的模擬測試,但在正式遷移后,也無法保證不會因版本導致問題的風險。三是業(yè)務風險,當我們將完成數(shù)據(jù)庫遷移后,新老數(shù)據(jù)抽樣比對沒有問題,但也無法保證業(yè)務系統(tǒng)能夠正常運作。或者業(yè)務可以運作,但一段時間后才發(fā)現(xiàn)存在一些數(shù)據(jù)問題或者數(shù)據(jù)庫自身異常,存在嚴重的業(yè)務風險。通過升級前的充分測試,盡管出現(xiàn)上述風險的概率極低,但是制定一套完善有效的應急保障方案對保證核心數(shù)據(jù)庫升級順利進行具有是十分重要的意義。主要從以下兩個方面制定相關(guān)的應急保障方案。
1.在業(yè)務并未正式對外提供服務之前,如果出現(xiàn)這幾種情況:新老數(shù)據(jù)庫關(guān)鍵數(shù)據(jù)驗證不一致,在規(guī)定時間仍然無法解決;或者關(guān)鍵數(shù)據(jù)驗證一致,但業(yè)務部分功能無法正常運作;新數(shù)據(jù)庫性能嚴重下降無法解決等等,必須進行回退操作,具體操作步驟如下。
(1)停止業(yè)務系統(tǒng),斷開新數(shù)據(jù)庫網(wǎng)絡(luò),保證新數(shù)據(jù)庫不再提供服務。
(2)將老數(shù)據(jù)庫接入網(wǎng)絡(luò),啟動數(shù)據(jù)庫相關(guān)服務。
(3)重新啟動業(yè)務系統(tǒng),進行業(yè)務相關(guān)測試,完成回退工作。由于新老數(shù)據(jù)庫采用配置一致的IP地址,所以對業(yè)務系統(tǒng)只需要進行重啟動作,無需做任何其他操作。
2.當業(yè)務正常運作一段時間后才發(fā)現(xiàn)存在嚴重數(shù)據(jù)問題無法解決或者數(shù)據(jù)庫嚴重異常時,必須進行回退操作,具體操作步驟如下。
(1)關(guān)閉業(yè)務系統(tǒng)、數(shù)據(jù)庫監(jiān)聽及重啟數(shù)據(jù)庫,保證新數(shù)據(jù)庫沒有服務請求,同時梳理并導出新增的業(yè)務數(shù)據(jù)。
(2)將老數(shù)據(jù)庫接入網(wǎng)絡(luò),啟動數(shù)據(jù)庫相關(guān)服務。同時將新增的數(shù)據(jù)導入到老數(shù)據(jù)庫中。
(3)重新啟動業(yè)務系統(tǒng),進行業(yè)務相關(guān)測試,完成回退工作。由于新老數(shù)據(jù)庫采用配置一致的IP地址及服務名,所以對業(yè)務系統(tǒng)只需要進行重啟動作,無需做任何其他操作。
五、備份保障機制
作為數(shù)字化校園公共數(shù)據(jù)庫系統(tǒng)的核心數(shù)據(jù)庫,存放校級業(yè)務系統(tǒng)數(shù)據(jù),如辦公自動化系統(tǒng)、研究生系統(tǒng)、人事系統(tǒng)、繼續(xù)教育系統(tǒng)、黨群系統(tǒng)、教務系統(tǒng)、后勤系統(tǒng)、科研系統(tǒng)等,實現(xiàn)業(yè)務數(shù)據(jù)的集中管理和共享。為了保障業(yè)務數(shù)據(jù)安全,防止由于數(shù)據(jù)文件損壞或者丟失、存儲設(shè)備故障等造成的數(shù)據(jù)庫系統(tǒng)崩潰,需要對數(shù)據(jù)庫進行備份,以便在數(shù)據(jù)庫崩潰時利用備份數(shù)據(jù)及時進行恢復,保障數(shù)據(jù)庫系統(tǒng)正常運行。在本次數(shù)據(jù)庫升級中,我們采用以下三種方式來保障數(shù)據(jù)庫安全。
(一)vplex同步異地容災機制
EMC vplex[10-11] 建立了一個統(tǒng)一的、整體部署的存儲異地容災的系統(tǒng)框架。通過存儲虛擬化技術(shù),將兩校區(qū)存儲統(tǒng)籌管理,實現(xiàn)數(shù)據(jù)層面的同步異地容災。在本次升級中,我們采用vplex存儲來配置磁盤組GRIDDG、DATA及FLASH,實現(xiàn)數(shù)據(jù)庫同步異地容災。
(二)數(shù)據(jù)泵邏輯備份機制
我們通過數(shù)據(jù)泵方式,利用solaris系統(tǒng)自帶的crontab定制計劃任務,對數(shù)據(jù)庫進行邏輯備份。如制訂一周備份計劃,每日凌晨3點進行備份,邏輯備份保留七份。
(三)netvault備份機制
第三方備份軟件netvault是基于rman進行備份,為進一步保障數(shù)據(jù)庫安全,我們通過第三方備份軟件netvault來將數(shù)據(jù)庫備份到DELL存儲上,實現(xiàn)備份數(shù)據(jù)與生產(chǎn)數(shù)據(jù)的分離,進一步保障數(shù)據(jù)庫安全。
六、結(jié)束語
數(shù)字化校園核心數(shù)據(jù)庫升級工作實現(xiàn)了服務器、操作系統(tǒng)、集群與存儲管理軟件、Oracle版本等多個方面的升級。通過在升級前進行充分的模擬測試,及時發(fā)現(xiàn)并解決問題,合理規(guī)劃升級所需時間,把控升級節(jié)奏,保障升級工作的順利進行。升級后從數(shù)據(jù)庫層面與業(yè)務層面對數(shù)據(jù)進行校驗,保障遷移前后數(shù)據(jù)的一致性。制定應急保障措施,以便在遷移后出現(xiàn)重大問題時,如關(guān)鍵數(shù)據(jù)不一致、業(yè)務系統(tǒng)無法使用、數(shù)據(jù)庫性能嚴重下降等,能夠及時進行回退操作,保障業(yè)務及時提供服務。通過備份保障機制,對數(shù)據(jù)庫進行備份,以便在數(shù)據(jù)庫崩潰時利用備份數(shù)據(jù)及時進行恢復,保障數(shù)據(jù)庫系統(tǒng)正常運行。升級工作完成后,經(jīng)過半年多的運行,核心數(shù)據(jù)庫運行穩(wěn)定,整體性能得到提升,達到預期目標。
參考文獻:
[1]任友群,程靜.用公共數(shù)據(jù)平臺成就高校信息化建設(shè)——華東師范大學信息化建設(shè)[J].教育信息化,2006(8):38-41.
[2]王婷婷,陳桂蘭.基于校園網(wǎng)的高校數(shù)據(jù)庫發(fā)展與展望[J].中國教育信息化,2012(23):25-27.
[3]趙春,盧蓓蓉.華東師范大學統(tǒng)籌規(guī)劃助力數(shù)據(jù)中心管理[J].中國教育網(wǎng)絡(luò),2012(10):31-33.
[4]Fujitsu M10.SPARC M10 系統(tǒng)操作和管理指南[EB/OL].http://www.fujitsu.com/global/documents/products/computing/servers/unix/sparc/downloads/manuals/zh/c120-e679-17zh.pdf.
[5]Oracle Solaris 11.3[EB/OL]. http://docs.oracle.com/cd/E53394_01/index.html.
[6]李雪鋒.華東師范大學業(yè)務系統(tǒng)數(shù)據(jù)遷移的實施[J].中國教育網(wǎng)絡(luò),2015(10):75-76.
[7](美)Bob Bryla著,薛焱譯.OCP認證考試指南(1Z0-053): Oracle Database 11g Administration II [M].北京:清華大學出版社,2010.3.
[8]Oracle11gR2 High Availability Best Practices[DB/OL].http://docs.oracle.com/cd/E11882_01/server.112/e10803/toc.htm.
[9]李雪鋒.多校區(qū)數(shù)據(jù)中心雙活容災方案研究[J].中國教育信息化,2015(9):59-61.
[10]Lab Validation Report: EMC?VPLEX?Metro and Geo[EB/OL].https://china.emc.com/collateral/analyst-reports/esg-lab-validation-emc-vplex.pdf.
[11]Provisioning with EMC?VPLEX?Integrated Array Services[EB/OL].https://china.emc.com/collateral/white-paper/h13049-provisioning-emc-vplex-integration.pdf.
(編輯:王天鵬)