暂无图片
突破Oracle3个scanip的限制——一套RAC监听7个scanip的实现方案
最近更新:2023-05-08 11:06:01

1.报告概述

本篇文档针对测试oracle设置多个不同scanip以及service_name主备节点方式的应用的可行性。 客户的需求是: 1、7个单实例的oracle 11g迁移到一个双节点oracle 11g rac上; 2、确认不改原来的IP、端口与服务名(硬性要求); 3、每个库固定在某一个节点给应用访问,并能实现failover。 既然不能改IP、端口与服务名,那么我们需要配置7个scanip且端口号服务名都不同。因为scanip默认为3个,所以需要验证7个的可行性; 至于failover,则用服务主备实现;

2.测试过程

2.1.Oracle设置7个不同的scanip

What is SCAN? Single Client Access Name (SCAN) is a single name that allows client connections to connect to any database in an Oracle cluster independently of which node in the cluster the database (or service) is currently running. The SCAN should be used in all client connection strings and does not change when you add/remove nodes from the cluster. SCAN allows clients to use EZConnect or the this JDBC URL. sqlplus system/@:/

jdbc:oracle:thin:@:/ SCAN is defined as a single name resolving to 3 IP addresses in either the cluster's GNS or your corporate DNS. RAC: Frequently Asked Questions (RAC FAQ) (Doc ID 220970.1)

mos告诉我们,Oracle最多支持3个不同scan ip。但客户需求是大于3的,于是我们采取mos上提供的方法尝试的去添加成n个scanip... 以下测试以7个scanip为例

操作过程: 1.检查当前scan

[oracle@oel6n01 ~]$ srvctl config scan
SCAN 名称: rac17-scan, 网络: 1/192.168.152.0/255.255.255.0/eth0
SCAN VIP 名称: scan1, IP: /rac17-scan/192.168.152.29

2.修改/etc/hosts

[root@oel6n01 bin]# vi /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6


#Public
192.168.152.11   oel6n01
192.168.152.12   oel6n02

#Private
10.10.10.11     oel6n01-priv
10.10.10.12     oel6n02-priv


#VIP
192.168.152.21   oel6n01-vip
192.168.152.22   oel6n02-vip

#SCAN IP
192.168.152.23   rac11-scan
192.168.152.24   rac11-scan
192.168.152.25   rac11-scan
192.168.152.26   rac11-scan
192.168.152.27   rac11-scan
192.168.152.28   rac11-scan
192.168.152.29   rac11-scan

~
~
~
"/etc/hosts" 26L, 560C written

3.查询当前scan

[oracle@oel6n01 ~]$ srvctl config scan
SCAN 名称: rac17-scan, 网络: 1/192.168.152.0/255.255.255.0/eth0
SCAN VIP 名称: scan1, IP: /rac17-scan/192.168.152.29
[oracle@oel6n01 ~]$ srvctl status scan_listener
SCAN 监听程序 LISTENER_SCAN1 已启用
SCAN 监听程序 LISTENER_SCAN1 未运行

4.modify scan

[root@oel6n01 bin]# ./srvctl modify scan -n rac11-scan
[root@oel6n01 bin]# srvctl config scan
SCAN 名称: rac11-scan, 网络: 1/192.168.152.0/255.255.255.0/eth0
SCAN VIP 名称: scan1, IP: /rac11-scan/192.168.152.23
SCAN VIP 名称: scan2, IP: /rac11-scan/192.168.152.24
SCAN VIP 名称: scan3, IP: /rac11-scan/192.168.152.25
SCAN VIP 名称: scan4, IP: /rac11-scan/192.168.152.26
SCAN VIP 名称: scan5, IP: /rac11-scan/192.168.152.27
SCAN VIP 名称: scan6, IP: /rac11-scan/192.168.152.28
SCAN VIP 名称: scan7, IP: /rac11-scan/192.168.152.29
[root@oel6n01 bin]# ./srvctl modify scan_listener -u

5.再次检查当前scan

[root@oel6n01 bin]# srvctl status scan_listener
SCAN 监听程序 LISTENER_SCAN1 已启用
SCAN 监听程序 LISTENER_SCAN1 未运行
SCAN 监听程序 LISTENER_SCAN2 已启用
SCAN 监听程序 LISTENER_SCAN2 未运行
SCAN 监听程序 LISTENER_SCAN3 已启用
SCAN 监听程序 LISTENER_SCAN3 未运行
......