如果是从10g转战11g rac就会发现很多不同之处,其中一个比较大的改变就是在11g中有了一个新特性scan,其实这是一个简称,完整的名称为:SCAN(Single Client Access Name),但是单纯根据简称理解为scan似乎也能说得通。racdb=
(DESCRIPTION =
(ADDRESS= (PROTOCOL= TCP)(HOST=192.168.3.101)(PORT= 1521))
(ADDRESS= (PROTOCOL= TCP)(HOST=192.168.3.201)(PORT= 1521))
(LOAD_BALANCE = yes)
(FAILOVER = ON)
(CONNECT_DATA =
(SERVER= DEDICATED)
(SERVICE_NAME = racdb)
(FAILOVER_MODE =
(TYPE= SELECT)
(METHOD= BASIC)
(RETRIES = 30)
(DELAY = 5))))
但是到了11g中,无须我们这样配置,查看tnsnames.ora里面就只有短短几行内容。
-bash-4.1$ cat tnsnames.ora# Generated by Oracle configuration tools.
RACDB =rac-scan)(PORT = 1521))
整个配置一下子没有了原来的那种高达上的感觉,一下感觉和单实例的数据库配置没有什么两样。这个解析的过程是一个动态处理的过程,比如我们也可以在这个基础上进行扩展,我们希望配备多个scan ip,也是支持的。
首先需要查看scan的状态
LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 16-AUG-2015 07:32:26
Copyright (c) 1991, 2011, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=))(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.3.100)(PORT=1521)))
LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 16-AUG-2015 07:32:10
Copyright (c) 1991, 2011, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=))(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.3.100)(PORT=1521)))
node1:
-bash-4.1$ srvctl status scan_listener
然后我们把scan_listener停掉,然后查看状态
然后使用srvctl modify的方式使其生效。
[[email protected] ~]# ORACLE_HOME=/u04/app/11.2.0/db/product/11.2.0/dbhome_1export ORACLE_HOME=/u04/app/11.2.0/db/product/11.2.0/dbhome_1
[[email protected] ~]# exit
-bash-4.1$ srvctl start scan