1.Oracle RAC服務端/etc/hosts部分內容如下
2.查看服務端的local_listener和remote_listener參數
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的版本,監聽配置方法如下
需要指定每一個節點的vipjyzhao =
(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