Oracle RAC架构图和常用命令
Oracle RAC(实时应用集群)是Oracle数据库完全高可用体系解决方案中的一个关键产品,传统大型企业的核心、重要业务系统都采用了Oracle RAC以保障其稳定的数据服务能力。
Oracle RAC是什么样的架构?
我们来了解下,Oracle RAC实时应用集群是一个什么样的架构呢,当前Oracle 主流使用是的Oracle9i、10g、11g版本,可以支持24 x 7 有效的数据库应用系统,能在低成本服务器上构建高可用性数据库系统,并且应用无需修改代码可以自由部署;
Oracle RAC架构如下:
RAC的数据放在共享存储上,计算由数台服务器提供
RAC在传统物理环境下的部署结构
Oracle RAC优点:
1、高并发,但不一定是高性能;
2、高可用性;
- 负载均衡。
RAC不足:
1、相对单机,运维更复杂;
2、SQL性能可能不如单节点更快;
再看Oracle RAC的一些常用命令,参考链接: https://www.modb.pro/db/33922
Oracle Clusterware的命令集可以分为以下4种,其中用的最多的是crsctl和srvctl:
节点层:osnodes
olsnodes -n -i -s
olsnodes -l -p
网络层:oifcfg
oifcfg iflist
oifcfg iflist -p -n
oifcfg getif
集群层:crsctl, ocrcheck,ocrdump,ocrconfig
crs_stat -t
crsctl stat res -t
crsctl对集群组件进行操作
crsctl check crs,css, ctss,evm,has
crsctl check cluster -all
ps -ef | grep crsd,cssd,ctssd,evm,ohas
停止和启动集群的命令(root下单节点,需要添加环境变量):
crsctl stop has/crsctl stop crs
crsctl start has/crsctl start crs
crsctl config has
crsctl disable has
crsctl enable has
控制多个节点
crsctl stop cluster -all
应用层:srvctl,onsctl,crs_stat
srvctl对集群资源进行操作
srvctl status -h
检查所有Oracle实例状态
srvctl status database -d spdb
srvctl config database -d spdb -a -v
检查单个实例状态
srvctl status instance -d spdb -i spdb1
srvctl status instance -d spdb -i spdb2
节点应用程序状态
srvctl status nodeapps
监听器状态以及配置
srvctl status listener
srvctl status listener -l listener1
srvctl status scan_listener
ASM状态
srvctl status asm
srvctl status asm -a
srvctl status asm -v
VIP状态
srvctl status vip -n rac1
srvctl status vip -n rac2
srvctl查看配置
srvctl config -h
列出所有的配置数据库
srvctl config database #列出安装的数据库
srvctl config database -d spdb -a #检查数据库相关的信息
监听配置
srvctl config listener
srvctl config listener -a
ASM配置
srvctl config asm
srvctl config asm -a
SCAN配置
srvctl config scan
srvctl config scan_listener
VIP配置
srvctl config vip -n rac1
srvctl config vip -n rac2
节点应用程序配置
srvctl config nodeapps
验证所有集群节点间的时钟
cluvfy comp clocksync -n rac1,rac2 -verbose
select instance_name,status from gv$instance;
srvctl start database -d spdb # 启动数据库,所有节点的实例
srvctl stop database -d spdb # 关闭数据库,所有节点的实例
srvctl start instance -d fxdb -i spdb1 # 启动指定的实例
srvctl stop instance -d spdb -i spdb1 # 关闭指定实例
srvctl start instance -d fxdb -i spdb1 -o mount
srvctl stop instance -d fxdb -i spdb1 -o immediate
srvctl stop instance -d fxdb -i spdb1 -o abort