1. 程式人生 > >Oracle RAC failover 測試(連線時故障轉移)

Oracle RAC failover 測試(連線時故障轉移)

1、Oracle failover的幾種方式
  Oracle failover也叫故障轉移,從Oracle 10g開始,分為3種方式:
  a. Client-Side Connect time Failover
    客戶端連線failover模式,此方式較為簡單,只要安裝了rac叢集,預設情況下即被啟用。
  b. TAF
    透明故障轉移,此方式同樣基於客戶端完成,需要配置客戶端tnsnames.ora,連線故障發生時,無須重新連線
  c. Service-Side TAF
    伺服器端透明故障轉移,通過配置service來實現,客戶端無須任何配置。
  
  本文主要演示第一種情形,即客戶端在發起連線請求時如何實現故障轉移    
  注意事項: 不能在listener.ora 檔案中設定GLOBAL_NAME
         該引數會禁用Connect-time Failover 和 Transparent Application Failover

2、Client-Side Connect time Failover
  下面關於Client-Side Connect time Failover來自Oracle 的官方描述 ID 453293.1
  The connect-time failover enables clients to connect to another listener if the initial connection to the first 
  listener fails. The number of listener protocol addresses determines how many listeners are tried. Without 
  connect-time failover, Oracle Net attempts a connection with only one listener. The default is on. 

  Tnsnames Parameter: FAILOVER 
  
  (failover=on) is default for ADDRESS_LISTs, DESCRIPTION_LISTs, and a set of 
  DESCRIPTIONs., therefore, you do not have to specify it explicitly. 

  基於客戶端的failover比較好理解。對於在客戶端tnsnames.ora有多個VIP的情形,客戶端會首先請求定位到第一個VIP,如果第一個VIP不
  可達,則繼續嘗試使用下一個VIP,直到成功建立連線,如果所有的VIP無法連線將收到錯誤訊息。
  通常情況下,我們使用vip作為tnsnames.ora中的連線地址

3、伺服器端、客戶端的環境
  #伺服器端環境,host資訊
  
[email protected]
:~> cat /etc/hosts |grep vip 192.168.7.61 bo2dbp-vip.2gotrade.com bo2dbp-vip 192.168.7.62 bo2dbs-vip.2gotrade.com bo2dbs-vip #伺服器端環境,叢集資訊 [email protected]:~> ./crs_stat.sh Resource name Target State -------------- ------ ----- ora.GOBO4.GOBO4A.inst ONLINE ONLINE on bo2dbp ora.GOBO4.GOBO4B.inst ONLINE ONLINE on bo2dbs ora.GOBO4.db ONLINE ONLINE on bo2dbp ora.bo2dbp.ASM1.asm ONLINE ONLINE on bo2dbp ora.bo2dbp.LISTENER_BO2DBP.lsnr ONLINE ONLINE on bo2dbp ora.bo2dbp.LISTENER_ORA10G_BO2DBP.lsnr ONLINE ONLINE on bo2dbp ora.bo2dbp.gsd ONLINE ONLINE on bo2dbp ora.bo2dbp.ons ONLINE ONLINE on bo2dbp ora.bo2dbp.vip ONLINE ONLINE on bo2dbp ora.bo2dbs.ASM2.asm ONLINE ONLINE on bo2dbs ora.bo2dbs.LISTENER_BO2DBS.lsnr ONLINE ONLINE on bo2dbs ora.bo2dbs.LISTENER_ORA10G_BO2DBS.lsnr ONLINE ONLINE on bo2dbs ora.bo2dbs.gsd ONLINE ONLINE on bo2dbs ora.bo2dbs.ons ONLINE ONLINE on bo2dbs ora.bo2dbs.vip ONLINE ONLINE on bo2dbs ora.ora10g.db ONLINE ONLINE on bo2dbp #客戶端環境
[email protected]
:~> cat /etc/issue Welcome to SUSE Linux Enterprise Server 10 SP3 (x86_64) - Kernel \r (\l). [email protected]:~> sqlplus -v SQL*Plus: Release 10.2.0.3.0 - Production #客戶端tnsnames配置 GOBO4 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.7.61)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.7.62)(PORT = 1521)) (LOAD_BALANCE = yes) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = GOBO4) ) ) 4、連線測試 #首次建立連線,此時客戶端從tnsnames配置的第一個IP建立連線,即192.168.7.61 #VIP 192.168.7.61對應的hostname以及instance_name分別為bo2dbp,GOBO4A,所以我們獲得如下返回結果
[email protected]
:~> sqlplus fail_over/[email protected] [email protected]> get verify.sql 1 REM the following query is for TAF connection verification 2 col sid format 99999 3 col serial# format 9999999 4 col failover_type format a13 5 col failover_method format a15 6 col failed_over format a11 7 Prompt 8 Prompt Failover status for current user 9 Prompt ============================================ 10 SELECT sid, 11 serial#, 12 failover_type, 13 failover_method, 14 failed_over 15 FROM v$session 16 WHERE username = 'FAIL_OVER'; 17 REM the following query is for load balancing verification 18 col host_name format a20 19 Prompt 20 Prompt Current instance name and host name 21 Prompt ======================================== 22* SELECT instance_name,host_name FROM v$instance; 23 [email protected]> @verify.sql Failover status for current user ============================================ SID SERIAL# FAILOVER_TYPE FAILOVER_METHOD FAILED_OVER ------ -------- ------------- --------------- ----------- 1071 249 NONE NONE NO Current instance name and host name ======================================== INSTANCE_NAME HOST_NAME ---------------- -------------------- GOBO4A bo2dbp #停止叢集資料庫的第一個instance,即GOBO4A [email protected]:~> srvctl stop instance -d GOBO4 -i GOBO4A #校驗結果 [email protected]:~> ./crs_stat.sh | grep inst ora.GOBO4.GOBO4A.inst OFFLINE OFFLINE ora.GOBO4.GOBO4B.inst ONLINE ONLINE on bo2dbs #回到客戶端原來的session,此時出現ORA-03114 [email protected]> / SELECT instance_name,host_name FROM v$instance * ERROR at line 1: ORA-03113: end-of-file on communication channel [email protected]> / ERROR: ORA-03114: not connected to ORACLE ERROR: ORA-03114: not connected to ORACLE #下面嘗試重新建立連線 [email protected]> conn fail_over/[email protected] Connected. [email protected]> @verify Failover status for current user ============================================ SID SERIAL# FAILOVER_TYPE FAILOVER_METHOD FAILED_OVER ------ -------- ------------- --------------- ----------- 1062 94 NONE NONE NO Current instance name and host name ======================================== INSTANCE_NAME HOST_NAME ---------------- -------------------- GOBO4B bo2dbs #Author : Robinson #Blog : http://blog.csdn.net/robinson_0612 #從上面的查詢可知,當前的session已經連線到第二個例項。且FAILOVER_TYPE,FAILOVER_METHOD,FAILED_OVER幾個至沒有發生任何變化 #因為這幾個引數主要是針對TAF。 5、小結 a、客戶端連線時的故障轉移,伺服器端和客戶端無需任何配置,預設情況下即被開啟,即failover=on b、只要叢集環境存在(非單節點RAC),客戶端的連線請求會逐個嘗試列出的VIP,直到連線成功為止,如果所有不可連線,返回錯誤 c、客戶端已經建立後,伺服器端例項或節點故障,都將導致客戶端必須重新發起新的連線請求

