標籤:管理 資料庫 oracle rac ha
oracle HA 高可用性詳解(之一,client、server端服務詳解):http://write.blog.csdn.net/postedit
我們已經看到TAF是的Oracle的會話能夠自動重新串連,需要說明的是,這個能力是基於OCI的,是OCI的一個功能,JDBC Thin Driver無效,因為這種驅動不是構建在OCI庫上的。
雖然這個功能發起於RAC,但TAF並不局限於RAC,單一實例、DG環境都可以享受這個好處。Oralce聲稱其TAF能夠保證使用者會話自動的轉移到另一個執行個體上。這一點確實是真的,但是是有水分的。為了深入理解TAF的能力,我們接下來做一個更精細的實驗。
1. TAF和事務
在RAC環境下,可以有三種方式把一個使用者會話遷移到另一個執行個體上,包括altersystem disconnect from session、shutdown、dbms_service包,這三種方式的後台機制和效果其實都是一致的,這三種方法可以把一個會話透明的或者說優雅的從一個執行個體遷移到另一個執行個體,對於這個會話來說,甚至感覺不到這種感覺遷移的發生。我們這個實驗就用alter system的方法進行,這個命令的文法如下:
Altersystem disconnect session [post_transaction | immediate];
這個命令有兩個選項,分別含義如下:
Post_transaction:意思是在事務提交之後再斷開已有串連;
Immediate: 意思是立即中斷連線;
Oracle cluster HA架構
術語介紹
(1) Resource(資源)
資源需要由CRS管理的實體叫做Resource。一般而言是指一個火一組進程。
(2) Resource Dependency(資源依賴性)
不同資源之間會有依賴關係,比如使用ASM作為儲存的資料庫而言,資料庫執行個體就依賴與ASM執行個體。這種依賴關係體現在ASM執行個體必須先於資料庫執行個體啟動,必須等到資料庫執行個體關閉之後才能關閉。而Resource Dependency就是用來說明這種關係的,通過REQUIRED_RESOURCES參數定義。
(3) Application Profile(應用描述檔案)
Application Profile是一個檔案,用來告訴CRS應該如何管理應用程式的。這個檔案通過“屬性=值“的格式來描述應用程式的屬性,比如資源指令碼、資源依賴性、資源檢察頻率等。在使用Oraclecluster HA時,第一步就是建立這個檔案,但這個檔案又是一個過渡檔案,檔案的內容最後要註冊到OCR中。
(4) Action Program
Action Program是一個可執行檔,可以使二進位檔案、更多的是SHELL指令碼。Oracle Cluster HA架構就是通過這個指令碼來完成啟動、關閉、檢查、轉移資源工作的。這個指令碼必須要能夠接受處理start、stop、check這三個參數。
(5) OCR
在配置第三方應用的HA叢集時,Application Profile的內容最後要註冊到OCR中。Oracle Cluster住工作時是從OCR而不是Application Profile讀取配置內容的。
配置命令
(1) crs_profile
配置時有兩個檔案需要建立的,Application Profile和ActionProfile,前者是一個設定檔,後者是一個SHELL指令碼。但實際上這兩個檔案都不需要手工建立,通過這個命令可以自動的建立,讀者只需要在其基礎上進行修改即可。
[[email protected]]# ./crs_profile -h
Usage: crs_profile -create resource_name -t application
[-dir directory_path] [-a action_script] [-B binary_pathname]
[-d description] [-h hosting_members] [-r required_resources]
[-l optional_resources] [-p placement_policy]
[-o as=auto_start,ci=check_interval,ft=failure_threshold,
fi=failure_interval,ra=restart_attempts,fd=failover_delay,
st=script_timeout,ap=active_placement,
ut=uptime_threshold,rt=start_timeout,pt=stop_timeout] [-f] [-q]
crs_profile -create resource_name -I template_file [-dir directory_path][-f] [-q]
crs_profile -delete resource_name [-dir directory_path] [-q]
crs_profile -print [resource_name [...]] [-dir directory_path] [-q]
crs_profile -template resource_name [-dir directory_path] [-Otemplate_file]
crs_profile -template -t application [-O template_file]
crs_profile -update resource_name [-dir directory_path] [option ...] [-ooption,...] [-q]
crs_profile -validate resource_name [-dir directory_path] [-q]
[[email protected] bin]#