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

php中文网
发布: 2016-06-07 17:20:01
原创
1416人浏览过

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

LuckyCola工具库
LuckyCola工具库

LuckyCola工具库是您工作学习的智能助手,提供一系列AI驱动的工具,旨在为您的生活带来便利与高效。

LuckyCola工具库 19
查看详情 LuckyCola工具库

三、 启动/关闭实例(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

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号