在Oracle 10g RAC的环境里面,如果数据库出了问题,我们第一时间要检查相关的进程。在Oracle 10g里面所有的进程都是自动启动的。
[root@racr1 ~]# ls -l /etc/init.d/init.*
-r-xr-xr-x 1 root root 2436 Jun 14 10:00 /etc/init.d/init.crs
-r-xr-xr-x 1 root root 5532 Jun 14 10:00 /etc/init.d/init.crsd
-r-xr-xr-x 1 root root 55174 Jun 14 10:00 /etc/init.d/init.cssd
-r-xr-xr-x 1 root root 3499 Jun 14 10:00 /etc/init.d/init.evmd
[root@racr1 ~]#
[root@racr1 ~]# ps -ef | grep init.crs
root 4467 1 0 08:32 ? 00:00:00 /bin/sh /etc/init.d/init.crsd run
root 19462 19185 0 09:03 pts/1 00:00:00 grep init.crs
[root@racr1 ~]#
[root@racr1 ~]# ps -ef | grep init.crsd
root 4467 1 0 08:32 ? 00:00:00 /bin/sh /etc/init.d/init.crsd run
root 19495 19185 0 09:03 pts/1 00:00:00 grep init.crsd
[root@racr1 ~]#
当然我们可以用ps命令查询启动情况,但是还是使用oracle软件提供的crs命令查看比较好
racr1-> whoami
oracle
racr1->
racr1-> crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....D1.inst application ONLINE ONLINE racr1
ora....D2.inst application ONLINE ONLINE racr2
ora.PROD.db application ONLINE ONLINE racr2
ora....SM1.asm application ONLINE ONLINE racr1
ora....R1.lsnr application ONLINE ONLINE racr1
ora.racr1.gsd application ONLINE ONLINE racr1
ora.racr1.ons application ONLINE ONLINE racr1
ora.racr1.vip application ONLINE ONLINE racr1
ora....SM2.asm application ONLINE ONLINE racr2
ora....R2.lsnr application ONLINE ONLINE racr2
ora.racr2.gsd application ONLINE ONLINE racr2
ora.racr2.ons application ONLINE ONLINE racr2
ora.racr2.vip application ONLINE ONLINE racr2
racr1->
正常情况下,所有的进程都是启动着的,如果某个进程有问题的话,我们是无法正常使用数据库的。
如果某个进程出现了问题,我们可以用crs_start | crs_stop命令来开始和结束进程。如果遇到顽固的进程,可以添加-f参数或者直接启动和关闭init.crs进程。
这里就不给出相关例子了,大家可以看dave的相关帖子有介绍。
http://blog.csdn.net/tianlesoftware/article/details/5349003
手动停止RAC
一:停止oem
emctl stop dbconsole
如果你安装了oem就运行这个
二:停止相关进程
racr1-> srvctl stop database -d PROD
racr1->
racr1-> crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....D1.inst application OFFLINE OFFLINE
ora....D2.inst application OFFLINE OFFLINE
ora.PROD.db application OFFLINE OFFLINE
ora....SM1.asm application ONLINE ONLINE racr1
ora....R1.lsnr application ONLINE ONLINE racr1
ora.racr1.gsd application ONLINE ONLINE racr1
ora.racr1.ons application ONLINE ONLINE racr1
ora.racr1.vip application ONLINE ONLINE racr1
ora....SM2.asm application ONLINE ONLINE racr2
ora....R2.lsnr application ONLINE ONLINE racr2
ora.racr2.gsd application ONLINE ONLINE racr2
ora.racr2.ons application ONLINE ONLINE racr2
ora.racr2.vip application ONLINE ONLINE racr2
racr1->
停了数据库,这里用的是 stop database,把所有节点都停止了。你也可以使用stop instance -d 来单个停止每个实例。
racr1-> srvctl stop asm -n racr1
racr1->
racr1-> crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....D1.inst application OFFLINE OFFLINE
ora....D2.inst application OFFLINE OFFLINE
ora.PROD.db application OFFLINE OFFLINE
ora....SM1.asm application OFFLINE OFFLINE
ora....R1.lsnr application ONLINE ONLINE racr1
ora.racr1.gsd application ONLINE ONLINE racr1
ora.racr1.ons application ONLINE ONLINE racr1
ora.racr1.vip application ONLINE ONLINE racr1
ora....SM2.asm application ONLINE ONLINE racr2
ora....R2.lsnr application ONLINE ONLINE racr2
ora.racr2.gsd application ONLINE ONLINE racr2
ora.racr2.ons application ONLINE ONLINE racr2
ora.racr2.vip application ONLINE ONLINE racr2
racr1->
racr1-> srvctl stop asm -n racr2
racr1->
racr1-> crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....D1.inst application OFFLINE OFFLINE
ora....D2.inst application OFFLINE OFFLINE
ora.PROD.db application OFFLINE OFFLINE
ora....SM1.asm application OFFLINE OFFLINE
ora....R1.lsnr application ONLINE ONLINE racr1
ora.racr1.gsd application ONLINE ONLINE racr1
ora.racr1.ons application ONLINE ONLINE racr1
ora.racr1.vip application ONLINE ONLINE racr1
ora....SM2.asm application OFFLINE OFFLINE
ora....R2.lsnr application ONLINE ONLINE racr2
ora.racr2.gsd application ONLINE ONLINE racr2
ora.racr2.ons application ONLINE ONLINE racr2
ora.racr2.vip application ONLINE ONLINE racr2
racr1->
停止所有节点上面的ASM实例。
racr1-> srvctl stop asm -n racr1
racr1->
racr1-> crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....D1.inst application OFFLINE OFFLINE
ora....D2.inst application OFFLINE OFFLINE
ora.PROD.db application OFFLINE OFFLINE
ora....SM1.asm application OFFLINE OFFLINE
ora....R1.lsnr application ONLINE ONLINE racr1
ora.racr1.gsd application ONLINE ONLINE racr1
ora.racr1.ons application ONLINE ONLINE racr1
ora.racr1.vip application ONLINE ONLINE racr1
ora....SM2.asm application ONLINE ONLINE racr2
ora....R2.lsnr application ONLINE ONLINE racr2
ora.racr2.gsd application ONLINE ONLINE racr2
ora.racr2.ons application ONLINE ONLINE racr2
ora.racr2.vip application ONLINE ONLINE racr2
racr1->
racr1-> srvctl stop asm -n racr2
racr1->
racr1-> crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....D1.inst application OFFLINE OFFLINE
ora....D2.inst application OFFLINE OFFLINE
ora.PROD.db application OFFLINE OFFLINE
ora....SM1.asm application OFFLINE OFFLINE
ora....R1.lsnr application ONLINE ONLINE racr1
ora.racr1.gsd application ONLINE ONLINE racr1
ora.racr1.ons application ONLINE ONLINE racr1
ora.racr1.vip application ONLINE ONLINE racr1
ora....SM2.asm application OFFLINE OFFLINE
ora....R2.lsnr application ONLINE ONLINE racr2
ora.racr2.gsd application ONLINE ONLINE racr2
ora.racr2.ons application ONLINE ONLINE racr2
ora.racr2.vip application ONLINE ONLINE racr2
racr1->
racr1->
racr1-> srvctl stop nodeapps -n racr1
racr1-> crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....D1.inst application OFFLINE OFFLINE
ora....D2.inst application OFFLINE OFFLINE
ora.PROD.db application OFFLINE OFFLINE
ora....SM1.asm application OFFLINE OFFLINE
ora....R1.lsnr application OFFLINE OFFLINE
ora.racr1.gsd application OFFLINE OFFLINE
ora.racr1.ons application OFFLINE OFFLINE
ora.racr1.vip application OFFLINE OFFLINE
ora....SM2.asm application OFFLINE OFFLINE
ora....R2.lsnr application ONLINE ONLINE racr2
ora.racr2.gsd application ONLINE ONLINE racr2
ora.racr2.ons application ONLINE ONLINE racr2
ora.racr2.vip application ONLINE ONLINE racr2
racr1->
racr1-> srvctl stop nodeapps -n racr2
racr1->
racr1-> crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....D1.inst application OFFLINE OFFLINE
ora....D2.inst application OFFLINE OFFLINE
ora.PROD.db application OFFLINE OFFLINE
ora....SM1.asm application OFFLINE OFFLINE
ora....R1.lsnr application OFFLINE OFFLINE
ora.racr1.gsd application OFFLINE OFFLINE
ora.racr1.ons application OFFLINE OFFLINE
ora.racr1.vip application OFFLINE OFFLINE
ora....SM2.asm application OFFLINE OFFLINE
ora....R2.lsnr application OFFLINE OFFLINE
ora.racr2.gsd application OFFLINE OFFLINE
ora.racr2.ons application OFFLINE OFFLINE
ora.racr2.vip application OFFLINE OFFLINE
racr1->
RAC的开启和这个正好相反。
对了,大家看见这个上面的进程名字是不是有省略的点。。那么。。怎么看全程呢
直接用crs_stat 不要带t了
crs、ASM和数据库的日志路径
1.crs日志路径
racr1-> pwd
/u01/app/oracle/product/10.2.0/crs_1/log/racr1
racr1->
racr1-> ls
admin alertracr1.log client crsd cssd evmd racg
racr1->
2.ASM日志路径
racr1-> cd /u01/app/oracle/admin/+ASM/bdump
racr1-> ll
total 124
-rw-r----- 1 oracle oinstall 15840 Jul 6 08:47 alert_+ASM1.log
3.数据库日志
racr1-> cd /u01/app/oracle/admin/PROD/bdump/
racr1-> ll
total 216
-rw-r----- 1 oracle oinstall 44947 Jul 6 08:39 alert_PROD1.log
-rw-r----- 1 oracle oinstall 895 Jun 14 18:26 prod1_diag_15627.trc
建议大家启动的时候就看着日志文件,可以使用tail -f命令。
其实谁也记不住那么多的命令,但是大家知道什么是help吧,其实可以这样用的
racr1-> srvctl -help
Usage: srvctl <command> <object> [<options>]
command: enable|disable|start|stop|relocate|status|add|remove|modify|getenv|setenv|unsetenv|config
objects: database|instance|service|nodeapps|asm|listener
For detailed help on each command and object and its options use:
srvctl <command> <object> -h
racr1->
racr1->
racr1->
racr1-> srvctl start nodeapps -h
Usage: srvctl start nodeapps -n <node_name>
-n <node> Node name
-h Print usage
racr1->
racr1->
racr1-> srvctl start database -h
Usage: srvctl start database -d <name> [-o <start_options>]
-d <name> Unique name for the database
-o <start_options> Options to startup command (e.g. open, mount, or nomount)
-h Print usage
racr1->
好了,不怕记不住了。