在Oracle 11gR2 下的RAC,架构发生了变化。CRS的信息也是放在ASM 实例里的,所以要关asm,必须关闭crs, 如果还使用了acfs的话,一关crs那么acfs里的信息也不能访问了,所以一般不重启机器,不轻易关crs, 其他的service可以根据自己的需要去stop/start。
注意:
11g RAC 开启资源相对比较慢(即使命令后面显示的资源都start succeeded,通过crs_stat -t查看都不一定online), 需要耐心并查看log。
在Oracle 11gR2 里引入了Oracle Restart的特性,其用来管理Cluster Resource。
用root用户,在Oracle11gR2中停止和启动集群的命令如下:
#crsctl stop has [-f]
#crsctl start has
注意:
对于crsctl stop has 只有一个可选的参数就是-f,该命令只能停执行该命令服务器上的HAS.而不能停所有节点上的。所以要把RAC 全部停掉,需要在所有节点执行该命令。
下面的2个命令:使用crs 和 使用has 效果是完全一样的:
#crsctl stop crs [-f]
#crsctl start crs
示例:
--停止HAS
[root@rac1 bin]# ./crsctl stophas
CRS-2791:Starting shutdown of Oracle High Availability Services-managed resources on'rac1'
CRS-2673:Attempting to stop 'ora.crsd' on 'rac1'
CRS-2790:Starting shutdown of Cluster Ready Services-managed resources on 'rac1'
CRS-2673:Attempting to stop 'ora.LISTENER_SCAN1.lsnr' on 'rac1'
CRS-2673:Attempting to stop 'ora.OCRVOTING.dg' on 'rac1'
CRS-2673:Attempting to stop 'ora.sdd.db' on 'rac1'
CRS-2673:Attempting to stop 'ora.LISTENER.lsnr' on 'rac1'
CRS-2673:Attempting to stop 'ora.oc4j' on 'rac1'
CRS-2673:Attempting to stop 'ora.cvu' on 'rac1'
CRS-2677: Stopof 'ora.LISTENER_SCAN1.lsnr' on 'rac1' succeeded
CRS-2673:Attempting to stop 'ora.scan1.vip' on 'rac1'
CRS-2677: Stopof 'ora.LISTENER.lsnr' on 'rac1' succeeded
CRS-2673:Attempting to stop 'ora.rac1.vip' on 'rac1'
CRS-2677: Stopof 'ora.rac1.vip' on 'rac1' succeeded
CRS-2672:Attempting to start 'ora.rac1.vip' on 'rac2'
CRS-2677: Stopof 'ora.scan1.vip' on 'rac1' succeeded
CRS-2672:Attempting to start 'ora.scan1.vip' on 'rac2'
CRS-2676:Start of 'ora.scan1.vip' on 'rac2' succeeded
CRS-2676:Start of 'ora.rac1.vip' on 'rac2' succeeded
CRS-2672:Attempting to start 'ora.LISTENER_SCAN1.lsnr' on 'rac2'
CRS-2677: Stopof 'ora.sdd.db' on 'rac1' succeeded
CRS-2673:Attempting to stop 'ora.DATA.dg' on 'rac1'
CRS-2673:Attempting to stop 'ora.FRA.dg' on 'rac1'
CRS-2676:Start of 'ora.LISTENER_SCAN1.lsnr' on 'rac2' succeeded
CRS-2677: Stopof 'ora.FRA.dg' on 'rac1' succeeded
CRS-2677: Stopof 'ora.DATA.dg' on 'rac1' succeeded
CRS-2677: Stopof 'ora.oc4j' on 'rac1' succeeded
CRS-2672:Attempting to start 'ora.oc4j' on 'rac2'
CRS-2677: Stopof 'ora.cvu' on 'rac1' succeeded
CRS-2672:Attempting to start 'ora.cvu' on 'rac2'
CRS-2676:Start of 'ora.cvu' on 'rac2' succeeded
CRS-2677: Stopof 'ora.OCRVOTING.dg' on 'rac1' succeeded
CRS-2673:Attempting to stop 'ora.asm' on 'rac1'
CRS-2677: Stopof 'ora.asm' on 'rac1' succeeded
CRS-2676:Start of 'ora.oc4j' on 'rac2' succeeded
CRS-2673:Attempting to stop 'ora.ons' on 'rac1'
CRS-2677: Stopof 'ora.ons' on 'rac1' succeeded
CRS-2673:Attempting to stop 'ora.net1.network' on 'rac1'
CRS-2677: Stopof 'ora.net1.network' on 'rac1' succeeded
CRS-2792:Shutdown of Cluster Ready Services-managed resources on 'rac1' has completed
CRS-2677: Stopof 'ora.crsd' on 'rac1' succeeded
CRS-2673:Attempting to stop 'ora.mdnsd' on 'rac1'
CRS-2673:Attempting to stop 'ora.ctssd' on 'rac1'
CRS-2673:Attempting to stop 'ora.evmd' on 'rac1'
CRS-2673:Attempting to stop 'ora.asm' on 'rac1'
CRS-2677: Stopof 'ora.evmd' on 'rac1' succeeded
CRS-2677: Stopof 'ora.mdnsd' on 'rac1' succeeded
CRS-2677: Stopof 'ora.ctssd' on 'rac1' succeeded
CRS-2677: Stopof 'ora.asm' on 'rac1' succeeded
CRS-2673:Attempting to stop 'ora.cluster_interconnect.haip' on 'rac1'
CRS-2677: Stopof 'ora.cluster_interconnect.haip' on 'rac1' succeeded
CRS-2673:Attempting to stop 'ora.cssd' on 'rac1'
CRS-2677: Stopof 'ora.cssd' on 'rac1' succeeded
CRS-2673:Attempting to stop 'ora.crf' on 'rac1'
CRS-2677: Stopof 'ora.crf' on 'rac1' succeeded
CRS-2673:Attempting to stop 'ora.gipcd' on 'rac1'
CRS-2677: Stopof 'ora.gipcd' on 'rac1' succeeded
CRS-2673:Attempting to stop 'ora.gpnpd' on 'rac1'
CRS-2677: Stopof 'ora.gpnpd' on 'rac1' succeeded
CRS-2793:Shutdown of Oracle High Availability Services-managed resources on 'rac1' hascompleted
CRS-4133:Oracle High Availability Services has been stopped.
[root@rac1bin]#
注意:
我这里测试的是Oracle11gR2的环境,我们在节点1上执行该命令,只把节点1上的进程停了,而把相关的资源转移到我们的节点2上了,因此也证实了我们上面的说的,该命令只争对当前服务器有效。
--启动HAS:
[root@rac1bin]# ./crsctl start has
CRS-4123:Oracle High Availability Services has been started.
[root@rac1bin]#
从上面看只是启动了HAS。实际上后面会把Oracle Restart 管理的资源都会启动。这个可以使用crs_stat命令来进程验证,不过Oracle 11g的进程启动过程比较慢,需要耐心等待。
[root@rac1u01]# sh crs_stat.sh
Name Target State Host
---------------------------------------- --------- -------
ora.DATA.dg ONLINE ONLINE rac1
ora.FRA.dg ONLINE ONLINE rac1
ora.LISTENER.lsnr ONLINE ONLINE rac1
ora.LISTENER_SCAN1.lsnr ONLINE ONLINE rac2
ora.OCRVOTING.dg ONLINE ONLINE rac1
ora.asm ONLINE ONLINE rac1
ora.cvu ONLINE ONLINE rac2
ora.gsd OFFLINE OFFLINE
ora.net1.network ONLINE ONLINE rac1
ora.oc4j ONLINE ONLINE rac2
ora.ons ONLINE ONLINE rac1
ora.rac1.ASM1.asm ONLINE ONLINE rac1
ora.rac1.LISTENER_RAC1.lsnr ONLINE ONLINE rac1
ora.rac1.gsd OFFLINE OFFLINE
ora.rac1.ons ONLINE ONLINE rac1
ora.rac1.vip ONLINE ONLINE rac1
ora.rac2.ASM2.asm ONLINE ONLINE rac2
ora.rac2.LISTENER_RAC2.lsnr ONLINE ONLINE rac2
ora.rac2.gsd OFFLINE OFFLINE
ora.rac2.ons ONLINE ONLINE rac2
ora.rac2.vip ONLINE ONLINE rac2
ora.scan1.vip ONLINE ONLINE rac2
ora.sdd.db ONLINE ONLINE rac2
该命令的语法如下:
crsctl stop cluster [[-all]|[-n
crsctl start cluster [[-all]|[-n
与1.1 节最大的不同,该参数支持的选项更多,可以同时操控所有的节点。如果不指定参数,那么只对当前节点有效。
如:
[root@rac1 ~]# ./crsctl start cluster -n rac1 rac2
--停止当前节点集群:
[root@rac1 bin]# ./crsctl stop cluster
CRS-2673: Attempting to stop 'ora.crsd' on'rac1'
CRS-2790: Starting shutdown of ClusterReady Services-managed resources on 'rac1'
CRS-2673: Attempting to stop'ora.LISTENER.lsnr' on 'rac1'
CRS-2673: Attempting to stop'ora.OCRVOTING.dg' on 'rac1'
CRS-2673: Attempting to stop 'ora.sdd.db'on 'rac1'
CRS-2677: Stop of 'ora.LISTENER.lsnr' on'rac1' succeeded
CRS-2673: Attempting to stop 'ora.rac1.vip'on 'rac1'
CRS-2677: Stop of 'ora.rac1.vip' on 'rac1'succeeded
CRS-2672: Attempting to start'ora.rac1.vip' on 'rac2'
CRS-2677: Stop of 'ora.sdd.db' on 'rac1'succeeded
CRS-2673: Attempting to stop 'ora.DATA.dg'on 'rac1'
CRS-2673: Attempting to stop 'ora.FRA.dg'on 'rac1'
CRS-2676: Start of 'ora.rac1.vip' on 'rac2'succeeded
CRS-2677: Stop of 'ora.FRA.dg' on 'rac1'succeeded
CRS-2677: Stop of 'ora.DATA.dg' on 'rac1'succeeded
CRS-2677: Stop of 'ora.OCRVOTING.dg' on'rac1' succeeded
CRS-2673: Attempting to stop 'ora.asm' on'rac1'
CRS-2677: Stop of 'ora.asm' on 'rac1'succeeded
CRS-2673: Attempting to stop 'ora.ons' on'rac1'
CRS-2677: Stop of 'ora.ons' on 'rac1'succeeded
CRS-2673: Attempting to stop'ora.net1.network' on 'rac1'
CRS-2677: Stop of 'ora.net1.network' on'rac1' succeeded
CRS-2792: Shutdown of Cluster ReadyServices-managed resources on 'rac1' has completed
CRS-2677: Stop of 'ora.crsd' on 'rac1'succeeded
CRS-2673: Attempting to stop 'ora.ctssd' on'rac1'
CRS-2673: Attempting to stop 'ora.evmd' on'rac1'
CRS-2673: Attempting to stop 'ora.asm' on'rac1'
CRS-2677: Stop of 'ora.evmd' on 'rac1'succeeded
CRS-2677: Stop of 'ora.ctssd' on 'rac1'succeeded
CRS-2677: Stop of 'ora.asm' on 'rac1'succeeded
CRS-2673: Attempting to stop'ora.cluster_interconnect.haip' on 'rac1'
CRS-2677: Stop of'ora.cluster_interconnect.haip' on 'rac1' succeeded
CRS-2673: Attempting to stop 'ora.cssd' on'rac1'
CRS-2677: Stop of 'ora.cssd' on 'rac1'succeeded
[root@rac1 bin]#
这里只停了节点1,相关进程全飘到节点2了,如下:
[root@rac2 u01]# sh crs_stat.sh
Name Target State Host
------------------------------ ------------------- -------
ora.DATA.dg ONLINE ONLINE rac2
ora.FRA.dg ONLINE ONLINE rac2
ora.LISTENER.lsnr ONLINE ONLINE rac2
ora.LISTENER_SCAN1.lsnr ONLINE ONLINE rac2
ora.OCRVOTING.dg ONLINE ONLINE rac2
ora.asm ONLINE ONLINE rac2
ora.cvu ONLINE ONLINE rac2
ora.gsd OFFLINE OFFLINE
ora.net1.network ONLINE ONLINE rac2
ora.oc4j ONLINE ONLINE rac2
ora.ons ONLINE ONLINE rac2
ora.rac1.ASM1.asm ONLINE OFFLINE
ora.rac1.LISTENER_RAC1.lsnr ONLINE OFFLINE
ora.rac1.gsd OFFLINE OFFLINE
ora.rac1.ons ONLINE OFFLINE
ora.rac1.vip ONLINE ONLINE rac2
ora.rac2.ASM2.asm ONLINE ONLINE rac2
ora.rac2.LISTENER_RAC2.lsnr ONLINE ONLINE rac2
ora.rac2.gsd OFFLINE OFFLINE
ora.rac2.ons ONLINE ONLINE rac2
ora.rac2.vip ONLINE ONLINE rac2
ora.scan1.vip ONLINE ONLINE rac2
ora.sdd.db ONLINE ONLINE rac2
--启用当前节点:
[root@rac1 bin]#./crsctl start cluster
CRS-2672: Attempting to start'ora.cssdmonitor' on 'rac1'
CRS-2676: Start of 'ora.cssdmonitor' on'rac1' succeeded
CRS-2672: Attempting to start 'ora.cssd' on'rac1'
CRS-2672: Attempting to start 'ora.diskmon'on 'rac1'
CRS-2676: Start of 'ora.diskmon' on 'rac1'succeeded
CRS-2676: Start of 'ora.cssd' on 'rac1'succeeded
CRS-2672: Attempting to start 'ora.ctssd'on 'rac1'
CRS-2672: Attempting to start'ora.cluster_interconnect.haip' on 'rac1'
CRS-2676: Start of 'ora.ctssd' on 'rac1'succeeded
CRS-2672: Attempting to start 'ora.evmd' on'rac1'
CRS-2676: Start of 'ora.evmd' on 'rac1'succeeded
CRS-2676: Start of'ora.cluster_interconnect.haip' on 'rac1' succeeded
CRS-2672: Attempting to start 'ora.asm' on'rac1'
CRS-2676: Start of 'ora.asm' on 'rac1'succeeded
CRS-2672: Attempting to start 'ora.crsd' on'rac1'
CRS-2676: Start of 'ora.crsd' on 'rac1'succeeded
[root@rac1 bin]#
--简单的输出:
[root@rac1 bin]# ./crsctl check cluster
[root@rac1 bin]# ./crsctl check crs
--详细的信息:
# crs_stat -t
使用crsctl check crs命令,如下:
[root@rac1 bin]# ./crsctl check crs
CRS-4638: Oracle High Availability Servicesis online
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Servicesis online
CRS-4533: Event Manager is online
[root@rac1 bin]# ./crsctl check cluster
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Servicesis online
CRS-4533: Event Manager is online
在第一节中,看到直接停止集群,相关的Resource 也会被停止。 但一些实际情况下,我们操作更多的是对某些资源的操作。具体就是使用SRVCTL 命令
SRVCTL Command Reference for Oracle Restart
http://docs.oracle.com/cd/E11882_01/server.112/e25494/restart005.htm
查看命令帮助:
srvctl –h
这个命令显示的结果太长,不好查看,可以进一步的查看帮助:
--使用-h:
[grid@rac1 ~]$ srvctl start -h
The SRVCTL start command starts, OracleClusterware enabled, non-running objects.
Usage: srvctl start database -d
Usage: srvctl start instance -d
Usage: srvctl start service -d
Usage: srvctl start nodeapps [-n
Usage: srvctl start vip { -n
Usage: srvctl start asm [-n
Usage: srvctl start listener [-l
Usage: srvctl start scan [-i
Usage: srvctl start scan_listener [-n
Usage: srvctl start oc4j [-v]
Usage: srvctl start home -o
Usage: srvctl start filesystem -d
Usage: srvctl start diskgroup -g
Usage: srvctl start gns [-l
Usage: srvctl start cvu [-n
For detailed help on each command andobject and its options use:
srvctl
--或者命令不敲全:
[grid@rac1 ~]$ srvctl database
Usage: srvctl
commands:enable|disable|start|stop|relocate|status|add|remove|modify|getenv|setenv|unsetenv|config|convert|upgrade
objects: database|instance|service|nodeapps|vip|network|asm|diskgroup|listener|srvpool|server|scan|scan_listener|oc4j|home|filesystem|gns|cvu
For detailed help on each command andobject and its options use:
srvctl
srvctl
[grid@rac1 ~]$ crsctl check cluster
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Servicesis online
CRS-4533: Event Manager is online
[grid@rac1 ~]$ srvctl status database -dsdd
Instance sdd1 is running on node rac1
Instance sdd2 is running on node rac2
[grid@rac1 ~]$ srvctl status instance -dsdd -i sdd1
Instance sdd1 is running on node rac1
[grid@rac1 ~]$
[grid@rac1 ~]$ srvctl status nodeapps
VIP rac1-vip is enabled
VIP rac1-vip is running on node: rac1
VIP rac2-vip is enabled
VIP rac2-vip is running on node: rac2
Network is enabled
Network is running on node: rac1
Network is running on node: rac2
GSD is disabled
GSD is not running on node: rac1
GSD is not running on node: rac2
ONS is enabled
ONS daemon is running on node: rac1
ONS daemon is running on node: rac2
[grid@rac1 ~]$ srvctl config database
sdd
[grid@rac1 ~]$ srvctl config database -dsdd -a
Database unique name: sdd
Database name: sdd
Oracle home: /u01/app/oracle/11.2.0/db_1
Oracle user: oracle
Spfile: +DATA/sdd/spfilesdd.ora
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: sdd
Database instances: sdd1,sdd2
Disk Groups: DATA,FRA
Mount point paths:
Services:
Type: RAC
Database is enabled
Database is administrator managed
[grid@rac1 ~]$ srvctl status asm
ASM is running on rac2,rac1
[grid@rac1 ~]$ srvctl status asm -a
ASM is running on rac2,rac1
ASM is enabled.
[grid@rac1 ~]$ srvctl status listener
Listener LISTENER is enabled
Listener LISTENER is running on node(s):rac2,rac1
[grid@rac1 ~]$ srvctl config listener -a
Name: LISTENER
Network: 1, Owner: grid
Home:
/u01/app/grid/11.2.0 on node(s) rac2,rac1
End points: TCP:1521
[grid@rac1 ~]$ srvctl status scan
SCAN VIP scan1 is enabled
SCAN VIP scan1 is running on node rac1
[grid@rac1 ~]$ srvctl config scan
SCAN name: rac-scan, Network:1/192.168.16.0/255.255.255.0/eth0
SCAN VIP name: scan1, IP:/rac-scan/192.168.16.207
[grid@rac1 ~]$ srvctl status vip -n rac1
VIP rac1-vip is enabled
VIP rac1-vip is running on node: rac1
[grid@rac1 ~]$ srvctl status vip -n rac2
VIP rac2-vip is enabled
VIP rac2-vip is running on node: rac2
[grid@rac1 ~]$ srvctl config vip -n rac1
VIP exists: /rac1-vip/192.168.16.201/192.168.16.0/255.255.255.0/eth0,hosting node rac1
[grid@rac1 ~]$ srvctl config vip -n rac2
VIP exists:/rac2-vip/192.168.16.203/192.168.16.0/255.255.255.0/eth0, hosting node rac2
[grid@rac1 ~]$
[grid@rac1 ~]$ srvctl config nodeapps -a -g-s -l
Warning:-l option has been deprecated andwill be ignored.
Network exists:1/192.168.16.0/255.255.255.0/eth0, type static
VIP exists:/rac1-vip/192.168.16.201/192.168.16.0/255.255.255.0/eth0, hosting node rac1
VIP exists:/rac2-vip/192.168.16.203/192.168.16.0/255.255.255.0/eth0, hosting node rac2
GSD exists
ONS exists: Local port 6100, remote port6200, EM port 2016
Name: LISTENER
Network: 1, Owner: grid
Home:
/u01/app/grid/11.2.0 on node(s) rac2,rac1
End points: TCP:1521
srvctl config database # 列出安装的数据库
srvctl config database -d rac -a # 检查数据库相关的信息
srvctlstatus database -d RAC # 检查数据库的状态
srvctl status instance -d RAC -i rac1 # 检查指定实例的状态
srvctl config asm -a # ASM配置
srvctl status asm # ASM的状态
srvctl start database -d rac # 启动数据库
srvctl stop database -d rac # 关闭数据库
srvctl start instance -d rac -i rac1 # 启动指定的实例
srvctl stop instance -d rac -i rac2 # 关闭指定实例
srvctl status listener # 检查TNS listener的状态
srvctl config scan # SCAN的配置
srvctl status scan # SCAN listener状态, 包含当前运行节点的信息
# 检查VIP的配置及状态
srvctl status vip -n rac1
srvctl config vip -n rac1
[root@db02 u01]# crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.DATA.dg ora....up.type ONLINE ONLINE db02
ora.FRA.dg ora....up.type ONLINE ONLINE db02
ora....ER.lsnr ora....er.type ONLINE ONLINE db02
ora....N1.lsnr ora....er.type ONLINE ONLINE db02
ora....N2.lsnr ora....er.type ONLINE ONLINE db02
ora....N3.lsnr ora....er.type ONLINE ONLINE db02
ora.OCR.dg ora....up.type ONLINE ONLINE db02
ora.asm ora.asm.type ONLINE ONLINE db02
ora....-01.vip ora....t1.type ONLINE ONLINE db02
ora....SM2.asm application ONLINE ONLINE db02
ora....02.lsnr application ONLINE ONLINE db02
ora....-02.gsd application OFFLINE OFFLINE
ora....-02.ons application ONLINE ONLINE db02
ora....-02.vip ora....t1.type ONLINE ONLINE db02
ora.cvu ora.cvu.type ONLINE ONLINE db02
ora.gsd ora.gsd.type OFFLINE OFFLINE
ora....network ora....rk.type ONLINE ONLINE db02
ora.oc4j ora.oc4j.type ONLINE ONLINE db02
ora.ons ora.ons.type ONLINE ONLINE db02
ora.orcl.db ora....se.type ONLINE ONLINE db02
ora....taf.svc ora....ce.type ONLINE ONLINE db02
ora.scan1.vip ora....ip.type ONLINE ONLINE db02
ora.scan2.vip ora....ip.type ONLINE ONLINE db02
ora.scan3.vip ora....ip.type ONLINE ONLINE db02
在11g R2中,默认 oc4j和gsd资源是 disable的;oc4j 是用于WLM 的一个资源, WLM在 11.2.0.2 才可用;gsd是 CRS 用于跟 9i RAC 进行通信的一个模块,是为了向后兼容才保留的,不影响性能;建议不要刪除, 也不要尝试开启他们, 忽略即可。
ora.gsd is OFFLINE by default ifthere is no 9i database in the cluster.
ora.oc4j is OFFLINE in 11.2.0.1 as DatabaseWorkload Management(DBWLM) is unavailable. these can be ignored in11gR2 RAC.
状态检查也可以使用如下命令:
crsctl stat resource –t
或者
crsctl stat resource
1、通过SRVCTL命令来start/stop/check所有的实例:
srvctl start|stop|status database -d
2、start/stop指定的实例:
srvctl start|stop|statusinstance -d
3、列出当前RAC下所有的
srvctl config database -d
4、start/stop/check 所有的nodeapps,比如:VIP, GSD, listener, ONS:
srvctl start|stop|status nodeapps -n
5、如果你使用ASM,srvctl也可以start/stop ASM实例:
srvctl start|stop asm -n
6、可以获取所有的环境信息:
srvctl getenv database -d
7、设置全局环境和变量:
srvctl setenv database -d
8、从OCR中删除已有的数据库:
srvctl remove database -d
9、向OCR中添加一个数据库的实例:
srvctl add instance -d
srvctl add instance -d