Oracle RAC 日常管理

参考:http://tangyunoracle.itpub.net/post/42756/527400

Oracle RAC 日常管理

1. CRS的管理

Crsctl命令控制着本地节点的crs服务(Oracle clusterware processes)
a. 停止crs:
$crsctl stop crs OR $/etc/init.crs stop OR $crs_stop -all
b. 启动crs:
$crsctl start crs OR $/etc/init.crs start OR $crs_start -all
c. 禁止clusterware在系统重启时自动启动的方法:
$/etc/init.crs disable
d. 启动clusterware在系统重启时自动启动的方法:
$/etc/init.crs disable
e. 查看crs状态
$crsctl check crs


2. OCR的资源管理

OCR的资源,当RAC cluster启动并成功运行以后,你可以使用crs_stat查看crs的内容。
通常的情况下,所有的资源的状态都是online。另外OCR每四个小时会备份一次,有一些情况你可以通过恢复的OCR的配置文件来恢复出现问题的OCR。
$ crs_stat -t 
CRS-0184: Cannot communicate with the CRS daemon. 
$ crsctl check boot 
Failure 4 at procr_open_key with status 4. 
PROC-4: The cluster registry key to be operated on does not exist. 
$ crsctl check crs 
Failure 1 contacting CSS daemon 
Cannot communicate with CRS 
Cannot communicate with EVM 
引起这种错误的原因是因为OCR的配置丢了,我们可以使用这些备份来还原以前的配置。
# /etc/init.crs disable 
# /etc/init.crs stop 
先保证所有的crs进程全部停止。
# su – oracle 
$ cd $ORA_CRS_HOME/bin 
$./ocrconfig -restore /opt/app/oracle/crs/cdata/crs/week.ocr 
然后切换到root用户下,重新enable CRS 
# /etc/init.crs enable 
最后reboot两个节点。


3. SRVCTL命令介绍

SRVCTL命令可以控制RAC数据库中的instance,listener以及services。
通常SRVCTL在ORACLE用户下执行。下面我们来介绍srvctl命令。
a、通过SRVCTL命令来start/stop/check所有的实例:
$ srvctl start|stop|status database -d <db_name>
b、start/stop指定的实例:
$ srvctl start|stop|status instance -d <db_name> -i <instance_name>
c、列出当前RAC下所有的
$ srvctl config database -d <db_name>
d、start/stop/check 所有的nodeapps,比如:VIP, GSD, listener, ONS:
$ srvctl start|stop|status nodeapps -n <node_name>
e、如果你使用ASM,srvctl也可以start/stop ASM实例:
$ srvctl start|stop asm -n <node_name> [-i <asm_inst_name>] [-o<oracle_home>]
f、可以获取所有的环境信息:
$ srvctl getenv database -d <db_name> [-i <instance_name>]
g、设置全局环境和变量:
$ srvctl setenv database -d <db_name> -t LANG=en
h、从OCR中删除已有的数据库:
$ srvctl remove database -d <db_name>
i、向OCR中添加一个数据库:
$ srvctl add database -d <db_name> -o <oracle_home>
[-m <domain_name>] [-p<spfile>] [-A <name|ip>/netmask] [-r {PRIMARY | PHYSICAL_STANDBY |LOGICAL_STANDBY}] [-s <start_options>]
j、向OCR中添加一个数据库的实例:
$ srvctl add instance -d <db_name> -i <instance_name> -n <node1>
$ srvctl add instance -d <db_name> -i <instance_name> -n <node2>
k、向OCR中添加一个ASM实例:
$ srvctl add asm -n <node_name> -i <asm_inst_name> -o <oracle_home>
l、添加一个service
$ srvctl add service -d <db_name> -s <service_name> -r <preferred_list>
[-a <available_list>] [-P <TAF_policy>] [-u]
m、修改在其他节点上的service
$ srvctl modify service -d <db_name> -s <service_name> -I <orig_instance_name> -t <target_instance_name>
n、relocate 某个节点的service到其他节点
srvctl relocate service -d <db_name> -s <service_name> -I
<orig_instance_name> -t <target_instance_name>
例子:
1、 登录其中一台服务器
#su - oracle
>$ srvctl stop database -d tangyunywk -o immediate ---关闭业务库
>$ srvctl stop database -d tangyunzyk -o immediate ---关闭资源库
>$ srvctl stop asm -n tangyunxj1
>$ srvctl stop asm -n tangyunxj2
>$ srvctl stop nodeapps -n tangyunxj1
>$ srvctl stop nodeapps -n tangyunxj2
用crs_stat -t 命令查看,所有服务全部offline后,可以正常关闭服务器
>$ crs_stat -t
#halt -p
登录另一小机,直接执行关机命令:

#halt -p


4. SRVCTL相关的选项

SRVCTL START/STOP/STATUS options: 
-d database name 
-i instance name 
-n node name (for nodeapps)


5. 打开/查看/关闭OEM服务

$emctl start/status/stop dbconsole
WIN:OracleDBConsole$ORACLE_SID
Oracle Net Manager netmgr
Oracle Net Configuration Assistant netca
$lsnrctl start/stop/status {listener}
解决vip漂移的脚本。
vip漂移会导致监听无法启动,需要网络正常之后,重启vip进程。
$crs_stop -f ora.node1.vip
$crs_start ora.node1.vip
$srvctl start listener -n node1

你可能感兴趣的:(Oracle RAC 日常管理)