2024年6月3日发(作者:)
Oracle12cRAC数据库集群运维宝典
张松坚
(中国农业银行福建省分行,福州350000)
摘要院OracleRAC架构是Oracle数据的一个技术难点之一,力求从基本概念、架构特性、日常运维
命令方面讲述RAC知识要点,以让初学者快速掌握RAC环境运维技能。
关键词院Oracle数据库;12c版本;RAC架构;运维;宝典
流行的
Oracle
12c版本与旧版相比有较大变化
RAC是实现数据库高可用部署的产品
袁包括概念
袁
尧
目前
命
令尧日志等遥是根据实战经验总结的管理RAC必须掌
握的运维技能袁每条命令都经过实践检验而毫无保留地
奉献给读者
1基本概念
遥
RAC
GI-
-
Grid
Real
Infrastructure
ApplicationClusters
渊网格架
渊实时应用集群
构也称为cluster鄄
冤遥
Ware冤遥
管理
ASM
冤遥
-AutomaticStorageManagement渊自动存储
切换冤遥
TAF-TransparentApplicationFailover渊透明应用
CRS-
-
Cluster
Cluster
Ready
Synchronization
Service渊
Services
集群就绪服务
渊集群
冤遥
服务冤遥
CSS同步
ONS
VIP-
-Oracle
Virtual
Notification
IP渊虚拟IP冤袁
Service
浮动的
渊通知服务
IP袁某节点宕
冤遥
机袁其VIP会自动切换到其他节点遥
接名冤袁
SCAN
提供给用户使用的服务
-SingleClientAccess
IP遥
Name渊简单客户端连
从12CR2
OCR
开始
-Oracle
袁GI
Cluster
开始把集群的配置信息进行本地化
Resource渊集群配置信息冤袁
遥
组件的管理功能
CRSCTL院为Oracle
遥
集群控制工具袁提供对集群和底层
中的资源和实体
SRVCTL院为服务控制工具
遥
袁用于管理Oracle集群
2RAC
Oracle
配置与架构
GI是集群软件
12c
袁
RAC
要安装数据库
由GI尧ASM尧RDBMS组成袁其中
实现卷管理和共享存储袁已经集成到
袁必须先安装
GI中曰RDBMS
GI曰ASM
即
96
2019.04
数据库遥配置要求如下院
2.1
对于一个
硬件配置
RAC数据库而言袁至少应包括两个节点遥
在集群中配置的节点越多袁当其中一个节点失效时袁遭
受的性能降级越少遥还需要两台共享存储用于存放数
据袁另一NAS存储用于仲裁遥
2.2
可将数据库和磁盘卷管理解决方案结合在一起
GI
软件配置
是一种可用于所有主流平台上的集群解决方案
遥在安装
袁
RDBMS
2.3
之前要先安装GI遥
一个典型的
网络配置
RACIP地址分配如下院
图1
Public
Network
Private
Network
Instance
Node
1
1
Node
Node
渊Interconnect冤
2
2
2
Instance
Node
3
3
Instance
Node
4
4
Storage
Shared
Network
Storage
图2
用于公用网络通信
RAC中的每个节点最少有
袁一个私网IP
3个
用于集群内节点间通
IP地址院一个地址
作者简介:张松坚袁资深专员袁高级工程师袁研究方
向院数据库系统管理遥
收稿日期:2019-01-24
信袁还有一个VIP用来支持节点发生故障时执行故障
切换遥因此至少需要两个物理网卡来支持RAC遥集群
对外提供服务的统一用SCAN地址遥部署架构如图2
所示遥
2援4
共享磁盘驱动器建议用支持冗余
磁盘存储
RAID的存储设
备
3
袁
RAC
以确保高可用性
RAC
特性
遥
个节点的失效不影响客户会话或集群自身的可用性
集群数据库是高可用和可扩展的袁集群中一
遥一
个节点的失效只是影响集群响应速度的轻微降级袁降级
的程度取决于集群中节点的总数遥
3.1
如图
Clusterware
3所示遥
(GI)主要进程
Oracle
Component
Clusterware
Linux/UNIX
CRS
Process
WindowsServices
Windows
Processes
CSS
,
(r)
cssdmonitor,
,
CTSS
cssdagent
OracleOHService
OracleOHService
EVM
OracleOHService
GIPC
,
(r)
GNS
Grid
gnsd
(r)
LOGGER
PlugandPlay
OracleOHService
mDNS
MasterDiskmon
(r)
Oracleagent
(11.2)
Oracle
and
(11.1)
racgimon
,orracgmain
Availability
High
(r)
ONS
Services
Oraclerootagent
orarootagent
ons
(r)
SYSMON
(r)
图3
重要进程介绍如下院
常终止会导致这个节点的集群或者主机重启
进程院这是一个很核心的进程
遥
袁
这个进程
如果它异
主要用于检查表盘能否正常访问袁节点私网间的通信是
否正常遥
源遥用来启动
进程
尧停止检查一些资源
院这个进程主要用于管理集群中的资
袁比如数据库实例尧
ASM尧
它来发布集群事件
监听尧磁盘组
进程院
尧
袁
事件监控
VIP等遥
比如实例启动
(event
尧停止等事件
monitor)进程
遥
袁由
Ons进程院OracleNotificationServicedaemon袁它用
于接收evmd发来的集群事件袁然后将这些事件发送给
应用预订者或者本地的监听遥
网渊cluster
interconnect冤
进程院这个进程负责管理集群中所有的私
网卡遥
版本
袁以保存构建集群的最基本的信息
进程院维持gpnpprofile配置文件的最新
袁其中包括集群
名称尧集群GUID尧ASMdiscoverystring袁公网和私网信
息等遥
3援2
如图
Oracle
4
12C
所示
RAC
遥
环境下的重要日志
数据库日志
ASM日志
监听日志
日志文件和目录
GI日志
图4
3.3
在
动态性能视图
V$开头的动态性能视图前多个G袁即GV$开头
的对应视图就是RAC环境的动态性能视图袁如GV$IN鄄
STANCE遥
3.4
启动
节点启动
RAC类似启动一个独立实例遥RAC中的节点
可以按任何顺序启动袁并且可以随时关闭和启动它们袁
而对集群内其余节点的影响极小遥启动数据库首先启动
ASM
并加入集群
实例并装载共享磁盘组袁
4常用命令
遥
接下来启动RDBMS实例
下面执行用户默认为grid袁除非用括号特殊说明的
如root用户执行遥带SQL的为SQL语句执行遥
4.1
#crsctl
渊1冤
集群管理
stop
停集群
crs-f
(root
--
用户
常用
)
袁停本节点袁将把所管理的
ASM磁盘组尧数据库尧VIP尧监听等资源停止袁但数据库停
止是shutdownabort方式停止遥
#crsctlstopcluster-all--停止所有节点
#crsctl
渊2冤
start
启动集群
crs--
(root)
常用袁启动本节点袁将把所管理的
2019.04
97
ASM磁盘组尧数据库尧VIP尧监听等资源自动带起袁无需再
单独启动数据库和监听遥
#crsctlstartcluster-all--启动所有节点
$srvctl
渊3冤
start|stop|status
通过srvctl命令来管理指定实例
instance-d-i
grid@RAC3:~>srvctlstatusinstance-dibnkap-i
IBNKAP1
crsctl
渊4冤
start
起停某个或者所有
resource&resoure_name
CRS所管理的资源
crsctlstopresource&resoure_name
crsctlstartresource-all
crsctlstopresource-all
crsctl
渊5冤
start
起停某个初始化服务
resource&resoure_name
渊例如冤
-init
crsctlstopresource&resoure_name-init
crsctl
渊6冤
config
检查
crs
CRS/GRID
--返回
是否随操作系统启动
enable则为随机启动袁disable
--则需要手工启动
crsctl
渊7冤
disable
修改
crs
crs/grid随机器启动的配置
crsctlenablecrs
4.2
渊1冤
状态查看
SQL>show
查看是不是
parameter
RAC
cluster_database
注院cluster_database_instances的value值大于等于
2就是
$olsnodes
渊2冤
rac遥
查询节点
-s
$cemutlo
渊3冤查询集群名称
-n
$oifcfg
渊4冤
getif
查网络情况
$crsctl
渊5冤
status
查看rac
res
状态
-t--常用
$crsctlstatres-t-init--查集群基础资源
$crs_stat-t-v--crs_*命令oracle官方已不建议使用
$crsctlcheckcluster或crsctlcheckcluster-all
$crsctlcheckhas
$crsctlcheckcrs
$ocrcheck--可看空间使用情况
$srvctl
渊6冤
status
节点应用程序状态
nodeapps
98
2019.04
听器冤
渊7冤查看节点应用程序配置渊VIP尧GSD尧ONS尧监
$srvctlconfignodeapps
$srvctl
渊8冤
status
查看
vip
vip网络
-nrac5
4援3
渊1冤
监听器管理
$lsnrctlstart
启动监听器
$lsnrctl
渊2冤
stop
停止监听器
$lsnrctl
渊3冤查看监听器状态
LSNRCTL>status
或院
$srvctlstatuslistener
$srvctl
渊4冤
config
查看监听的配置
listener-a
4.4磁盘组管理
$asmcmd
渊1冤查看磁盘大小及状况
asmcmd>lsdg
或
asmcmdlsdg
或以grid用户sqlplus/assysasm登录
SQL>selectname,state,total_mb,free_mbfromv
$asm_diskgroup;
SQL>selectname,statefromv$asm_diskgroup;
SQL>select
渊2冤查看磁盘位置
name,pathfromv$asm_disk;
$crsctl
渊3冤
query
检查表磁盘
cssvotedisk
以grid
渊4冤
用户登录
grid环境为磁盘组新增磁盘
袁执行asmca命令袁启动ASM配置助
手
#su-grid
$exportDISPLAY=&ip_addr:0.0
$asmca
在DiskGroups页中袁选择要添加磁盘的磁盘组袁
右击出现菜单袁选择AddDisks院
#su–
渊5冤
grid
表空间扩容
$sqlplus野/assysasm冶
SQL>select*fromv$asm_operation;--查看盘重平
--衡状态
SQL>alterdiskgroup&dg_namerebalancepower8;
SQL>select*fromv$asm_operation;
#su–oracle
$sqlplus野/assysdba冶
SQL>Altertablespace&tbs_nameadddatafile耶+DA鄄
TA爷size10239M;
4.5管理ASM
$srvctl
渊1冤
status
查看asm
asm
状态
-a
$srvctl
渊2冤
config
查看asm
asm
配置
-a
$asmcmd
渊3冤查看
showclustermode
asm是不是Flex
4.6数据库管理
$srvctl
渊1冤
config
列出所有配置的数据库
database
$srvctl
渊2冤
config
查看数据库配置
database-d数据库名-a
$srvctl
渊3冤
remove
从OCR
database
中删除已有的数据库
-dorcl
$srvctl
渊4冤
add
向
instance
OCR中添加一个数据库的实例
-d-i-n
4.7管理SCAN
$srvctl
渊1冤
status
查看监听状态
scan
$srvctlstatusscan_listener
$srvctl
渊2冤
config
查看配置
scan
$srvctl
渊3冤
relocate
SCAN切换
scan_listener-i1-nrac6
4援8
$echo
渊1冤
实例管理
$ORACLE_SID
查看当前实例
$export
渊2冤
ORACLE_SID=
切换实例
$srvctl
渊3冤
config
查看运行了几个实例
database
$srvctl
渊4冤
status
查看所有实例运行在什么节点的状态
database-dIBNKAP渊IBNKAP为实
例名冤
或执行SELECTinst_id,instance_numberinst_no,in鄄
stance_nameinst_name,parallel,status,database_
statusdb_status,active_statestate,host_namehost
FROMgv$instance;
$srvctl
渊5冤
status
检查指定实例状态
instance-dibnkap-iIBNKAP2
$srvctl
渊6冤
start
打开单个实例
instance-d
渊以
ibnkap
oracle
-i
用户执行
IBNKAP2
冤
或sqlplus野/assysdba冶
SQL>startup
$srvctl
渊7冤
start
打开指定节点所有实例
instance-dibnkap-node
渊可异节点
rac6
冤
oracle@RAC6:~>srvctlstartinstance-dibnkap-i
IBNKAP2
$srvctl
渊8冤
stop
停止数据库所有实例
database-dibnkap(ibnkap为数据库名冤
srvctl
渊9冤
stop
停止数据库某个实例
instance-i&inst_name-d&db_name
或者
sqlplus野/assysdba冶
SQL>shutdownimmediate
5注意事项
本较高
渊1冤
袁因为集群中的每个节点都必须拥有各自的
RAC数据库有两大缺陷遥首先是它的许可成
Or鄄
acle
宜距离太远
许可袁还需要
袁否则达不到内部数据交换的带宽要求
RAC选项的许可遥另外节点之间不
袁从
而影响集群性能遥
野
先级
实例名
渊2冤RAC环境下修改数据库参数时一定要注意
冶遥
.
举一个例子
参数名字的优先级
院
冶大于野*.参数名字的优
altersystemsetlog_archive_dest_state_2=耶defer爷
scope=both;
生效了袁不再向dataGuard备库传输日志
重启数据库袁发现又传输了遥
showparameterlog_archive_dest_state_2显示为en鄄
able
为什么
create
钥
pfile=耶/tmp/爷fromspfile;
结果显示如下
_archive_dest_state_2=enable
_archive_dest_state_2=enable
*.log_archive_dest_state_2=defer
2019.04
99
发现先前修改的只是野*.log_archive_dest_state_2冶袁
而非每个实例的参数遥
所以正确修改语句如下院
altersystemsetlog_archive_dest_state_2=耶defer爷
sid=耶&inst_1_name爷;
altersystemsetlog_archive_dest_state_2=耶defer爷
sid=耶&inst_2_name爷;
建议生成pfile确认没有野实例名.参数野
对主机名敏感袁不要轻易修改主机名遥
渊3冤对主机名尧网卡尧ASM磁盘一定要注意院RAC
RAC对网卡号敏感袁不要轻易更换网卡号曰添加
有些命令渊如crsctl冤在执行启停操作时需要以root身
份执行袁如院
#vi/root/.bashrc
exportLC_ALL=en_-8
exportPATH=$PATH:/oracle/app/12.1.0/grid/bin
渊5冤需把一些Oracle环境变量加到root用户中袁因
心跳丢失袁为了避免脑裂袁通过仲裁盘决定谁活下来遥
参考文献
渊6冤仲裁盘渊VotingDisk冤只能是奇数个遥当网络
[1]OracleDatabase12cDBA官方手册.8版.BobBry鄄
[2]孙风栋,王澜.Oracle11g数据库基础教程.
故障排除手册.
la[美].
磁盘到ASM前不要赋予pvid袁添加磁盘到ASM后不要
为660袁不要随意修改遥
否则可能导致crs无法正常停止袁强制停止需加-f遥
(上接第83页)
同的类型更加具有相似性袁但是具备相似性的同时还存
在着一定的差异
[7]
遥聚类的划分过程针对的对象不可预
生成pvid袁ASM磁盘设备的数据为grid:asmadmin袁权限
渊4冤停止不必要的的资源渊如尧4j冤袁
[3]TariqFarooq[美].Oracle数据库问题解决方案和
参考文献
[1]王炎冰.软件工程数据挖掘研究进展探析[J].信
息与电脑(理论版),2019,(02):149-150.
子技术与软件工程,2019,(01):141.
[2]梅拥军.软件工程中数据挖掘技术的应用[J].电
[3]程志平,徐涢基.数据挖掘技术在软件工程中的应
210-212.
测性袁与其他算法的过程中袁聚类的应用范围比较广袁
在信息数据的分析方面具有独特性袁在对信息数据进行
挖掘的同时袁还能确保检测的结果具有真实性遥
4结语
用探究[J].信息技术与信息化,2018,(12):
随着我国科技技术的飞越发展袁在信息时代下袁数
据挖掘技术已经成为了对信息数据进行处理尧有效储存
的重要方式袁在软件工程中采用数据挖掘技术袁对软件
进行开发袁对软件工程的管理进行优化袁使数据挖掘进
行加强袁确保数据的挖掘技术发挥出巨大的作用遥与
此同时袁在对数据挖掘的质量进行提升的同时袁还要
不断地缩短时间袁减少成本的投入袁为我国的软件工程
企业创造更大的效益袁为软件工程行业的持续发展提供
保障遥
(上接第81页)
护遥于对MVP设计模式的理解不够充分袁代码存在较
多冗余袁维护起来较繁琐遥为了解决这个问题袁将继续
深入研究设计模式袁并对代码和系统进行重构遥
参考文献
[1]黄柯毓.基于O2O的在线教育系统的设计与实现
[D].电子科技大学,2014.
2019.04
[4]蔡斌.数据挖掘技术在软件工程中的应用[J].电
子技术与软件工程,2018,(21):148.
[5]彭湘华.数据挖掘技术在软件工程中的应用[J].
电子技术与软件工程,2018,(16):156.
子技术与软件工程,2018,(12):177.
[6]高佳华.软件工程中数据挖掘技术的应用[J].电
[7]蒯天宇.数据挖掘技术在软件工程中的应用[J].
数字技术与应用,2018,36(05):112-113.
[2]郭俊.基于安卓智能家居App控制系统及用户行
为研究[D].南昌航空大学,2018.
[3]王学文.基于Android移动应用的性能测试平台关
键技术研究[D].华南理工大学,2015.
大连海事大学,2017.
[4]李辰.基于MVP架构的电商订单管理系统[D].
100


发布评论