趙凱 袁立華 山東省萊蕪市人民醫(yī)院,271100
醫(yī)院信息系統(tǒng)Oracle數(shù)據(jù)庫的備份方法
趙凱 袁立華 山東省萊蕪市人民醫(yī)院,271100
數(shù)據(jù)庫備份方案的好壞,可以有效提高數(shù)據(jù)庫管理的安全性和可靠性。根據(jù)筆者所在醫(yī)院信息系統(tǒng)選用網(wǎng)絡(luò)架構(gòu)和數(shù)據(jù)庫的實(shí)際情況,以O(shè)ralce數(shù)據(jù)庫為例,在分析系統(tǒng)數(shù)據(jù)備份實(shí)際需求的基礎(chǔ)上,探討了各種數(shù)據(jù)備份策略。
醫(yī)院信息系統(tǒng);Oracle;數(shù)據(jù)庫;備份
筆者所在醫(yī)院由總院、骨科醫(yī)院、傳染病醫(yī)院三個(gè)院區(qū)和市中社區(qū)服務(wù)中心組成,醫(yī)院信息系統(tǒng)(HIS)包括門診醫(yī)生工作站、住院醫(yī)生工作站、護(hù)士工作站、醫(yī)學(xué)影像系統(tǒng)(PACS)、檢驗(yàn)信息系統(tǒng)(LIS)、藥局管理系統(tǒng)、門診住院收費(fèi)管理系統(tǒng)、病案信息管理系統(tǒng)、手術(shù)麻醉管理系統(tǒng)、醫(yī)療統(tǒng)計(jì)系統(tǒng)、院長綜合查詢與輔助決策系統(tǒng)、電子病歷系統(tǒng)(EMR)、移動(dòng)查房系統(tǒng)、設(shè)備器械后勤物資管理系統(tǒng)、社區(qū)衛(wèi)生服務(wù)、體檢信息系統(tǒng)、醫(yī)療保險(xiǎn)接入系統(tǒng)、學(xué)術(shù)論文期刊查詢系統(tǒng)等40余個(gè)系統(tǒng)應(yīng)用。各院區(qū)分別由光纖接入總院服務(wù)器,實(shí)現(xiàn)三院區(qū)醫(yī)院信息系統(tǒng)無縫聯(lián)接。
1.1 系統(tǒng)環(huán)境及配置
網(wǎng)絡(luò)總體結(jié)構(gòu)為主干千兆,百兆到桌面,采用IBM服務(wù)器,另有備份服務(wù)器,服務(wù)器端使用網(wǎng)絡(luò)操作系統(tǒng)Windows 2003,數(shù)據(jù)庫為Oracle 10g;客戶端使用Windows XP 操作系統(tǒng),采用Power Builder 9為前臺工具。
1.2 數(shù)據(jù)庫備份的意義
醫(yī)院信息系統(tǒng)在日常工作中積累的數(shù)據(jù),如果因?yàn)闆]有保護(hù)好而遭到破壞和丟失,將會給醫(yī)院和病人帶來無法彌補(bǔ)的損失,同時(shí)也會給醫(yī)院帶來不良的社會影響。當(dāng)由于計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)故障,(如機(jī)器故障、介質(zhì)故障、系統(tǒng)故障、進(jìn)程故障等)影響數(shù)據(jù)庫系統(tǒng)的操作,影響數(shù)據(jù)庫中數(shù)據(jù)的正確性,嚴(yán)重時(shí)甚至?xí)箶?shù)據(jù)庫中全部或部分?jǐn)?shù)據(jù)丟失,特別是在醫(yī)院信息系統(tǒng)中,對數(shù)據(jù)庫要求7*24小時(shí)無故障運(yùn)行,一旦發(fā)生上述故障時(shí),需要能夠在盡可能短的時(shí)間內(nèi),盡可能完全地恢復(fù)系統(tǒng)運(yùn)行,數(shù)據(jù)庫的恢復(fù)必須基于數(shù)據(jù)庫有一個(gè)完善的備份,并且經(jīng)常性備份也有利于服務(wù)器的軟、硬件升級。
2.1 備份策略
根據(jù)筆者所在醫(yī)院信息系統(tǒng)的特點(diǎn),選擇合適的備份周期、備份介質(zhì)和備份方法,以確保為數(shù)據(jù)庫提供一個(gè)完整的全備份。對Oracle數(shù)據(jù)庫的備份,采用冷備份和熱備份以及邏輯備份(Export/Import)相結(jié)合的方法。
2.2 Oracle數(shù)據(jù)庫三種備份方案的比較
2.2.1 冷備份(脫機(jī)備份)
冷備份發(fā)生在數(shù)據(jù)庫正常關(guān)閉的情況下,當(dāng)正常關(guān)閉時(shí)會提供給我們一個(gè)完整的數(shù)據(jù)庫,然后使用操作系統(tǒng)備份工具或第三方工具備份所有相關(guān)的Oracle文件,這些文件包括①Oracle可執(zhí)行代碼/代碼、配置文件和控制文件;②Oralce數(shù)據(jù)文件或聯(lián)機(jī)重做日志文件。特別要注意不在一個(gè)物理盤上的多個(gè)數(shù)據(jù)文件、多個(gè)控制文件和多個(gè)聯(lián)機(jī)日志文件。通常利用IMMEDIATE選項(xiàng)關(guān)閉數(shù)據(jù)庫,備份工作完成后,再以正常方式啟動(dòng)Oracle。優(yōu)點(diǎn)是備份簡單、迅速,恢復(fù)時(shí)間較短;缺點(diǎn)是必須關(guān)閉數(shù)據(jù)庫,不能進(jìn)行點(diǎn)恢復(fù)。
2.2.2 熱備份(聯(lián)機(jī)備份)
熱備份可在數(shù)據(jù)庫打開的情況下進(jìn)行,此時(shí)數(shù)據(jù)庫必須運(yùn)行在可歸檔日志模式,否則Oracle將產(chǎn)生錯(cuò)誤并禁止使用聯(lián)機(jī)備份過程。一般情況下,Oralce的LGWR后臺進(jìn)程以一種循環(huán)方式寫入redo日志文件,從第一個(gè)redo日志到下一個(gè),直到該組的最后一個(gè),然后再重寫第一個(gè)redo日志,因此在非歸檔模式下不能使用熱備份。在可歸檔日志模式,ARCH后臺進(jìn)程在每一個(gè)redo日志被覆蓋前,就讀取全部redo日志,然后將其寫到歸檔日志(也就是給它做 一個(gè)拷貝),熊掌,這些文件被寫入硬盤或磁帶中,建議使用硬盤,這樣可大大減少完成備份所需的時(shí)間。其備份過程包含以下步驟①進(jìn)行表空間的聯(lián)機(jī)備份;②備份歸檔重做日志;③備份控制文件。優(yōu)點(diǎn)是備份時(shí)不必關(guān)閉數(shù)據(jù)庫,可以進(jìn)行點(diǎn)恢復(fù);缺點(diǎn)是執(zhí)行過程復(fù)雜,測試?yán)щy,同時(shí)熱備份可能造成CPU、I/O過載,應(yīng)在數(shù)據(jù)庫不太忙時(shí)進(jìn)行。
2.2.3 邏輯備份(Export/Import)
邏輯備份是使用軟件技術(shù)從數(shù)據(jù)庫中提到數(shù)據(jù),并將結(jié)果寫入一個(gè)稱為“導(dǎo)出轉(zhuǎn)儲文件”的系統(tǒng)文件內(nèi),可以使用專用工具軟件(Import)將該文件恢復(fù)到數(shù)據(jù)庫中。它有三種模式:①完全導(dǎo)出模式:導(dǎo)出數(shù)據(jù)庫中所有對象;②用戶模式:導(dǎo)出用戶所有對象以及對象中的數(shù)據(jù);③表模式:導(dǎo)出用戶所有表或者指定的表。該備份有三種類型:①完全型(complete export):備份整個(gè)數(shù)據(jù)庫;②積累型(cumulative export):備份上一次完全或積累型備份所改變的數(shù)據(jù);③增量型(increamental export):備份上一次備份后改變的數(shù)據(jù)。這種備份包括以下步驟:①數(shù)據(jù)庫運(yùn)行時(shí),利用Export實(shí)用工具導(dǎo)出數(shù)據(jù)(例如導(dǎo)出用戶或表);②把導(dǎo)出的文件拷貝到硬盤或磁帶上。邏輯備份的優(yōu)點(diǎn)是能執(zhí)行對象或?qū)崿F(xiàn)恢復(fù),能夠跨操作系統(tǒng)平臺遷移數(shù)據(jù)庫;缺點(diǎn)是當(dāng)數(shù)據(jù)量大時(shí),恢復(fù)的過程相當(dāng)耗時(shí)。
2.3 備份介質(zhì)
磁帶具有體積小、大容量、可長期保存等特性,是一種安全可靠、價(jià)格低廉的備份介質(zhì)。為保證備份介質(zhì)的安全,介質(zhì)與服務(wù)器應(yīng)異地并分開保存,對保存介質(zhì)的環(huán)境溫度、濕度以及防磁措施有相應(yīng)的要求,應(yīng)嚴(yán)格遵守??筛鶕?jù)備份的內(nèi)容、日期,將介質(zhì)統(tǒng)一編號,以免備份和恢復(fù)時(shí)弄錯(cuò)介質(zhì),造成原有備份丟失。
筆者所在醫(yī)院采用三種備份相結(jié)合的方法進(jìn)行數(shù)據(jù)庫備份。每周日晚進(jìn)行冷備份,關(guān)閉Oracle數(shù)據(jù)庫,執(zhí)行轉(zhuǎn)儲,將所有相關(guān)的Oracle文件以及歸檔日志文件全部拷貝至備份服務(wù)器硬盤中,完畢后啟動(dòng)數(shù)據(jù)庫,并將備份內(nèi)容轉(zhuǎn)至磁帶,做好標(biāo)記,妥善保存。每天則采用熱備份的策略備份歸檔重做日志文件,注意啟動(dòng)數(shù)據(jù)庫時(shí)數(shù)據(jù)庫需要運(yùn)行的模式。每兩個(gè)星期做一次指定重要用戶和表的導(dǎo)出,確認(rèn)數(shù)據(jù)庫在邏輯上的正確性。
[1] (美)Kevin Loney,Bob Bryla;朱潔梅,王海濤譯.Oracle Database 10g DBA手冊——管理健壯的、可擴(kuò)展的、高可用的Oracle數(shù)據(jù)庫[M].北京:清華大學(xué)出版社,2006
[2] (美)Kevin Loney;劉偉琴,張格仙譯. Oracle Database 11g完全參考手冊[M].北京:清華大學(xué)出版社,2010
[3] 曹原,范衛(wèi)國,陳坤蕾.我院Oracle數(shù)據(jù)庫的備份與恢復(fù)[J].醫(yī)療衛(wèi)生裝備,2011,32(9):55~56
10.3969/j.issn.1001-8972.2012.07.062
趙凱,女,本科學(xué)歷,程序員,山東省萊蕪市人民醫(yī)院,271100,山東省萊蕪市長勺北路雪湖大街001號;
袁立華,男,本科學(xué)歷,主治醫(yī)師,山東省萊蕪市人民醫(yī)院。