Oracle 10G R2 RAC 日常管理.docx
《Oracle 10G R2 RAC 日常管理.docx》由会员分享,可在线阅读,更多相关《Oracle 10G R2 RAC 日常管理.docx(10页珍藏版)》请在冰豆网上搜索。
Oracle10GR2RAC日常管理
Oracle 10G R2 RAC 日常管理
Oracle10GR2RAC日常管理
一、使用srvctl管理RAC数据库
[root@NODE01bin]#pwd
/orac/crs/bin#srvctl在$CRS_HOME/bin目录下,它可以在任何节点上维护。
[root@NODE01bin]#./srvctl
Usage:
srvctl
command:
enable|disable|start|stop|relocate|status|add|remove|modify|getenv|setenv|unsetenv|config
objects:
database|instance|service|nodeapps|asm|listener
Fordetailedhelponeachcommandandobjectanditsoptionsuse:
srvctl
常用的命令主要如下:
1、使用srvctlstatus命令
查看数据库的状态:
[root@NODE01bin]#./srvctlstatusdatabase-dracdb
InstanceRACDB1isrunningonnodenode01
InstanceRACDB2isrunningonnodenode02
查看数据库实例的状态:
[root@NODE01bin]#./srvctlstatusinstance-dracdb-iracdb1,racdb2
Instanceracdb1isrunningonnodenode01
Instanceracdb2isrunningonnodenode02
查看ASM实例的状态:
[root@NODE01bin]#./srvctlstatusasm-nnode01
ASMinstance+ASM1isrunningonnodenode01.
[root@NODE01bin]#./srvctlstatusasm-nnode02
ASMinstance+ASM2isrunningonnodenode02.
查看节点应用程序(VIP、GSD、Listener、ONS)的状态:
[root@NODE01bin]#./srvctlstatusnodeapps-nnode01
VIPisrunningonnode:
node01
GSDisrunningonnode:
node01
Listenerisrunningonnode:
node01
ONSdaemonisrunningonnode:
node01
[root@NODE01bin]#
[root@NODE01bin]#./srvctlstatusnodeapps-nnode02
VIPisrunningonnode:
node02
GSDisrunningonnode:
node02
Listenerisrunningonnode:
node02
ONSdaemonisrunningonnode:
node02
以上的命令在任何节点上都可以执行。
其中-d表示数据库的名字,-i表示instance名称,-n表示节点的主机名。
2、使用srvctlstart/stop命令
srvctlstartasm–nnode01#tostarttheASMinstance
srvctlstopasm–nnode01#tostoptheASMinstance
srvctlstartasm–nnode02#tostarttheASMinstance
srvctlstopasm–nnode02#tostoptheASMinstance
#这里的node01和node02是这个节点的机器名称,通过以上命令,可以在任何节点上执行,用来关闭与启动任何节点上的ASM。
srvctlstartdatabase–dracdb#tostartthedatabaseinstance
srvctlstopdatabase–dracdb#tostopthedatabaseinstance
#forinstance1
srvctlstartinstance–dracdb–iracdb1
srvctlstopinstance–dracdb–iracdb1
#forinstance2
srvctlstartinstance–dracdb–iracdb2
srvctlstopinstance–dracdb–iracdb2
3、使用srvctlconfig命令
查看数据库的配置:
[root@NODE01bin]#./srvctlconfigdatabase
RACDB
[root@NODE01bin]#./srvctlconfigdatabase-dracdb
node01RACDB1/orac/orahome/oracle/product/10.2.0/db_1
node02RACDB2/orac/orahome/oracle/product/10.2.0/db_1
查看ASM实例的配置:
[root@NODE01bin]#./srvctlconfigasm-nnode01
+ASM1/orac/orahome/oracle/product/10.2.0/db_1
[root@NODE01bin]#./srvctlconfigasm-nnode02
+ASM2/orac/orahome/oracle/product/10.2.0/db_1
查看节点应用程序(VIP、GSD、Listener、ONS)的配置:
[root@NODE01bin]#./srvctlconfignodeapps-h
Usage:
srvctlconfignodeapps-n[-a][-g][-o][-s][-l]
-nNodename
-aDisplayVIPconfiguration
-gDisplayGSDconfiguration
-sDisplayONSdaemonconfiguration
-lDisplaylistenerconfiguration
-hPrintusage
[root@NODE01bin]#
[root@NODE01bin]#./srvctlconfignodeapps-nnode01
node01RACDB1/orac/orahome/oracle/product/10.2.0/db_1
[root@NODE01bin]#
[root@NODE01bin]#./srvctlconfignodeapps-nnode01-a-g-s-l
VIPexists.:
/vip01/192.168.1.170/255.255.255.0/eth0
GSDexists.
ONSdaemonexists.
Listenerexists.
[root@NODE01bin]#./srvctlconfignodeapps-nnode02-a-g-s-l
VIPexists.:
/vip02/192.168.1.171/255.255.255.0/eth0
GSDexists.
ONSdaemonexists.
Listenerexists.
二、管理OCR和VotingDisk
Clusterware由2个部分组成,分别是VotingDisk和OCR。
一旦它们丢失或者损坏的话,Clusterware将无法启动,这样整个RAC都将无法启动。
1、VotingDisk(表决磁盘方面)
VotingDisk里面记录着节点成员信息,比如说RAC数据库中有哪些节点成员,节点增加或者删除时也同样会将信息记录进来。
VotingDisk必须存放在共享存储上,通常来说是存放在裸设备上。
为保证VotingDisk的安全,需要配置多个VotingDisk,Oracle建议VotingDisk的个数应该配置为奇数个,每个VotingDisk的大小约为20MB。
查看VotingDisk位置:
[root@NODE01bin]#crsctlquerycssvotedisk
0.0/orac/orahome/clusterdata/votedisk
located1votedisk(s).
[root@NODE01bin]#ll/orac/orahome/clusterdata/votedisk
-rw-rw----1oracleoinstall10240000Dec2502:
13/orac/orahome/clusterdata/votedisk
如果需要更改VotingDisk的配置,对VotingDisk的更改必须以root用户进行修改。
如:
添加一个VotingDisk成员:
crsctladdcssvotedisk‘/dev/raw/raw3’
删除一个VotingDisk成员:
crsctldeletecssvotedisk‘/dev/raw/raw3’
VotingDisk的备份与恢复可以通过dd命令来操作。
备份VotingDisk:
ddif=/dev/rhdisk3of=/tmp/votedisk.bak
恢复VotingDisk:
ddif=/tmp/votedisk.bakof=/dev/rhdisk3
2、OCR方面
OCR记录的是节点成员的配置信息,比如数据库、ASM、实例、监听、VIP等CRS资源的配置信息,CRS进程管理的信息来自于OCR的内容。
OCR记录这CRS进程管理资源的所有配置信息,大小约为100MB。
默认情况下RAC会在其中一个节点每4个小时都自动进行一次OCR的备份,并且保留最近的3次备份。
可以通过命令ocrconfig–showbackup来查看。
[root@NODE01bin]#ocrconfig-showbackup
node022008/12/1903:
38:
17/orac/crs/cdata/crs
node022008/12/1820:
23:
45/orac/crs/cdata/crs
node012008/12/1804:
15:
47/orac/crs/cdata/crs
node012008/12/1804:
15:
47/orac/crs/cdata/crs
node012008/12/1404:
21:
00/orac/crs/cdata/crs
[root@NODE01bin]#
[root@NODE01bin]#ll/orac/crs/cdata/crs/
total15696
-rw-r--r--1rootroot4014080Dec1804:
15backup00.ocr
-rw-r--r--1rootroot4014080Dec1404:
21backup01.ocr
-rw-r--r--1rootroot4014080Dec1804:
15day.ocr
-rw-r--r--1rootroot4014080Dec1404:
21week.ocr
OCR默认的备份路径为$CRS_HOME/cdata/crs,可以通过ocrconfig–backuploc来更改OCR的备份路径;
可以通过ocrconfig–export来导出OCR的内容;
可以通过ocrconfig–import导入OCR的内容;
可以通过ocrconfig–restore命令对OCR进行恢复。
3、其它一些常用命令:
$ORA_CRS_HOME/bin/crsctlcheckcrs#用于检查后台进程状态
$ORA_CRS_HOME/bin/crsctlstartresources#启动crs资源
$ORA_CRS_HOME/bin/crsctlstartcrs#启动crs,需要超级用户操作
$ORA_CRS_HOME/bin/crsctlstopcrs#关闭crs,需要超级用户操作
$ORA_CRS_HOME/bin/crs_unregister#取消注册crs
$ORA_CRS_HOME/bin/ocrcheck#检查ocr设置信息用ocrcheck
$ORA_CRS_HOME/bin/crsctlquerycssvotedisk#检查表决磁盘信息
注意:
执行crsctl命令的可以是root用户,也可以是oracle用户,如果是root用户要指定绝对路径,但是对于crsctlstartcrs和crsctlstopcrs必须是root用户来执行。
crs主要进程:
(1)crsd
负责管理ha操作
管理crs资源,如listener,vip,ons,gsn等
由root用户管理、启动
(2)ocssd
管理各节点的关系,用于节点间通信
由oracle用户运行管理
(3)oprocd
集群进程管理—Processmonitorforthecluster.
仅在没有使用vendor的集群软件状态下运行
(4)evmd
事件检测进程,由oracle用户运行管理
(5)主要log位置
$ORA_CRS_HOME/log/节点主机名/racg
$ORA_CRS_HOME/log/节点主机名/crsd
$ORA_CRS_HOME/crs/init
$ORA_CRS_HOME/css/log
$ORA_CRS_HOME/css/init
$ORA_CRS_HOME/evm/log
$ORA_CRS_HOME/evm/init
$ORA_CRS_HOME/srvm/log
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
CRS的管理
CRSCTL命令控制着本地节点的CRS服务(Oracleclusterwareprocesses)
停止CRS:
$crsctlstopcrs或者
$/etc/init.crsstop或者
$crs_stop–all
启动CRS:
$crsctlstartcrs或者
$/etc/init.crsstart
禁止Clusterware在系统重启后自动启动的方法:
$/etc/init.crsdisable
启动Clusterware在系统重启后自动启动的方法:
$/etc/init.crsenable
查看CRS服务状态
$crsctlcheckcrs
OCR的资源管理
OCR的资源,当RACcluster启动并成功运行以后,你可以使用crs_stat工具看到如下内容:
$ORA_CRS_HOME/bin/crs_stat
通常情况下,所有的资源的状态都应该是online。
另外,OCR每4个小时会备份一次。
有一些情况你可以通过恢复的OCR的配置文件来恢复出现问题的OCR。
比如使用出现如下情况:
$crs_stat-t
CRS-0184:
CannotcommunicatewiththeCRSdaemon.
$crsctlcheckboot
Failure4atprocr_open_keywithstatus4.
PROC-4:
Theclusterregistrykeytobeoperatedondoesnotexist.
$crsctlcheckcrs
Failure1contactingCSSdaemon
CannotcommunicatewithCRS
CannotcommunicatewithEVM
引起这个错误的一种可能原因是OCR配置丢了。
这个我们可以利用这些备份来还原以前的配置。
#/etc/init.crsdisable
#/etc/init.crsstop
先保证所有的crs进程全部停止。
#su–oracle
$cd$ORA_CRS_HOME/bin
$./ocrconfig-restore/opt/app/oracle/crs/cdata/crs/week.ocr
然后切换到root用户下,重新enableCRS
#/etc/init.crsenable
最后reboot两个节点
SRVCTL命令介绍
SRVCTL命令可以控制RAC数据库中的instance,listener以及services。
通常SRVCTL在ORACLE用户下执行。
下面我们来介绍srvctl命令。
1、通过SRVCTL命令来start/stop/check所有的实例:
$srvctlstart|stop|statusdatabase-d
2、start/stop指定的实例:
$srvctlstart|stop|statusinstance-d-i
3、列出当前RAC下所有的
$srvctlconfigdatabase-d
4、start/stop/check所有的nodeapps,比如:
VIP,GSD,listener,ONS:
$srvctlstart|stop|statusnodeapps-n
5、如果你使用ASM,srvctl也可以start/stopASM实例:
$srvctlstart|stopasm-n[-i][-o]
6、可以获取所有的环境信息:
$srvctlgetenvdatabase-d[-i]
7、设置全局环境和变量:
$srvctlsetenvdatabase-d-tLANG=en
8、从OCR中删除已有的数据库:
$srvctlremovedatabase-d
9、向OCR中添加一个数据库:
$srvctladddatabase-d-o
[-m][-p][-A/netmask][-r{PRIMARY|PHYSICAL_STANDBY|LOGICAL_STANDBY}][-s]
10、向OCR中添加一个数据库的实例:
$srvctladdinstance-d-i-n
$srvctladdinstance-d-i-n
11、向OCR中添加一个ASM实例:
$srvctladdasm-n-i-o
12、添加一个service
$srvctladdservice-d-s-r[-a][-P][-u]
13、修改在其他节点上的service
$srvctlmodifyservice-d-s-I-t
14、relocate某个节点的service到其他节点
srvctlrelocateservice-d-s-I
CRS及相关服务的常用命令的演示
1、查看状态的命令
#su–oracle--先切换到oracle用户
$crs_stat-t--查看crs及所有的service的状态
$crsctlcheckcrs--用crsctl命令,检查crs相关服务的状态
$srvctlstatusnodeapps-ndb01(db02)--使用srvctl查看所有节点上的服务是否正常
$srvctlstatusdatabase-ddb--使用srvctl查看数据库状态
启动和关闭相关服务的命令
#su–oracle
$crs_start–all--启动所有的crs服务
$crs_stop–all--停止所有的crs服务
$crsctlstartcrs--启动crs服务
$crsctlstopcrs--停止crs服务
$srvctlstartnodeapps-ndb01(db02)--启动某节点上所有的应用
$srvctlstopnodeapps-ndb01(db02)--停止某节点上所有的应用
$srvctlstartlistener-ndb01(db02)--启动某个节点的listener
$srvctlstoplistener-ndb01(db02)--停止某个节点的listener
$srvctlstartinstance–ddb–idb01(db02)--启动某个instance
$srvctlstopinstance–ddb–idb01(db02)--停止某个instance
$srvctlstartdatabase–ddb--启动数据库
$srvctlstopdatabase–ddb--停止数据