• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      優(yōu)化醫(yī)院信息系統(tǒng)中的O racle RAC集群

      2013-03-03 01:50:42
      中外醫(yī)療 2013年10期
      關(guān)鍵詞:實(shí)例客戶端集群

      潘 欣

      民航總醫(yī)院計(jì)算機(jī)中心,北京 100000

      為了最大程度地保證醫(yī)院信息系統(tǒng)(HIS)的業(yè)務(wù)連續(xù)性,實(shí)現(xiàn)24×7不間斷地可靠地運(yùn)行,各醫(yī)院特別是大中型醫(yī)院對(duì)數(shù)據(jù)庫(kù)服務(wù)器都實(shí)施了主機(jī)容錯(cuò)保護(hù)。某些醫(yī)院還應(yīng)用了更高級(jí)的Oracle RAC技術(shù),實(shí)現(xiàn)在保證數(shù)據(jù)庫(kù)服務(wù)器高可用的同時(shí)分?jǐn)倲?shù)據(jù)訪問負(fù)載。

      Oracle RAC是甲骨文公司專門針對(duì)Oracle數(shù)據(jù)庫(kù)提供的多個(gè)數(shù)據(jù)庫(kù)實(shí)例并行訪問數(shù)據(jù)庫(kù)的高可用并行計(jì)算技術(shù)。通過多個(gè)服務(wù)器節(jié)點(diǎn)和共享存儲(chǔ)組成的集群,并自動(dòng)均分?jǐn)?shù)據(jù)訪問負(fù)載,在其中一個(gè)節(jié)點(diǎn)發(fā)生故障時(shí)可以對(duì)系統(tǒng)進(jìn)行容錯(cuò)和恢復(fù)處理,實(shí)現(xiàn)數(shù)據(jù)庫(kù)實(shí)例節(jié)點(diǎn)的透明應(yīng)用程序故障切換(Transparent Application Fail Over,TAF),在保證數(shù)據(jù)庫(kù)系統(tǒng) 24×7 的高可用性的同時(shí)最大程度發(fā)揮硬件性能[1]。

      Oracle RAC雖然功能強(qiáng)大但內(nèi)部結(jié)構(gòu)十分復(fù)雜,在以生產(chǎn)系統(tǒng)運(yùn)行之前,必須針對(duì)Oracle RAC的運(yùn)行機(jī)制結(jié)合醫(yī)院信息系統(tǒng)的特點(diǎn)對(duì)數(shù)據(jù)庫(kù)集群進(jìn)行優(yōu)化配置,否則整個(gè)Oracle數(shù)據(jù)庫(kù)集群很可能將面臨嚴(yán)重的性能問題。

      Oracle RAC的運(yùn)行機(jī)制

      Oracle RAC集群是建立在共享存儲(chǔ)架構(gòu)之上的,為了降低數(shù)據(jù)庫(kù)實(shí)例訪問共享存儲(chǔ)的頻率,最大限度地降低磁盤I/O,Oracle開發(fā)了一項(xiàng)稱為高速緩存融合(Cache Fusion)的技術(shù),使得集群中的節(jié)點(diǎn)可以通過高速集群互聯(lián)高效地在各數(shù)據(jù)庫(kù)實(shí)例中同步其內(nèi)存高速緩存中的數(shù)據(jù)塊,這樣可以避免必須首先將塊推送到磁盤,然后再重新讀入到其它實(shí)例的緩存中[2]。盡管Cache Fusion技術(shù)可以消除共享存儲(chǔ)結(jié)構(gòu)中磁盤的pin操作,從而大大提升了集群數(shù)據(jù)庫(kù)系統(tǒng)的性能,但在數(shù)據(jù)并發(fā)訪問量很大的環(huán)境下,如果有一些熱點(diǎn)數(shù)據(jù)塊很頻繁地被各個(gè)節(jié)點(diǎn)查詢并修改,Cache fusion會(huì)頻繁地使用內(nèi)聯(lián)心跳網(wǎng)絡(luò)來(lái)在節(jié)點(diǎn)之間拷貝數(shù)據(jù),從而導(dǎo)致大量的全局Cache等待事件,影響整個(gè)RAC系統(tǒng)的性能,甚至使得RAC系統(tǒng)的響應(yīng)速度還不如單實(shí)例的數(shù)據(jù)庫(kù)系統(tǒng)響應(yīng)速度快[3]。

      圖1 Oracle RAC系統(tǒng)內(nèi)部結(jié)構(gòu)

      因此對(duì)RAC系統(tǒng)優(yōu)化的最基本原則是,避免發(fā)生大規(guī)模的、不同節(jié)點(diǎn)頻繁修改同一數(shù)據(jù)塊,盡量降低全局?jǐn)?shù)據(jù)塊的數(shù)量[4]。我們知道在Oracle數(shù)據(jù)庫(kù)中數(shù)據(jù)塊(Block)是數(shù)據(jù)庫(kù)中的最小單位,區(qū)間(Extent)是由一系列連續(xù)的數(shù)據(jù)塊組成的數(shù)據(jù)庫(kù)用來(lái)進(jìn)行存儲(chǔ)空間分配的邏輯單位。而以數(shù)據(jù)表(Table)或索引(Index)等邏輯方式存在的段(Segment)又是由多個(gè)區(qū)間組成。因此對(duì)在OLTP應(yīng)用的RAC環(huán)境中,可以通過對(duì)業(yè)務(wù)系統(tǒng)進(jìn)行水平分割而讓不同的業(yè)務(wù)系統(tǒng)單獨(dú)訪問一個(gè)指定節(jié)點(diǎn)的數(shù)據(jù)庫(kù)實(shí)例,從而使得每個(gè)業(yè)務(wù)系統(tǒng)的大量的表或索引都只駐留在一個(gè)實(shí)例的SGA中,最大程度的減少了數(shù)據(jù)塊在節(jié)點(diǎn)之間的Cache fusion。系統(tǒng)優(yōu)化方案

      我們知道HIS系統(tǒng)從業(yè)務(wù)范圍上基本可以劃分為門診和住院兩大子系統(tǒng),同時(shí)各子系統(tǒng)的交易數(shù)據(jù)段各自基本獨(dú)立,共享的數(shù)據(jù)段數(shù)據(jù)規(guī)模較小。所謂交易數(shù)據(jù)段就是會(huì)實(shí)時(shí)產(chǎn)生和更新的數(shù)據(jù)表和索引,例如醫(yī)囑、費(fèi)用和申請(qǐng)單等。這樣門診的HIS終端基本不會(huì)訪問住院系統(tǒng)的交易數(shù)據(jù)段,住院的HIS終端很少訪問門診系統(tǒng)的交易數(shù)據(jù)段。這就為我們實(shí)施水平數(shù)據(jù)分割提供了可能。按照這一原則我們將醫(yī)院全部的HIS終端劃分為門診和住院兩大部分。見表1。

      有了上面的工作基礎(chǔ),我們就可以通過在Oracle的服務(wù)器端和客戶端進(jìn)行一系列的自定義配置來(lái)更合理地分?jǐn)們蓚€(gè)RAC實(shí)例的訪問負(fù)載,優(yōu)化RAC數(shù)據(jù)庫(kù)的性能。

      Oracle服務(wù)(Service)是跨多個(gè)數(shù)據(jù)庫(kù)實(shí)例為前端應(yīng)用提供的單一數(shù)據(jù)服務(wù)映像,是實(shí)現(xiàn)Oracle高可用性連接的基礎(chǔ)元素,一個(gè)Oracle服務(wù)可以被分配到一個(gè)或多個(gè)數(shù)據(jù)庫(kù)實(shí)例,連接到該服務(wù)的數(shù)據(jù)訪問負(fù)載可以被服務(wù)根據(jù)優(yōu)化原則在這些實(shí)例中進(jìn)行調(diào)度,而通過將完成同一種工作的會(huì)話連接到同一個(gè)Oracle服務(wù),使這些SQL操作穩(wěn)定在一個(gè)數(shù)據(jù)庫(kù)實(shí)例中,可以使得數(shù)據(jù)塊在集群各節(jié)點(diǎn)之間的Fusion活動(dòng)降到最少。由于我們的集群環(huán)境是2節(jié)點(diǎn)的RAC集群,根據(jù)前面對(duì)HIS系統(tǒng)水平數(shù)據(jù)分割的成果,我們創(chuàng)建兩個(gè)Oracle服務(wù)ora1和ora2分別對(duì)應(yīng)門診和住院兩類HIS系統(tǒng)終端,來(lái)實(shí)現(xiàn)這兩部分HIS系統(tǒng)終端能夠分別連接到集群數(shù)據(jù)庫(kù)中的不同的數(shù)據(jù)庫(kù)實(shí)例。

      這里我們使用集群配置管理工具srvctl來(lái)創(chuàng)建Oracle服務(wù):

      srvctl是集群配置管理命令,命令中參數(shù)add service代表創(chuàng)建Oracle服務(wù),參數(shù)-d rac指明是在名稱是rac的數(shù)據(jù)庫(kù)上創(chuàng)建服務(wù),-s ora1表示創(chuàng)建的服務(wù)名稱,-r rac1代表使用創(chuàng)建的Oracle服務(wù)ora1的數(shù)據(jù)庫(kù)連接請(qǐng)求將優(yōu)先連接實(shí)例rac1(服務(wù)器192.168.1.103),-a rac2表示當(dāng)實(shí)例rac1不可用時(shí)使用Oracle服務(wù)ora1的數(shù)據(jù)庫(kù)會(huì)話將被轉(zhuǎn)移至實(shí)例rac2(服務(wù)器192.168.1.104),-PBASIC代表只在發(fā)生故障切換(Fail Over)時(shí)服務(wù)才在可用實(shí)例上創(chuàng)建數(shù)據(jù)庫(kù)會(huì)話。

      表1 劃分后的HIS終端列表

      在運(yùn)行HIS系統(tǒng)的終端上,我們通過對(duì)Oracle客戶端Oracle Net Services的配置來(lái)實(shí)現(xiàn)HIS系統(tǒng)的門診應(yīng)用使用Oracle服務(wù)ora1,HIS系統(tǒng)的住院和其它應(yīng)用使用Oracle服務(wù)ora2。

      Oracle Net Services為數(shù)據(jù)庫(kù)連接提供了連接負(fù)載均衡??蛻舳素?fù)載均衡跨集群中所有監(jiān)聽程序進(jìn)行連接請(qǐng)求均衡,方法是將集群中的所有服務(wù)器列入客戶連接字符的地址表。SQL*NET將隨機(jī)選擇其中的一個(gè)服務(wù)器,如果選中的服務(wù)器不可用,將嘗試列表中的下一個(gè)服務(wù)器。服務(wù)器端負(fù)載均衡是在監(jiān)聽程序中實(shí)現(xiàn)的,每個(gè)監(jiān)聽程序會(huì)識(shí)別出集群中刺探每個(gè)服務(wù)的所有實(shí)例。

      通過在HIS系統(tǒng)客戶端上的編輯tnsnames.ora來(lái)完成客戶端Oracle Net Services的配置:

      結(jié)語(yǔ)

      通過對(duì)Oracle RAC運(yùn)行機(jī)制的研究,為避免因熱點(diǎn)數(shù)據(jù)塊頻繁地被各個(gè)節(jié)點(diǎn)查詢和修改而造成整個(gè)數(shù)據(jù)庫(kù)系統(tǒng)性能上的瓶頸,我們總結(jié)了采用“水平業(yè)務(wù)分割”的方式可以有效的對(duì)整個(gè)Oracle集群數(shù)據(jù)庫(kù)進(jìn)行優(yōu)化。結(jié)合醫(yī)院信息系統(tǒng)的特點(diǎn),我們確定了 “水平業(yè)務(wù)分割”的實(shí)施方案,通過對(duì)集群系統(tǒng)的優(yōu)化配置,實(shí)現(xiàn)了在平衡兩臺(tái)服務(wù)器負(fù)載的同時(shí)最大程度地減少兩個(gè)節(jié)點(diǎn)間數(shù)據(jù)塊的傳遞,從而最大程度地發(fā)揮了Oracle RAC的優(yōu)勢(shì),使醫(yī)院信息系統(tǒng)能夠更加高效可靠地運(yùn)行。

      [1]Andrew Babb,Tammy Bednar.Oracle High Availability Best Practices[M].Oracle,2006:11-14.

      [2]陳吉平.構(gòu)建Oracle高可用環(huán)境:企業(yè)級(jí)高可用數(shù)據(jù)庫(kù)架構(gòu)、實(shí)戰(zhàn)與經(jīng)驗(yàn)總結(jié)[M].北京:電子工業(yè)出版社,2008:166-171.

      [3]Mark Bauer.Oracle9i Real Application Clusters Concepts[M].Oracle,2002:61-64.

      [4]王紅艷 李濤.ORACLE數(shù)據(jù)庫(kù)集群技術(shù)的具體實(shí)施[J].電腦知識(shí)與技術(shù),2011(2):11-12.

      猜你喜歡
      實(shí)例客戶端集群
      海上小型無(wú)人機(jī)集群的反制裝備需求與應(yīng)對(duì)之策研究
      一種無(wú)人機(jī)集群發(fā)射回收裝置的控制系統(tǒng)設(shè)計(jì)
      電子制作(2018年11期)2018-08-04 03:25:40
      縣級(jí)臺(tái)在突發(fā)事件報(bào)道中如何應(yīng)用手機(jī)客戶端
      孵化垂直頻道:新聞客戶端新策略
      基于Vanconnect的智能家居瘦客戶端的設(shè)計(jì)與實(shí)現(xiàn)
      Python與Spark集群在收費(fèi)數(shù)據(jù)分析中的應(yīng)用
      勤快又呆萌的集群機(jī)器人
      完形填空Ⅱ
      完形填空Ⅰ
      客戶端空間數(shù)據(jù)緩存策略
      库尔勒市| 芦溪县| 手机| 张家口市| 上虞市| 朔州市| 乌拉特中旗| 房山区| 万山特区| 云霄县| 大庆市| 南阳市| 湘乡市| 南宫市| 石林| 蕲春县| 罗田县| 西畴县| 朔州市| 鄂州市| 南雄市| 洞头县| 民县| 灵宝市| 荆州市| 凤山县| 嘉禾县| 墨江| 房产| 绍兴市| 收藏| 新巴尔虎左旗| 云安县| 石狮市| 象山县| 沁源县| 顺平县| 威信县| 怀宁县| 徐州市| 宿松县|