RAC日常维护命令

鉴于工作中经常会用到一些简单的RAC日常维护命令,这里整理一些以便需要的时候查看。这些命令都是查了AIX环境下的,大部分都在实际环境中试验过,其他UNIX/LINUX环境也基本一样。


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
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值