更多參考

相關推薦

Oracle RAC failover 測試(連線故障轉移)

1、Oracle failover的幾種方式 Oracle failover也叫故障轉移,從Oracle 10g開始,分為3種方式: a. Client-Side Connect time Failover 客戶端連線failover模式,此方式較為簡單,只要

Oracle RAC failover 測試 TAF方式

                    Oracle RAC 客戶端故障轉移(failover),當採用TAF方式時,對於已經建立連線的客戶端,在連線的例項或節點出現故障時,客戶端無需再次發出連線請求,仍然可以繼續之前的資料庫操作,此稱之為透明故障轉移。本文描述基於Oracle 10g rac,客戶端TAF方

ORACLE RAC TAF 配置(透明故障轉移

原文地址:http://blog.itpub.net/17086096/viewspace-1872783/TAF(Transparent Application Failover)即透明應用程式故障轉移技術。當初始化連接出現問題無法連線時,該功能可以保證應用程式重新連線到可

Oracle RAC failover 測試(TAF方式)

    Oracle RAC 客戶端故障轉移(failover),當採用TAF方式時,對於已經建立連線的客戶端,在連線的例項或節點出現故障時,客戶端無需再次發出連線請求,仍然可以繼續之前的資料庫操作,此稱之為透明故障轉移。本文描述基於Oracle 10g rac,客戶端TAF

hadoop hdfs 高可用性安裝 測試 zookeeper 自動故障轉移

安裝基於CentOS 7 安裝,系統非最小化安裝,選擇部分Server 服務,開發工具組。全程使用root使用者,因為作業系統的許可權、安全,在啟動時會和使用其它使用者有差別。Step 1:下載hadoop.apache.org 選擇推薦的下載映象結點; https://hadoop.apache.org/r

Oracle RAC 客戶端連線負載均衡(Load Balance)

        實現負載均衡(Load Balance)是Oracle RAC最重要的特性之一,主要是把負載平均分配到叢集中的各個節點,以提高系統的整體吞吐能力。通常情況下有兩種方式來實現負載均衡,一個是基於客戶端連線的負載均衡,一個是基於伺服器端監聽器(Listener)收

文件 ID 1324574.1 11gR2 RAC 服務在例項關閉不會故障轉移到其他節點

11gR2 RAC Service Not Failing Over To Other Node When Instance Is Shut Down (文件 ID 1324574.1) 11gR2 RAC 服務在例項關閉時不會故障轉移到其他節點 Oracle Datab

連線故障轉移和客戶端負載均衡

當tnsnames.ora檔案中包含至少2個協議地址的時候,用於指定故障轉移和負載均衡的引數可以再檔案中被包含。 sample1= (DESCRIPTION=    (SOURCE_ROUTE=yes)    (ADDRESS=(PROTOCOL=tcp)(HOST=h

Oracle Dataguard故障轉移(failover)操作

注意:故障轉移會破壞DG的主從關係,使其變為互不相關的2個數據庫,謹慎使用。   (一)故障轉移操作流程圖   (二)故障轉移操作流程 備註:以下操作步驟與上面流程圖步驟一一對應   STEP1:重新整理所有未傳送到備庫的日誌到備庫 如果主庫還可以啟動到mount狀態,則重新整

VCSA 6.5 HA 配置之五:故障轉移測試

center style justify 接著上篇文章配置完成VCSA的高可用後,其是否真的能實現高可用的效果,本篇文章將會一探究竟手動故障切換在vCenter HA配置頁面可以看到當前的主動節點、被動節點和見證節點;在例行維護或者其他時候可以手動執行故障切換通過右上方的"啟動故障切換" ,在一般

oracle 11g rac dbca建庫提示創建監聽

oracle 監聽 listener oracle rac Oracle 11g rac dbca建庫時提示創建監聽在安裝oracle 11g rac時,使用dbca建庫的過程中提示需要創建監聽:Default Listener "LISTENER" is not configured in

ORACLE RAC安裝-性能與高可用測試

RAC性能測試 RAC高可用測試 從11G開始,安裝RAC已經變成了一個體力活兒,但是RAC安裝完成後,如何保證系統的穩定運行,如何得到系統的性能,這個對後期在線系統的穩定運行影響巨大。下面是總結了最近1年多來工程實施中的一些經驗。###################################

failover swarm 故障轉移

標記 安全 node database eth1 通過 bip 現在 docker 網絡 #故障轉移 Failover #當其中一個節點關閉宕機時,其節點中的service會轉移到另一個節點上。Swarm會檢測到node1發生故障並把此故障節點的狀態標記為Down; doc

Mongodb 5節點異地兩中心故障轉移恢復測試案例

Mongodb5節點異地兩中心故障轉移恢復測試案例 架構方式:5節點,主中心(2資料1仲裁),備中心(1資料1仲裁)   1基本情況   作業系統:Red Hat Enterprise Linux Server release 6.3 (Santiago)   Mo

記一次Oracle RAC一節點重啟後出現故障的處理

因為儲存的相關操作,客戶需要手動重啟rac節點,然而,這個重啟導致了接下來的事故。。。。 由於是遠端跟我溝通,我回復rac環境下可以重啟一個節點,客戶就自信重啟了,出現的故障如下所示: [grid@hxdb01 ~]$ srvctl start nodeapps

在IDEA上測試連線spark遇到的問題

1.Error:scalac: Scala compiler JARs not found         這個問題是因為在pom.xml中配置的 <properties> <scala.version>2.11.8

連線ORACLE資料庫,是不是必須要安裝oracle客戶端的執行

大神給的回答: net連線oracle使用的是oci介面,必須安裝oracle客戶端,並配置本地網路服務名 tnsnames.ora。不過oracle網站有精簡版的客戶端軟體,不到30M吧,解壓,並編輯tnsnames.ora既可。很是方便,不用安裝700M左右的客戶端 ,而且安裝後還不好解除安裝。如果是j

Failover Cluster(故障轉移群集)

故障轉移群集中的可伸縮性通常是通過擴充套件群集內的單個伺服器,或向其中新增更多功能來實現的。 瞭解以下兩點是很重要的:故障轉移群集必須設計為處理預期負載,各個伺服器的大小應當能夠適應 CPU、記憶體和磁碟使用的預期增長。 Failover Cluster 伺服器通常是高階多處

Oracle RAC的機制與測試方法

Oracle RAC是Oracle Real Application Cluster的簡寫,官方中文文件一般翻譯為“真正應用叢集”。RAC叢集是由若干物理機組成,每個物理機為一個節點,這些節點間通過網線連線(也叫心跳網路)。每個節點上都執行一個例項,這些例項通過CRS(CRS通過一系列的程序和服務來保證叢集的

oracle 客戶端可以連線11g rac vip 但是不能連線scan ip問題

伺服器端叢集資訊如下:01        [[email protected] ~]# /u01/app/11.2.0/grid/bin/crs_stat -t02        Name           Type           Target    State     Host