您好,登錄后才能下訂單哦!
傳統企業比如銀行業和電信業的數據庫大多采用oracle rac+dataguard的高可用架構,在rac項目實施過程中,由于業務連續性的苛刻要求,高可用的實施和測試工作顯得尤為重要。
oracle在新版本12cR2的rac官方文檔里單獨列了一章叫Ensuring application Continuity,重視程度可見一斑。在以前的oracle10g以及11g的版本中,client為實現RAC failover(故障轉移)特性,各類應用app以及db需要作各種配置調整工作,隨著oracle的12cR2新版本的到來,這些配置步驟變得更簡化。
下面簡要總結oracle11gR2環境下的failover配置。
首先根據是否使用了事先已經存在的連接(如連接池中的連接)將客戶端的連接分為Connect Time Connection Failover和Runtime Connection Failover,runtime前綴指連接已經存在的情況,比如使用了連接池。
1、Connect Time Connection Failover
客戶端的tnsnames.ora中配置scan ip和service就可以實現連接數據庫時的Failover;
2、Runtime Connection Failover
oracle通過兩種手段來實現Runtime Connection Failover,分別為TAF(Transparent Application Failover)和 FCF(Fast Connection Failover)。
首先是TAF:
它可以在 client 端的tnsnames.ora中的連接串里定義,也可以在 server 端的 service 中定 義。TAF 僅對使用 OCI 連接的客戶端和連接池有效,這里的 OCI 連接可以是在 OCI 連接上的封裝,比如 JDBC-OCI driver 就支持 TAF,但 JDBC thin driver 就不支持 TAF(因為 JDBC thin driver 不是基于 OCI 的)。
其次是FCF:
Fast Connection Failover,它實際上是客戶端通過訂閱 FAN HA events 來實現的。
因為 JDBC thin 連接不是基于 OCI 的,所以這種情況下的 Runtime Connection Failover 不能使用 TAF,只能用 FCF。
如果想讓應用app具備TAF屬性,可進行簡單app改造:首先在app的client環境安裝oracle客戶端程序,然后將jdbc thin連接調整為jdbc oci的連接方式。
在oracle12cR2的版本中,failover可基于事務,且replay dml語句,相對于11g基于會話,failover功能又大大提升了。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。