Home > Database > Mysql Tutorial > Oracle RAC系列之:利用srvctl管理RAC数据库

Oracle RAC系列之:利用srvctl管理RAC数据库

WBOY
Release: 2016-06-07 17:20:01
Original
1084 people have browsed it

srvctl即Server Control,是Oracle提供的一个命令行工具,用以用于管理Oracle的RAC环境。srvctl在Oracle 9i中被引入,Oracle10g、

srvctl即Server Control,是Oracle提供的一个命令行工具,用以用于管理Oracle的RAC环境。srvctl在Oracle 9i中被引入,Oracle10g、11g对其功能进行了很大的增强和改进。下面介绍下此命令的简单用法。

一、 查看实例状态(srvctl status)
查询所有实例和服务的状态:
[oracle@node-rac1 ~]$ srvctl status database -d racdb
Instance racdb2 is running on node node-rac2
Instance racdb1 is running on node node-rac1
查询实例racdb1的状态:
[oracle@node-rac1 ~]$ srvctl status instance -d racdb -i racdb1
Instance racdb1 is running on node node-rac1
查询实例racdb2的状态:
[oracle@node-rac1 ~]$ srvctl status instance -d racdb -i racdb2
Instance racdb2 is running on node node-rac2
查询特定节点上应用程序的状态:
[oracle@node-rac1 ~]$ srvctl status nodeapps -n node-rac2
VIP is running on node: node-rac2
GSD is running on node: node-rac2
Listener is running on node: node-rac2
ONS daemon is running on node: node-rac2
查询特定节点上ASM实例的状态
[oracle@node-rac1 ~]$ srvctl status asm -n node-rac2
ASM instance +ASM2 is running on node node-rac2.
在上面的命令行操作中,都用到的参数是:
-d,即database name,表示数据库名称
-n,即node name,表示节点名称
-i,即instance name,表示实例名称

二、 查看RAC数据库设置信息(srvctl config)
显示 RAC 数据库的配置:
[oracle@node-rac1 ~]$ srvctl config database -d racdb
node-rac2 racdb2 /u01/oracle/product/11.0.6/rac_db
node-rac1 racdb1 /u01/oracle/product/11.0.6/rac_db
列出配置的所有数据库:
[oracle@node-rac1 ~]$ srvctl config database
racdb
显示指定节点的应用程序配置:
[oracle@node-rac1 ~]$ srvctl config nodeapps -n node-rac2
VIP exists.: /node-vip2/192.168.12.240/255.255.255.0/eth0
GSD exists.
ONS daemon exists.
Listener exists.
显示指定节点的ASM实例配置:
[oracle@node-rac1 ~]$ srvctl config asm -n node-rac2       
+ASM2 /u01/oracle/product/11.0.6/rac_db

三、 启动/关闭实例(srvctl start/stop)
停止Oracle RAC所有服务:
[oracle@node-rac1 ~]$ emctl stop dbconsole
[oracle@node-rac1 ~]$ srvctl stop instance -d racdb -i racdb1
[oracle@node-rac1 ~]$ srvctl stop asm -n node-rac1
[oracle@node-rac1 ~]$ srvctl stop nodeapps -n node-rac1
也可以通过一条命令停止所有实例及其启用的服务:
[oracle@node-rac1 ~]$srvctl stop database -d racdb
启动Oracle RAC所有服务:
[oracle@node-rac1 ~]$ srvctl start nodeapps -n node-rac1
[oracle@node-rac1 ~]$ srvctl start asm -n node-rac1
[oracle@node-rac1 ~]$ srvctl start instance -d racdb -i racdb1
[oracle@node-rac1 ~]$ emctl start dbconsole
也可以通过一条命令启动所有实例及其启用的服务:
[oracle@node-rac1 ~]$srvctl start database -d racdb

四、 增加/删除/修改实例(srvctl add/remove/modify)
增加一个服务,,然后在节点间切换此服务:
[oracle@node-rac1 ~]$ srvctl add service -d racdb -s test -r racdb1 -a racdb2 -P BASIC
其中参数的含义如下:
-r, 表示首选实例
-a,表示可用的实例
-P,表示故障切换策略,有none、BASIC、preconnect三个可选项
在集群节点之间切换集群服务:
[oracle@node-rac1 ~]$ srvctl start service -d racdb -s test -i racdb1
[oracle@node-rac1 ~]$ srvctl status service -d racdb -s test
Service test is running on instance(s) racdb1
[oracle@node-rac1 ~]$ srvctl stop  service  -d racdb -s test -i racdb1  
[oracle@node-rac1 ~]$ srvctl start  service  -d racdb -s test -i racdb2
[oracle@node-rac1 ~]$ srvctl status  service  -d  racdb -s test
Service test is running on instance(s) racdb2
从某个实例节点移除一个服务:
[oracle@node-rac1 ~]$ srvctl remove service -d racdb -s test -i racdb2
test PREF: racdb1 racdb2 AVAIL:
Remove service test from the instance racdb2? (y/[n]) y
使数据库服务对某个实例可用:
[oracle@node-rac1 ~]$ srvctl add service -d racdb -s test -u -a racdb2
[oracle@node-rac1 ~]$ srvctl start service -d racdb -s test          
[oracle@node-rac1 ~]$ srvctl modify service -d racdb -s test -i racdb2 –r

linux

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template