孟慶崧
(濟(jì)南軍區(qū)總醫(yī)院 資源共享協(xié)作辦公室,山東 濟(jì)南 250031)
“軍衛(wèi)一號(hào)”數(shù)據(jù)庫(kù)系統(tǒng)由Oracle8i手工升級(jí)至Oracle10g的方法
孟慶崧
(濟(jì)南軍區(qū)總醫(yī)院 資源共享協(xié)作辦公室,山東 濟(jì)南 250031)
利用Oracle公司提供的升級(jí)腳本,將“軍衛(wèi)一號(hào)”數(shù)據(jù)庫(kù)系統(tǒng)由Oracle8i手工升級(jí)至Oracle10g,該方法升級(jí)速度快,簡(jiǎn)便易行,為“軍衛(wèi)一號(hào)”系統(tǒng)的深入應(yīng)用奠定了良好的基礎(chǔ)。
“軍衛(wèi)一號(hào)”;Oracle數(shù)據(jù)庫(kù);HIS
Abstract:This paper provides a method for upgrading the database system of No.1 military medical project from Oracle8i to Oracle10g by using the upgrading script provided by Oracle corporation.The method provides a quick way for upgrading and is easy to use.It makes a good foundation for the deep application of No.1 military medical project.
Key words:"No.1 military medical project";Oracle database;HIS
隨著我院信息化建設(shè)的深入發(fā)展,地方醫(yī)療保險(xiǎn)系統(tǒng)、LIS、PACS等系統(tǒng)的陸續(xù)投入使用,我院“軍衛(wèi)一號(hào)”數(shù)據(jù)庫(kù)系統(tǒng)的維護(hù)和管理面臨新的挑戰(zhàn):
(1)客戶端的增多對(duì)后臺(tái)數(shù)據(jù)庫(kù)的性能提出了更高的要求,需要對(duì)內(nèi)存參數(shù)進(jìn)行恰當(dāng)?shù)恼{(diào)整;
(2)用戶一旦對(duì)數(shù)據(jù)進(jìn)行了誤操作,如誤刪除某條記錄等,需要立即進(jìn)行恢復(fù);
(3)新上線的社會(huì)醫(yī)療保險(xiǎn)系統(tǒng)采用ZHS16GBK中文字符集,而“軍衛(wèi)一號(hào)”數(shù)據(jù)庫(kù)系統(tǒng)采用US7ASCII英文字符集,雖然通過(guò)編程的方法可以進(jìn)行字符集轉(zhuǎn)換,但程序使用過(guò)程中仍經(jīng)常會(huì)出現(xiàn)亂碼的情況,為了長(zhǎng)遠(yuǎn)的需要,最好將“軍衛(wèi)一號(hào)”數(shù)據(jù)庫(kù)的字符集修改為簡(jiǎn)體中文字符集。
我院“軍衛(wèi)一號(hào)”數(shù)據(jù)庫(kù)系統(tǒng)為Oracle8.1.7.4,操作系統(tǒng)為Windows Server 2000,對(duì)于上述問(wèn)題不是不能解決,但需要對(duì)Oracle8i的知識(shí)有深入的了解。目前,Oralce10g的推出已有一段時(shí)間,業(yè)界有關(guān)Oracle10g的應(yīng)用已日益成熟,且Oralce10g提供了許多新的特性,如自動(dòng)化實(shí)例調(diào)整、自動(dòng)化內(nèi)存調(diào)整、閃回(Flashback)以及修改字符集的內(nèi)部指令等,這些新特性完全可以應(yīng)對(duì)我院“軍衛(wèi)一號(hào)”數(shù)據(jù)庫(kù)管理所面臨的新挑戰(zhàn)。因此,有必要對(duì)我院“軍衛(wèi)一號(hào)”數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)行升級(jí)。
將Oracle8i升級(jí)為Oracle10g的方法很多,利用Oracle的Exp/Imp以及Toad工具實(shí)現(xiàn)數(shù)據(jù)遷移[1];采用建立數(shù)據(jù)庫(kù)鏈接的方法實(shí)現(xiàn)數(shù)據(jù)遷移[2]。這兩種方法雖然最終都能夠?qū)崿F(xiàn)數(shù)據(jù)庫(kù)的升級(jí),但由于“軍衛(wèi)一號(hào)”系統(tǒng)數(shù)據(jù)量很大,數(shù)據(jù)遷移耗費(fèi)的時(shí)間很長(zhǎng),從而造成系統(tǒng)切換的時(shí)間很長(zhǎng)。
除上述方法以外,Oracle也提供了其它升級(jí)途徑,比如采用Database Upgrade Assistant升級(jí)工具,以及利用升級(jí)腳本進(jìn)行手工升級(jí)等。采用手工升級(jí)可以明確的察覺(jué)升級(jí)過(guò)程中出現(xiàn)的錯(cuò)誤,以采取應(yīng)對(duì)措施,便于對(duì)升級(jí)過(guò)程進(jìn)行有效的控制,而且升級(jí)速度較前面介紹的數(shù)據(jù)遷移的方法要快。因此,本文就手工升級(jí)方法進(jìn)行詳細(xì)的介紹。
需要注意的是,對(duì)“軍衛(wèi)一號(hào)”數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)行升級(jí)是一個(gè)復(fù)雜的過(guò)程,它關(guān)系著整個(gè)醫(yī)院信息系統(tǒng)的正常運(yùn)行。因此,有必要在備用服務(wù)器中對(duì)升級(jí)過(guò)程進(jìn)行反復(fù)實(shí)驗(yàn),待實(shí)驗(yàn)成功后,才可對(duì)生產(chǎn)數(shù)據(jù)庫(kù)進(jìn)行升級(jí)。
目標(biāo)數(shù)據(jù)庫(kù)版本為Oralce 10.2.0.1,以下簡(jiǎn)稱為Oracle10g,現(xiàn)有數(shù)據(jù)庫(kù)版本為Oracle 8.1.7.4,以下簡(jiǎn)稱為Oracle8i。
(1)如果待升級(jí)數(shù)據(jù)庫(kù)版本為Oracle 8.1.7.4,則略去此步,否則,安裝待升級(jí)數(shù)據(jù)庫(kù)對(duì)應(yīng)的Patch,將待升級(jí)數(shù)據(jù)庫(kù)先升級(jí)到Oralce 8.1.7.4,有關(guān)安裝Patch的方法,請(qǐng)參考有關(guān)說(shuō)明,此處不再贅述。
(2)在Windows Server 2000操作系統(tǒng)中創(chuàng)建一個(gè)新目錄,在該目錄下全新安裝Oracle10g數(shù)據(jù)庫(kù),并且不安裝任何啟動(dòng)數(shù)據(jù)庫(kù)。
(3)將Oracle10g目錄ORACLE_HOME/rdbms/admin下的utlu102i.sql文件拷貝出至另一目錄,并切換至該目錄,用數(shù)據(jù)庫(kù)管理員身份登錄Oracle8i數(shù)據(jù)庫(kù)的SQL*Plus,執(zhí)行該腳本(該腳本又稱為升級(jí)前信息工具)并查看腳本的執(zhí)行結(jié)果。
(4)備份原Oracle8i數(shù)據(jù)庫(kù)。
(5)將原Oracle8i數(shù)據(jù)庫(kù)中的參數(shù)文件、口令文件拷貝至Oracle10g數(shù)據(jù)庫(kù)的相應(yīng)目錄下??截悈?shù)文件后,將該參數(shù)文件重命名為initsid.ora。(在Oracle8i數(shù)據(jù)庫(kù)中,參數(shù)文件名為init.ora,在Oracle10g數(shù)據(jù)庫(kù)中,參數(shù)文件名為initsid. ora)。
(6)調(diào)整Oracle10g數(shù)據(jù)庫(kù)中的參數(shù)文件initsid.ora,對(duì)照(3)步中升級(jí)前信息工具的執(zhí)行結(jié)果,在initsid.ora文件中將該結(jié)果中標(biāo)記為“Obsolete”的參數(shù)刪除,將標(biāo)記為“Deprecated”的參數(shù)的參數(shù)值進(jìn)行調(diào)整,調(diào)整范圍參考該結(jié)果中提供的參考值,并增加該結(jié)果中提示需增加的參數(shù)。同時(shí)參照該結(jié)果調(diào)整其它需要調(diào)整的方面,比如使某些小的回滾段離線,并創(chuàng)建一個(gè)更大的回滾段以便于升級(jí)過(guò)程中使用該回滾段等。
(7)在cmd(控制臺(tái)命令行)下,關(guān)閉Oracle8i數(shù)據(jù)庫(kù),刪除該數(shù)據(jù)庫(kù)實(shí)例,并創(chuàng)建新的Oracle10g數(shù)據(jù)庫(kù)實(shí)例。設(shè)“軍衛(wèi)一號(hào)”數(shù)據(jù)庫(kù)系統(tǒng)的實(shí)例名為“orcl”,執(zhí)行:
使用Oracle10g目錄下的參數(shù)文件創(chuàng)建新的實(shí)例:
(8)在cmd下切換至Oracle10g的ORACLE_HOME/rdbms/ admin目錄,啟動(dòng)Oracle10g的SQL*Plus,以數(shù)據(jù)庫(kù)管理員(sysdba)身份連接至數(shù)據(jù)庫(kù),執(zhí)行:
(1)安裝Oracle10g中Web版的OEM(Oracle企業(yè)管理器),在cmd下執(zhí)行:
(2)啟動(dòng)iSQL*Plus服務(wù),在cmd下執(zhí)行:
(3)將原“軍衛(wèi)一號(hào)”數(shù)據(jù)庫(kù)采用的英文字符集AMERICAN_AMERICA.US7ASCII修改為簡(jiǎn)體中文字符集SIMPLIFIED CHINESE_CHINA.ZHS16GBK,啟動(dòng)Oracle10g的SQL*Plus,執(zhí)行:
本文介紹了將Oracle8i版本的“軍衛(wèi)一號(hào)”數(shù)據(jù)庫(kù)手工升級(jí)為Oracle10g的方法。該方法的最大優(yōu)點(diǎn)是升級(jí)速度快,縮短了新舊系統(tǒng)切換的時(shí)間。經(jīng)過(guò)嚴(yán)密測(cè)試,最終數(shù)據(jù)庫(kù)由Oracle 8.1.7.4成功升級(jí)為Oracle 10.2.0.1,并且將“軍衛(wèi)一號(hào)”數(shù)據(jù)庫(kù)的字符集成功修改為簡(jiǎn)體中文字符集。系統(tǒng)升級(jí)后,運(yùn)行平穩(wěn)。
[1] 徐正雄,王玲,喬靜,等.用Exp/Imp實(shí)現(xiàn)“軍衛(wèi)一號(hào)”從Oracle8i到Orade10g的升級(jí)[J].醫(yī)療衛(wèi)生裝備,2009,30(1):55-56.
[2] 夏洪斌,陳金雄,陳薇薇.“軍衛(wèi)一號(hào)”數(shù)據(jù)庫(kù)從Oracle 8.17到Oracle 10g的升級(jí)實(shí)現(xiàn)[J].醫(yī)療衛(wèi)生裝備,2008,29(4):40-41.
[3] 劉志敏,等.利用數(shù)據(jù)庫(kù)分布技術(shù)改善HIS的應(yīng)用性能[J].中國(guó)醫(yī)療設(shè)備,2008(6):25-26.
[4] Kathy Rich,Viv Schupmann.Oracle Database Upgrade Guide 10g Release 2(10.2)[DB/OL].(2008-01-01)[2009-06-01].http:// download.oracle.com/docs/cd/B19306_01/server.102/b14238/ toc.htm.
[5] 蓋國(guó)強(qiáng).循序漸近Oracle[M].北京:人民郵電出版社,2007.
A Method of Manual Upgrading No.1 Military Medical Project Database from Oracle8i to Oracle10g
MENG Qing-song
(Resource Sharing Cooperation Office, General Hospita of Jinan Military Area,Jinan Shandong 250031,China)
TP392
A
10.3969/j.issn.1674-1633.2010.02.015
1674-1633(2010)02-0040-02
2009-06-24
作者郵箱:qing-song-zi-zai@163.com