12c r2 Rac 实现服务端pdb透明失败切换(taf)

oracle 12c r2 实现服务端pdb透明失败切换
在12c之前,咱们都是经过实例来实现,12c中,若是有多个pdb,那如何实现对每一个pdb服务的taf呢?

环境:
oracle 12c r2 rac
rhel 7.3
db_name:racdb
instance_name:racdb1,racdb2
pdb:kfptdb
scanip:192.168.133.15

实现方法:
1.经过增长服务的方式
在12c 中,增长服务时,咱们能够选择pdb
服务名字,咱们暂定为kfdb
重试次数设定为:180次
等待时间:5秒
策略:basic
方法:basic
失败类型:select

[oracle@rac2 ~]$ srvctl add service -d racdb -s kfdb -r racdb1,racdb2 -P basic -e select -m basic -z 180 -w 5 -pdb kfptdb
2.查看服务的配置信息
[oracle@rac2 ~]$ srvctl config service -d racdb -s kfdb
Service name: kfdb
Server pool: 
Cardinality: 2
Service role: PRIMARY
Management policy: AUTOMATIC
DTP transaction: false
AQ HA notifications: false
Global: false
Commit Outcome: false
Failover type: SELECT
Failover method: BASIC
TAF failover retries: 180
TAF failover delay: 5
Failover restore: NONE
Connection Load Balancing Goal: LONG
Runtime Load Balancing Goal: NONE
TAF policy specification: BASIC
Edition: 
Pluggable database name: kfptdb
Maximum lag time: ANY
SQL Translation Profile: 
Retention: 86400 seconds
Replay Initiation Time: 300 seconds
Drain timeout: 
Stop option: 
Session State Consistency: DYNAMIC
GSM Flags: 0
Service is enabled
Preferred instances: racdb1,racdb2
Available instances: 
CSS critical: no
3.启动服务
--新建立的服务,默认是没有开启
[oracle@rac2 ~]$ srvctl status service -db racdb -service kfdb
Service kfdb is not running.
--启动服务
[oracle@rac2 ~]$ srvctl start service -db racdb -service kfdb
[oracle@rac2 ~]$

4.查看服务的状态
[oracle@rac2 ~]$ srvctl status service -db racdb -service kfdb
Service kfdb is running on instance(s) racdb1,racdb2
[oracle@rac2 ~]$ 
5.看集群资源
[grid@rac1 ~]$ crsctl stat res -t

Name Target State Server State details

Local Resources

ora.ASMNET1LSNR_ASM.lsnr
ONLINE ONLINE rac1 STABLE
ONLINE ONLINE rac2 STABLE
ora.DGACFS.dg
ONLINE ONLINE rac1 STABLE
ONLINE ONLINE rac2 STABLE
ora.DGCRS.dg
ONLINE ONLINE rac1 STABLE
ONLINE ONLINE rac2 STABLE
ora.DGDATA.dg
ONLINE ONLINE rac1 STABLE
ONLINE ONLINE rac2 STABLE
ora.LISTENER.lsnr
ONLINE ONLINE rac1 STABLE
ONLINE ONLINE rac2 STABLE
ora.MGMT.dg
ONLINE ONLINE rac1 STABLE
ONLINE ONLINE rac2 STABLE
ora.net1.network
ONLINE ONLINE rac1 STABLE
ONLINE ONLINE rac2 STABLE
ora.ons
ONLINE ONLINE rac1 STABLE
ONLINE ONLINE rac2 STABLE

Cluster Resources

ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE rac1 STABLE
ora.MGMTLSNR
1 ONLINE ONLINE rac1 169.254.42.209 10.0.
0.10,STABLE
ora.asm
1 ONLINE ONLINE rac1 Started,STABLE
2 ONLINE ONLINE rac2 Started,STABLE
3 OFFLINE OFFLINE STABLE
ora.cvu
1 ONLINE ONLINE rac1 STABLE
ora.mgmtdb
1 OFFLINE OFFLINE STABLE
ora.qosmserver
1 ONLINE ONLINE rac1 STABLE
ora.rac1.vip
1 ONLINE ONLINE rac1 STABLE
ora.rac2.vip
1 ONLINE ONLINE rac2 STABLE
ora.racdb.db
1 ONLINE ONLINE rac1 Open,HOME=/u01/app/o
racle/product/12.2.0
/db_1,STABLE
2 ONLINE ONLINE rac2 Open,HOME=/u01/app/o
racle/product/12.2.0
/db_1,STABLE
ora.racdb.kfdb.svc
1 ONLINE ONLINE rac1 STABLE
2 ONLINE ONLINE rac2 STABLE
ora.scan1.vip
1 ONLINE ONLINE rac1 STABLE

[grid@rac1 ~]$ 
6.测试链接
--在客户端建立一个链接串:
kfdb =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.133.15)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = kfdb) 
)

--经过链接串链接到pdb

SQL> conn system/oracle@kfdb
已链接。
SQL>
--验证一下
SQL> show con_name
CON_NAME

KFPTDB
SQL> show parameter instance_name
NAME TYPE VALUE

instance_name string racdb2
--当前链接到racdb2实例
--下面咱们登录到服务器racdb2实例,关闭该实例,或者关闭该实例上的kfptdb pdb,若是客户端的链接自动切换到racdb1实例,就算成功
--登录racdb2实例
[oracle@rac2 ~]$ sqlplus /nolog
SQL*Plus: Release 12.2.0.1.0 Production on Sat Jul 8 11:43:12 2017
Copyright (c) 1982, 2016, Oracle. All rights reserved.
SQL> conn / as sysdba

SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED

2 PDB$SEED READ ONLY NO
3 KFPTDB READ WRITE NO
SQL> alter pluggable database kfptdb close immediate;
--验证racdb2 上的kfptdb已经关闭
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED

PDB$SEED READ ONLY NO
3 KFPTDB MOUNTED
SQL> 
--racdb2上的kfptdb已经关闭
--回到客户端去看当前链接:
SQL> show parameter instance_name

NAME TYPE VALUE

instance_name string racdb1
SQL>
--能够看到已经切换到racdb1机器上去了sql

相关文章
相关标签/搜索