Oracle SQL 效能最佳化:
1.選用適合的ORACLE最佳化器
ORACLE的最佳化器共有3種
A、RULE (基於規則) b、COST (基於成本) c、CHOOSE (選擇性)
設定預設的最佳化器,可以通過對init.ora檔案中OPTIMIZER_MODE參數的各種聲明,如RULE,COST,CHOOSE,ALL_ROWS,FIRST_ROWS 。 你當然也在SQL句級或是會話(session)級對其進行覆蓋。
為了使用基於成本的最佳化器(CBO, Cost-Based Optimizer) , 你必須經常運行analyze 命令,以增加資料庫中的對象統計資訊(object statistics)的準確性。
如果資料庫的最佳化器模式設定為選擇性(CHOOSE),那麼實際的最佳化器模式將和是否運行過analyze命令有關。 如果table已經被analyze過, 最佳化器模式將自動成為CBO , 反之,資料庫將採用RULE形式的最佳化器。
在預設情況下,ORACLE採用CHOOSE最佳化器, 為了避免那些不必要的全表掃描(full table scan) , 你必須盡量避免使用CHOOSE最佳化器,而直接採用基於規則或者基於成本的最佳化器。
2.訪問Table的方式
ORACLE 採用兩種訪問表中記錄的方式:
A、 全表掃描
全表掃描就是順序地訪問表中每條記錄。ORACLE採用一次讀入多個資料區塊(database block)的方式最佳化全表掃描。
B、 通過ROWID訪問表
你可以採用基於ROWID的訪問方式情況,提高訪問表的效率, ROWID包含了表中記錄的物理位置資訊。ORACLE採用索引(INDEX)實現了資料和存放資料的物理位置(ROWID)之間的聯絡。通常索引提供了快速存取ROWID的方法,因此那些基於索引列的查詢就可以得到效能上的提高。
3.共用SQL語句
為了不重複解析相同的SQL語句,在第一次解析之後,ORACLE將SQL語句存放在記憶體中。這塊位於系統全域地區SGA(system global area)的共用池(shared buffer pool)中的記憶體可以被所有的資料庫使用者共用。 因此,當你執行一個SQL語句(有時被稱為一個遊標)時,如果它和之前的執行過的語句完全相同, ORACLE就能很快獲得已經被解析的語句以及最好的執行路徑。ORACLE的這個功能大大地提高了SQL的執行效能並節省了記憶體的使用。
可惜的是ORACLE只對簡單的表提供高速緩衝(cache buffering),這個功能並不適用於多表串連查詢。
資料庫管理員必須在init.ora中為這個地區設定合適的參數,當這個記憶體地區越大,就可以保留更多的語句,當然被共用的可能性也就越大了。
當你向ORACLE提交一個SQL語句,ORACLE會首先在這塊記憶體中尋找相同的語句。這裡需要註明的是,ORACLE對兩者採取的是一種嚴格匹配,要達成共用,SQL語句必須完全相同(包括空格,換行等)。
資料庫管理員必須在init.ora中為這個地區設定合適的參數,當這個記憶體地區越大,就可以保留更多的語句,當然被共用的可能性也就越大了。
共用的語句必須滿足三個條件:
A、 字元級的比較: 當前被執行的語句和共用池中的語句必須完全相同。
B、 兩個語句所指的對象必須完全相同:
C、 兩個SQL語句中必須使用相同的名字的綁定變數(bind variables)。
4.選擇最有效率的表名順序(只在基於規則的最佳化器中有效)
ORACLE的解析器按照從右至左的順序處理FROM子句中的表名,因此FROM子句中寫在最後的表(基礎資料表 driving table)將被最先處理。在FROM子句中包含多個表的情況下,你必須選擇記錄條數最少的表作為基礎資料表。當ORACLE處理多個表時, 會運用排序及合并的方式串連它們。首先,掃描第一個表(FROM子句中最後的那個表)並對記錄進行派序,然後掃描第二個表(FROM子句中最後第二個表),最後將所有從第二個表中檢索出的記錄與第一個表中合適記錄進行合并。
如果有3個以上的表串連查詢, 那就需要選擇交叉表(intersection table)作為基礎資料表, 交叉表是指那個被其他表所引用的表。
5.WHERE子句中的串連順序
ORACLE採用自下而上的順序解析WHERE子句,根據這個原理,表之間的串連必須寫在其他WHERE條件之前, 那些可以過濾掉最大數量記錄的條件必須寫在WHERE子句的末尾。
6.SELECT子句中避免使用 ' * '
當你想在SELECT子句中列出所有的COLUMN時,使用動態SQL列引用 '*' 是一個方便的方法。不幸的是,這是一個非常低效的方法。實際上,ORACLE在解析的過程中, 會將'*' 依次轉換成所有的列名, 這個工作是通過查詢資料字典完成的, 這意味著將耗費更多的時間。
7.減少訪問資料庫的次數
當執行每條SQL語句時,ORACLE在內部執行了許多工作:解析SQL語句,估算索引的利用率,綁定變數,讀資料區塊等等。由此可見,減少訪問資料庫的次數,就能實際上減少ORACLE的工作量。
8.使用DECODE函數來減少處理時間
使用DECODE函數可以避免重複掃描相同記錄或重複串連相同的表。
9.整合簡單,無關聯的資料庫訪問
如果你有幾個簡單的資料庫查詢語句,你可以把它們整合到一個查詢中(即使它們之間沒有關係)
10.重複資料刪除記錄
11.用TRUNCATE替代DELETE
當刪除表中的記錄時,在通常情況下, 復原段(rollback segments ) 用來存放可以被恢複的資訊。 如果你沒有COMMIT事務,ORACLE會將資料恢複到刪除之前的狀態(準確地說是恢複到執行刪除命令之前的狀況)。
而當運用TRUNCATE時, 復原段不再存放任何可被恢複的資訊。當命令運行後,資料不能被恢複。因此很少的資源被調用,執行時間也會很短。
12.盡量多使用COMMIT
只要有可能,在程式中盡量多使用COMMIT,這樣程式的效能得到提高,需求也會因為COMMIT所釋放的資源而減少
COMMIT所釋放的資源:
A、 復原段上用於恢複資料的資訊。
B、被程式語句獲得的鎖。
C、 redo log buffer 中的空間。
D、ORACLE為管理上述3種資源中的內部花費。
13.計算記錄條數
和一般的觀點相反,count(*) 比count(1)稍快,當然如果可以通過索引檢索,對索引列的計數仍舊是最快的。例如 COUNT(EMPNO)
14.用Where子句替換HAVING子句
避免使用HAVING子句,HAVING 只會在檢索出所有記錄之後才對結果集進行過濾。 這個處理需要排序,總計等操作。如果能通過WHERE子句限制記錄的數目,那就能減少這方面的開銷。
15.減少對錶的查詢
在含有子查詢的SQL語句中,要特別注意減少對錶的查詢。
16.通過內建函式提高SQL效率。
17.使用表的別名(Alias)
當在SQL語句中串連多個表時, 請使用表的別名並把別名首碼於每個Column上。這樣一來,就可以減少解析的時間並減少那些由Column歧義引起的語法錯誤。
18.用EXISTS替代IN
在許多基於基礎資料表的查詢中,為了滿足一個條件,往往需要對另一個表進行聯結。在這種情況下,使用EXISTS(或NOT EXISTS)通常將提高查詢的效率。
19.用NOT EXISTS替代NOT IN
在子查詢中,NOT IN子句將執行一個內部的排序和合并。 無論在哪種情況下,NOT IN都是最低效的 (因為它對子查詢中的表執行了一個全表遍曆)。為了避免使用NOT IN ,我們可以把它改寫成外串連(Outer Joins)或NOT EXISTS。
20.用表串連替換EXISTS
通常來說 , 採用表串連的方式比EXISTS更有效率 。
21.用EXISTS替換DISTINCT
當提交一個包含一對多表資訊(比如部門表和僱員表)的查詢時,避免在SELECT子句中使用DISTINCT。 一般可以考慮用EXIST替換 。
四、冷備份與熱備份、雙機熱備與容錯
冷備份與熱備份
一、 冷備份
冷備份發生在資料庫已經正常關閉的情況下,當正常關閉時會提供給我們一個完整的資料庫。冷備份時將關鍵性檔案拷貝到另外的位置的一種說法。對於備份Oracle資訊而言,冷備份時最快和最安全的方法。冷備份的優點是:
1、 是非常快速的備份方法(只需拷檔案)
2、 容易歸檔(簡單拷貝即可)
3、 容易恢複到某個時間點上(只需將檔案再拷貝回去)
4、 能與歸檔方法相結合,做資料庫“最佳狀態”的恢複。
5、 低度維護,高度安全。
但冷備份也有如下不足:
1、 單獨使用時,只能提供到“某一時間點上”的恢複。
2、 再實施備份的全過程中,資料庫必須要作備份而不能作其他工作。也就是說,在冷備份過程中,資料庫必須是關閉狀態。
3、 若磁碟空間有限,只能拷貝到磁帶等其他外部存放裝置上,速度會很慢。
4、 不能按表或按使用者恢複。
如果可能的話(主要看效率),應將資訊備份到磁碟上,然後啟動資料庫(使使用者可以工作)並將備份的資訊拷貝到磁帶上(拷貝的同時,資料庫也可以工作)。冷備份中必須拷貝的檔案包括:
1、 所有資料檔案
2、 所有控制檔案
3、所有聯機REDO LOG檔案
4、 Init.ora檔案(可選)
值得注意的使冷備份必須在資料庫關閉的情況下進行,當資料庫處於開啟狀態時,執行資料庫檔案系統備份是無效的。
下面是作冷備份的完整例子。
(1) 關閉資料庫
sqlplus /nolog
sql>connect /as sysdba
sql>shutdown normal;
(2) 用拷貝命令備份全部的時間檔案、重做記錄檔、控制檔案、初始化參數檔案
sql>cp
(3) 重啟Oracle資料庫
sql>startup
二、 熱備份
熱備份是在資料庫啟動並執行情況下,採用archivelog mode方式備份資料庫的方法。所以,如果你有昨天夜裡的一個冷備份而且又有今天的熱備份檔案,在發生問題時,就可以利用這些資料恢複更多的資訊。熱備份要求資料庫在Archivelog方式下操作,並需要大量的檔案空間。一旦資料庫運行在archivelog狀態下,就可以做備份了。熱備份的命令檔案由三部分組成:
1. 資料檔案一個資料表空間一個資料表空間的備份。
(1) 設定資料表空間為備份狀態
(2) 備份資料表空間的資料檔案
(3) 恢複資料表空間為正常狀態
2. 備份歸檔log檔案
(1) 臨時停止歸檔進程
(2) log下那些在archive rede log目標目錄中的檔案
(3) 重新啟動archive進程
(4) 備份歸檔的redo log檔案
3. 用alter database bachup controlfile命令來備份控制檔案熱備份的優點是:
1. 可在資料表空間或資料庫檔案級備份,備份的時間短。
2. 備份時資料庫仍可使用。
3. 可達到秒級恢複(恢複到某一時間點上)。
4. 可對幾乎所有資料庫實體做恢複
5. 恢複是快速的,在大多數情況下愛資料庫仍工作時恢複。
熱備份的不足是:
1. 不能出錯,否則後果嚴重
2. 若熱備份不成功,所得結果不可用於時間點的恢複
3. 因難於維護,所以要特別仔細小心,不允許“以失敗告終”。
雙機熱備的實現模式
雙機熱備有兩種實現模式,一種是基於共用的存放裝置的方式,另一種是沒有共用的存放裝置的方式,一般稱為純軟體方式。
基於儲存共用的雙機熱備是雙機熱備的最標準方案。
對於這種方式,採用兩台(或多台,參見:雙機與叢集的異同)伺服器,使用共用的存放裝置(磁碟陣列櫃或儲存地區網SAN)。兩台伺服器可以採用互備、主從、並行等不同的方式。在工作過程中,兩台伺服器將以一個虛擬IP地址對外提供服務,依工作方式的不同,將服務要求發送給其中一台伺服器承擔。同時,伺服器通過心跳線(目前往往採用建立私人網路的方式)偵測另一台伺服器的工作狀況。當一台伺服器出現故障時,另一台伺服器根據心跳偵測的情況做出判斷,並進行切換,接管服務。對於使用者而言,這一過程是全自動的,在很短時間內完成,從而對業務不會造成影響。由於使用共用的存放裝置,因此兩台伺服器使用的實際上是一樣的資料,由雙機或叢集軟體對其進行管理。
對於純軟體的方式,則是通過鏡像軟體,將資料可以即時複製到另一台伺服器上,這樣同樣的資料就在兩台伺服器上各存在一份,如果一台伺服器出現故障,可以及時切換到另一台伺服器。
對於這種方式的深入分析,請參見:純軟體方式的雙機熱備方案深入分析
純軟體方式還有另外一種情況,即伺服器只是提供應用服務,而並不儲存資料(比如只進行某些計算,做為應用伺服器使用)。這種情況下同樣也不需要使用共用的存放裝置,而可以直接使用雙機或叢集軟體即可。但這種情況其實與鏡像軟體無關,只不過是標準的雙機熱備的一種小的變化。
雙機容錯的工作原理
1、雙機容錯的兩種方式
雙機容錯從工作原理上可以分為共用磁碟陣列櫃方式和擴充鏡像純軟體方式兩種。這兩種方式的共同特點都是圍繞關鍵資料的可靠性,對作業系統、電源、CPU和主機主板進行容錯。
雙機共用磁碟陣列櫃方式是以磁碟陣列櫃為中心的雙機容錯方神機妙算,磁碟櫃通過SCSI線串連到兩個系統上,並能被兩個系統所訪問。關鍵資料放在共用磁碟櫃中,在正常運行時,控制友在主用系統上,當主用系統發生故障或主用系統檢查到某種故障後,系統控制權就切換到備用主機。主用系統修複後,主備角色互換,雙機系統進入正常工作模式。
雙機擴充鏡像酏軟體方式是純軟體方式的雙機容錯方案,兩個系統之間通過乙太網路串連,關鍵資料在兩個系統之間呈鏡像存在。在正常運行時,控制權在主用系統上,資料即時地鏡像到備用系統上。當主用系統發生故障或主用系統檢查到某種故障後,系統控制權切換到備用主機。由於採用乙太網路作為系統的資料鏈路,主用系統可不干擾備用系統工作,自動脫離並在一個孤立的環境中進行故障的診斷和維修,主用系統修複後,控制權需要切回到主用系統,資料需要從備用系統復原到主用系統,這個工作在後台自動完成,應用讀取資料仍從備用系統上進行而不會中斷。資料恢複完成後,雙機系統進入正常工作模式。
以上兩種雙機容錯的方式已經能很好地保證資料可靠,如果在主、備機上各運行一種應用還可實現相互備份。
2.共用磁碟陣列櫃方式的工作原理
使用共用磁碟陣列櫃方式的兩台(或多台)伺服器的資料同時存放在一個磁碟陣列櫃裡,因此,不需要進行資料複製,只需在其中一台伺服器停機時將此伺服器的工作轉移到另外一台伺服器,工作較為簡單。由於資料存放區在同一磁碟陣列櫃裡,一是磁碟陣列櫃的資料捐贈 壞則資料全部丟失,有單點崩潰的可能性,而且由於伺服器與磁碟陣列櫃之間通常使用SCSI線串連,因此受到距離的了限制。
共用磁碟陣列車櫃方式一般由監控系統與切換系統兩部分組成。
(1) 監控系統
A、SCSI偵測。共用磁碟陣列櫃方式內部含有偵測心跳通訊線路,偵測結果置於共用磁碟陣列柜上的一個5MB的小區,用於監控,此小區一般在機櫃邏輯盤的起始段,對於某一台伺服器而言,將偵測信自己人以類似於記錄方式寫在該小區內,其中每一條記錄包括如下內容。
系統對本伺服器的監測狀態資訊
另一台伺服器是滯看到本伺服器狀態資訊,同時修改記錄區內容。
B、網路偵測。當一台伺服器有問題或出現故障時,對等伺服器的可調變心跳頻率不斷提高。在最小心跳時間內發現記錄內容沒有更新,即會調用網路心跳偵測兩次確認系統狀態。當峽穀線心路都判斷系統故障時,共用磁碟陣列櫃方式將故障伺服器的交易業務在最小安全切換時間內切換到對等伺服器上繼續運行。
C、切換系統
網路伺服器。雙伺服器後台,對於使用者一羰,由監視軟體共用磁碟陣列櫃方式提供一個邏輯的IP地址,如192.192.192.1,任一使用者上網可以直接使用這一地址,當後台其中一台伺服器出現故障時,另外一台伺服器會自己將其網卡的IP地址替換為192.192.192.1,這樣,使用者一端的網路不會因為一台伺服器出現故障而斷掉。
資料庫服務。當其中一台伺服器出現故障時,另外一台伺服器會自動接管資料庫,同時啟動資料庫和應用程式,使使用者資料庫可以繼續操作,對使用者而言不受影響。
應用系統。當有一台伺服器出現故障時,另外一台伺服器會自動接管各類應用程式,同時啟動應用程式,使使用者可以繼續操作,對使用者而言不受影響。
3、擴充鏡像純軟體方式的工作原理
使用純軟體方式的軟體不需要共用磁碟陣列櫃,它將資料存放區於各自伺服器內,通過鏡相引擎將資料進行即時複製。當其中一台伺服器停機時,設定的伺服器接管停機伺服器的工作。由於資料存放區於不同伺服器內,因此避免了單點崩潰的可能性,增加了資料的安全性。伺服器之間通過網路連接,所以伺服器之間的串連受距離的限制較小。由於資料存放區在各自己伺服器硬碟內,因此伺服器之間有應用各不影響,提高了伺服器正常使用時的效率。
4、熱備份
熱備份其實是電腦容錯技術的一個概念,是實現電腦系統高可用性的主要方式。熱備份採用磁碟鏡相技術,將運行著的電腦系統資料和應用資料同時儲存在不同的硬碟上,鏡像在不同的磁碟上的資料在發生變化時同時重新整理,從而保證資料一致性。當系統中的一個硬碟發生故障時,電腦可以使用鏡像資料,避免因系統單點故障(如硬碟故障)導致整個電腦系統無法運行,從而實現電腦系統的高可用性。
現在的電腦系統在系統建設時都普遍採用了熱備份方式,最典型的實現方式是雙機熱備份,即雙機容錯系統。雙機容錯系統在建設時選用兩台同樣伺服器,運行相同的作業系統、應用軟體(如資料庫軟體),兩台伺服器共用一個磁碟陣列,採用磁碟鏡像,將應用資料建立在磁碟陣列車上,實現雙機容錯。其中一台伺服器被指定為工作機,由它處理當前啟動並執行業務,另一台為備份伺服器。一旦工作機發生故障,啟動並執行業務請求將被人工(或自動)地切換到備份伺服器,使運行著的業務不至於因為系統的單點故障中斷,實現系統的高可用性。
熱備份實現了電腦系統的高可用性,使一些對即時性要求很強的業務(如銀行信用卡業務)得以保障。然而,熱備份方式並不能解決所有電腦系統資料管理問題,舉一個最簡單的例子,如果操作人員誤刪除了一個檔案,熱備系統為保證資料的一致性,會同時將這個檔案的鏡像檔案刪除,造成資料丟失。為防止有用的資料因系統故障和人為誤操作而損壞或丟失,實行資料存放區管理必不可少,資料存放區管理的核心是資料備份。
雙機容錯環境下Oracle資料庫的具體應用
目前許多建立和應用資訊系統的企業,在系統應用不斷改進的同時,開始注意提高公司資訊系統的可用性和可靠性。通過雙機容錯系統為企業提供系統高可用性保障是目前企業普遍採用的方法。
醫學機構工作性質的特殊性要求其資訊系統7天×24小時不間斷運行,採用雙機容錯方案為系統提供了高可用解決方案。本文將對醫學資訊系統的雙機容錯環境下Oracle資料庫應用做詳細介紹。
系統配置
該系統的硬體設定如下:
主要資料庫伺服器: 富士通Primergy MS-610伺服器(雙Xeon 700MHz CPU,1GB記憶體)。
Database Backup伺服器: 富士通Team Server C870ie GP5C875(雙PentiumⅢ 700MHz CPU,1GB記憶體)。
容錯軟體: 天地公司的SLHA 3.0軟體包。
磁碟陣列: IQstore R1500(帶2個SCSI介面)。
線路串連: 2台伺服器用RS-232串口線和RJ-45網路線相連(1所示)。
軟體配置如下。
作業系統: Windows NT Server 4.0
伺服器軟體配置: Windows NT 4.0 Service Pack 5、Internet Explorer 5.0、Microsoft Data Access Component 2.0,Oracle資料庫為7.3.3企業版。
雙機容錯的實現
1. 作業系統的安裝
我們用A機表示資料庫伺服器,用B機表示備份資料庫伺服器。首先在物理上將所需硬體裝置串連好,分別在各自伺服器上安裝Windows NT Server 4.0作業系統及補丁包等。然後,進入磁碟管理器,將磁碟陣列劃分為2個邏輯盤D和E,此時2台伺服器都可訪問磁碟陣列。
2.Oracle資料庫的安裝
先關閉B機,在A機上安裝Oracle資料庫,安裝路徑預設為D盤,歸檔日誌放在E盤。安裝完畢後,將Oracle的3個服務(此處SID為ORCL,所以3個服務就是OracleServiceORCL、OracleStartORCL和OracleTNSlistener)的啟動方式改為手動並將此3個服務停止。注意: 改為手動的目的是為了讓這3個服務由雙機容錯軟體來啟動,而不是由作業系統啟動。
然後,關閉A機,啟動B機,格式化D盤,將剛剛由A機建立在磁碟陣列上的Oracle目錄也格式化掉; 在B機上安裝Oracle資料庫,安裝路徑預設為D盤,安裝完畢,同樣將Oracle的3個服務的啟動方式改為手動並停止3個服務。
雙機上安裝Oracle的實質就是將Oracle系統分別裝在2台伺服器上,而資料只儲存在磁碟陣列上。
3.雙機容錯軟體的安裝及雙機容錯環境的建立
雙機容錯軟體的安裝非常簡單,只需啟動A機和B機,在2台伺服器上分別安裝該軟體即可。建立雙機容錯環境是將磁碟陣列上的D盤和E盤以及Oracle 的3個服務交由雙機容錯軟體控制,並由雙機容錯軟體進行切換。
在雙機容錯軟體SLHA的"Configuration"選項中將資料庫伺服器設為Active狀態,即平時正常工作狀態時,此時資料庫伺服器工作,備份伺服器等待。當A機Active時,只有A機可以訪問磁碟陣列,B機不能訪問磁碟陣列。此時,Oracle資料庫伺服器實際上是A機,A機的IP地址就是Active IP Address,同時A機的主機名稱為Active Host Name; 當A機因故不能工作時,A機的狀態會被"心跳線"偵測到,這時B機開始切換到Active狀態,接管磁碟陣列,此時的Oracle資料庫伺服器改為B機,B機的IP地址就是Active IP Address,同時B機的主機名稱為Active Host Name。上述操作均由系統自動完成,實踐證明切換所需的時間很快,對用戶端的影響很小。
需要注意的問題
1.當在A機安裝完Oracle資料庫後在B機安裝Oracle資料庫時,一定要先將磁碟陣列D盤格式化,而不是只將D盤中已由A機安裝的Oracle資料庫刪除,否則可能會出現意想不到的錯誤,例如Oracle偵聽服務失敗等;
2.最終安裝好Oracle資料庫後,要對D:/Oracle/Orant/network/Admin/ Listener.ora檔案進行修改,其中Server名稱一定要改為Active host name Alias,如不進行修改將使用戶端的Oracle資料庫使用者無法串連到Oracle資料庫中。
3.在Hosts檔案中增加一條記錄,使Active IP Address和Active Host Name相互對應,這樣系統就會自動起到解析作用。Hosts檔案位於c:/Winnt/ system32/drivers/etc目錄下。
4.要注意不到萬不得已,不要強行切換,避免產生資料錯誤。如必須對雙機進行切換,可先進入Svrmgr Oracle伺服器控制台,用Shutdown命令關閉Oracle資料庫,再進行切換。
雙機容錯的原理
Oracle資料庫安裝在磁碟陣列上(即圖2中Public Drives),2台伺服器都可以訪問它,但不能同時訪問。Oracle Server for NT主要提供3個服務:OracleServiceSID、OracleStartSID和OracleTNSlistener。在資料庫伺服器正常工作時,由資料庫伺服器控制磁碟陣列櫃,此時只有該伺服器可以訪問磁碟陣列,該伺服器上的Oracle服務處於啟動(Active)狀態,此時該伺服器就扮演圖2中Active Server的角色,備份伺服器處於等待(Standby)狀態,即圖2中Backup Server。
當資料庫伺服器發生故障不能工作時,雙機容錯系統會檢測到資料庫伺服器的狀態,從而使備份伺服器自動啟用,接管磁碟陣列並自動啟動Oracle的3個服務,而對於用戶端來說,只經曆一個短暫的伺服器重啟過程,訪問的資料仍是磁碟陣列中的資料。
注意: 是雙機容錯軟體而不是作業系統來控制Oracle 的啟動和停止,即由雙機容錯軟體來控制這3個Oracle服務的啟動和停止,實現Oracle資料庫在雙機之間的切換