Oracle RAC客戶端tnsnames.ora相關配置及測試


1.Oracle RAC服務端/etc/hosts部分內容如下

2.查看服務端的local_listener和remote_listener參數

3.客戶端tnsnames.ora配置參考

4.測試failover功能

1. Oracle RAC服務端/etc/hosts部分內容如下

#public ip
172.16.7.112  jyracdb1
172.16.7.114  jyracdb2 
#virtual ip
172.16.7.113  jyracdb1-vip
172.16.7.115  jyracdb2-vip
#scan ip(11g RAC 新特性)
172.16.7.120 jyracdb-scan

2. 查看服務端的local_listener和remote_listener參數

## 2.1 節點1 Oracle用戶登錄sqlplus / as sysdba ##
SQL> show parameter listener

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
listener_networks                    string
local_listener                       string       (ADDRESS=(PROTOCOL=TCP)(HOST=
                                                 172.16.7.113)(PORT=1521))
remote_listener                      string      jyracdb-scan:1521
SQL> 

2.2 節點2 Oracle用戶登錄sqlplus / as sysdba

SQL> show parameter listener

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
listener_networks                    string
local_listener                       string       (ADDRESS=(PROTOCOL=TCP)(HOST=
                                                 172.16.7.115)(PORT=1521))
remote_listener                      string      jyracdb-scan:1521
SQL> 

3. 客戶端tnsnames.ora配置參考

3.1 10g的版本,監聽配置方法如下

需要指定每一個節點的vip
jyzhao =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.7.113)(PORT = 1521))
    (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.7.115)(PORT = 1521))
    (LOAD_BALANCE = yes)
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = jyzhao)
      (FAILOVER_MODE =
           (TYPE = session)
           (METHOD = basic)
           (RETRIES = 180)
           (DELAY = 5)  
      )
    )
  )

3.2 11g的版本,監聽配置方法如下

11g引進scanIP的新特性,即只需要指定scanIP,不再需要指定vip,對於RAC增加節點不需要再重新配置所有客戶端的tnsnames.ora。 當然不用scanIP,還用之前的vip也是可以的。
jyzhao_scan =
 (DESCRIPTION =
   (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.7.120)(PORT = 1521))
   )
   (CONNECT_DATA =
     (SERVICE_NAME = jyzhao)
     (FAILOVER_MODE =
          (TYPE = session)
          (METHOD = basic)
          (RETRIES = 180)
          (DELAY = 5)  
     )
   )
 )

3.3 業務分割,連接到實例1的業務

當實例1正常時,固定連接到實例1:
jyzhao1 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.7.113)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = jyzhao)
    )
  )

3.4 業務分割,連接到實例2的業務

當實例2正常時,固定連接到實例2:
jyzhao2 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.7.115)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = jyzhao)
    )
  )

4. 測試failover功能

如下面的測試用例: 確定開始隨機連接到的是實例2,然后殺掉實例2, 此時查詢`select instance_name, status from v$instance;`,會報錯ORA-25408, 再次查詢,發現已經自動failover到實例1。
C:\Documents and Settings\Administrator>sqlplus jingyu/jingyu@jyzhao

SQL*Plus: Release 11.2.0.1.0 Production on Tue Jul 28 11:04:13 2015

Copyright (c) 1982, 2010, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management,
OLAP,
Data Mining and Real Application Testing options

SQL> select instance_name, status from v$instance;

INSTANCE_NAME    STATUS
---------------- ------------
jyzhao2          OPEN


SQL> select instance_name, status from v$instance;
select instance_name, status from v$instance
*
ERROR at line 1:
ORA-25408: can not safely replay call

SQL> select instance_name, status from v$instance;

INSTANCE_NAME    STATUS
---------------- ------------
jyzhao1          OPEN


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM