Oracle RAC日常管理以及oracle crs起停步骤及srvctl crsctl 命令用法

srvctl stop nodeapps -n dss-db32  //132.63.10.34 instance

srvctl stop nodeapps -n dss-db42  //132.63.10.35 instance

 

srvctl stop database -d ctgdw -o immediate //ctgdw数据库

 132.63.10.35 oracle用户

crs_stat -t -v   查看是否都已offline

 

132.63.10.34 root用户:

cd /oracle/crs/product/10.2.0/bin

./crsctl stop crs    //停集群服务

 

.34上操作的过程中

132.63.10.35 oracle用户:

ps -ef |grep oracle

ps -ef |grep crs

查看oraclecrs进程 

 

132.63.10.34 root用户:

cd /oracle/crs/product/10.2.0/bin

./crsctl start crs

 

完成后

ps -ef |grep oracle

ps -ef |grep crs

查看进程

crs_stat -t -v 监控所有进程是否都为online

 如果没启动

srvctl start database -d ctgdw

srvctl start nodeapps -n dss-db32 

srvctl start nodeapps -n dss-db42

 

Oracle10g RAC关闭及启动步骤
 
情况1:需要关闭DB(所有实例),OS及Server。
a.首先停止Oracle10g环境
$ lsnrctl stop (每个节点上停止监听,也可以用srvctl来操作)
或者
$ srvctl stop listener -n host1(在节点1上停止监听)
$ emctl stop dbconsole (每个节点停止dbconsole)
$ srvctl stop database -d orcl (停止数据库所有实例)
$ srvctl stop nodeapps -n host1 (停节点1服务)
$ srvctl stop nodeapps -n host2 (停节点2服务)
# /etc/init.d/init.crs stop (root停cluster软件)
 
停机顺序为,先停监听->实例->服务->cluster 软件
或者用$ crs_stop -all
b.然后# init 0关闭服务器,或者如果重新启动#init 6
c.关闭电源。
d.开启Server ,开始开启Oracle10g数据库及服务等(如果OS重新启动,那么下面的所有服务是自动打开的【除了dbconsole】,不用手工执行了)。
$ srvctl start nodeapps -n gnd-rac01 (停节点1服务)
$ srvctl start nodeapps -n gnd-rac02 (停节点2服务)
# /etc/init.d/init.crs start (root停cluster软件)
或者用$ crs_start –all
$ srvctl start database -d tpc (停止数据库所有实例)
$ lsnrctl start (每个节点上停止监听,也可以用srvctl来操作)
$ emctl start dbconsole (每个节点停止dbconsole)
注:srvctl也可以用来关闭某个实例:srvctl stop instance -d orcl -i orcl2
srvctl开启关闭监听器:srvctl stop listener -n orcl2
srvctl start listener -n orcl2
 
最简单的停机方法:
$crs_stop -all  
$crs_stat -t 查看是否全是OFFLINE
root用户执行:# crsctl stop crs   
init 0或 init  6
启动方法:
# crsctl start crs
$ crs_start –all
$ crs_stat -t
 
情况2:调整数据库参数的时候,只关闭所有节点实例,不重新启动OS及Server。
a.首先停止Oracle10g环境
$ lsnrctl stop (在所有节点上停止监听,也可以用srvctl)
$ srvctl stop database -d orcl (停止数据库所有实例)
b.然后开启所有实例及监听器。
$ srvctl start database -d orcl (开启数据库所有实例)
$ lsnrctl start (开启所有节点上监听,也可以用srvctl开启监听)
 
情况3:不关闭操作系统的情况下,由于问题点或调整某些服务而需要关闭然后开启某些服务程序等。
关闭某些服务的时候,由于涉及到RAC运行,所以也需要先关闭数据库实例,类似于第一种情况。

crs命令用法
1:对于crsctl start crs和crsctl stop crs必须是root用户来执行。
CRS及相关服务的常用命令的演示
1、查看状态的命令
# su–oracle  --先切换到oracle用户
$ crs_stat -t --查看crs及所有的service的状态
$ crs_stat --此命令可以查看各个资源的完整服务名称
$ crsctl check crs --用crsctl命令,检查crs相关服务的状态
$ srvctl status nodeapps -n host1 (host2) --使用srvctl查看所有节点上的服务是否正常
$ srvctl status database -d db --使用srvctl查看数据库状态
 
启动和关闭相关服务的命令
#crsctl start crs   打开集群CRS命令程序
#crsctl stop crs    关闭
 
oracle用户
命令的路径:$ORA_CRS_HOME/bin/
# su – oracle
$ crs_start -all --启动所有的crs服务
$ crs_stop -all --停止所有的crs服务
$ crsctl start crs --启动crs服务
$ crsctl stop crs --停止crs服务
$ srvctl start nodeapps -n host1(host2) --启动某节点上所有的应用
$ srvctl stop nodeapps -n host1(host2) --停止某节点上所有的应用
$ srvctl start listener -n host1(host2) --启动某个节点的listener
$ srvctl stop listener -n host1(host2) --停止某个节点的listener
$ srvctl start instance -d db -i host1(host2) --启动某个instance
$ srvctl stop instance -d db -i host1(host2) --停止某个instance
$ srvctl start database -d db --启动数据库
$ srvctl stop database -d db --停止数据库
$crs_stop  资源名(ora.ORCL.ORATEST.cs) 停一个资源,此命令可停到资源状态为UNKNOWN的资源。
 
 
附Oracle10g RAC检查命令:
----------------------------------------------
Oracle10g RAC数据库的 nodeapps 有VIP, GSD, Listener, ONS .
$ srvctl status nodeapps –n host1 (检查VIP, GSD,ONS, Listener等(所有节点))
VIP is running on node: host1
GSD is not running on node: host1
Listener is not running on node: host1
ONS daemon is not running on node: host1
gnd-rac01$crsctl check crs (检查Oracle Cluster状态:CSS, CRS, EVM .)
CSS appears healthy
CRS appears healthy
EVM appears healthy
gnd-rac01$ crs_stat -t (全面检查状态)
NameTypeTargetStateHost
┅┅┅┅┅┅┅┅┅
ora....01.lsnr application ONLINE ONLINE host1
ora....c01.gsd application ONLINE ONLINE host1
ora....c01.ons application ONLINE ONLINE host1
 
 
SRVCTL命令介绍
SRVCTL命令可以控制RAC数据库中的instance,listener以及services。
通常SRVCTL在ORACLE用户下执行。下面我们来介绍srvctl命令。
1、通过SRVCTL命令来start/stop/check所有的实例:
$ srvctl start|stop|status database -d <db_name>
 
2、start/stop指定的实例:
$ srvctl start|stop|status instance -d <db_name> -i <instance_name>
 
3、列出当前RAC下所有的
$ srvctl config database -d <db_name>
 
4、start/stop/check所有的nodeapps,比如:VIP, GSD, listener, ONS:
$ srvctl start|stop|status nodeapps -n <node_name>
 
5、如果你使用ASM,srvctl也可以start/stop ASM实例:
$ srvctl start|stop asm -n <node_name> [-i <asm_inst_name>] [-o<oracle_home>]
 
6、可以获取所有的环境信息:
$ srvctl getenv database -d <db_name> [-i <instance_name>]
 
7、设置全局环境和变量:
$ srvctl setenv database -d <db_name> -t
 
8、从OCR中删除已有的数据库:
$ srvctl remove database -d <db_name>
 
9、向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>]
 
10、向OCR中添加一个数据库的实例:
$ srvctl add instance -d <db_name> -i <instance_name> -n <node1>
$ srvctl add instance -d <db_name> -i <instance_name> -n <node2>
 
11、向OCR中添加一个ASM实例:
$ srvctl add asm -n <node_name> -i <asm_inst_name> -o <oracle_home>
 
12、添加一个service
$ srvctl add service -d <db_name>
     
$ORA_CRS_HOME/bin/crsctl check crs用于检查后台进程状态
$ORA_CRS_HOME/bin/crsctl start resources启动crs资源
$ORA_CRS_HOME/bin/crsctl start crs启动crs,需要超级用户操作。
$ORA_CRS_HOME/bin/crsctl stop crs关闭crs,需要超级用户操作。
$ORA_CRS_HOME/bin/crs_unregister取消注册crs
$ORA_CRS_HOME/bin/ocrcheck检查ocr设置信息用ocrcheck
$ORA_CRS_HOME/bin/crsctl query css votedisk检查磁盘表决情况
 
2:集群的日志:
$ORA_CRS_HOME/log/节点主机名(rachost01)/racg
$ORA_CRS_HOME/log/节点主机名(rachost01)/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
 

3.5 ORACLE RAC增加一个节点

这部分详细步骤请参考Metalink Note 270512.1

RAC添加节点,主要分为一下几个大的步骤:

A. 按照第二章《安装oracle RAC前的准备》配置新节点的OS和硬件环境。

B. 增加一个节点到cluster中。

C. 增加RAC软件到新的节点。

D. 为新的节点重新配置listeners

E. 使用DBCA增加实例。

下面是详细的步骤

A. 按照第二章《安装oracle RAC前的准备》配置新节点的OS和硬件环境。

B. 增加一个节点到cluster中。

1、在oracle用户下,设置DISPLAY环境变量,运行在$ORA_CRS_HOME/oui/bin 目录下的addNode.sh

$ DISPLAY=ipaddress:0.0; export DISPLAY

$ cd $ORA_CRS_HOME/oui/bin

$ ./addNode.sh

 

3. OUI出现欢迎界面点击next.

4.  "Specify Cluster Nodes to Add to Installation" 节面, 增加一个公用IP对应的主机名和私有IP对应的主机名(与/etc/hosts中的记录一样)点击next.

5. 出现"Cluster Node Addition Summary"界面, 点击 next.

6. 出现"Cluster Node Addition Progress" 出现. 将会提示以root用户运行


 

 

ORACLE 10G RAC 参考手册 69

rootaddnode.sh。但是首先需要确认在rootaddnode.sh中的CLSCFG信息是正确的。应该是包含新的公有和私有IP对应的主机名。

比如:

$CLSCFG -add -nn <node2>,2 -pn <node2-private>,2 -hn <node2>,2

 

确认好以后,运行rootaddnode.sh script

$ su root

$ cd $ORA_CRS_HOME

$ sh -x rootaddnode.sh

 

执行完以后,点击OK 继续。

7. 之后,另一个对话框会出现。需要所有的节点上执行$ORA_CRS_HOME/root.sh

$ su root

$ cd $ORA_CRS_HOME

$ sh -x root.sh

 

完成以后, 点击OK继续。

8. 在所有的新节点上运行完root.sh后, 在任意一个节点上运行

$ORA_CRS_HOME/bin/racgons add_config <newnode1>:4948 <newnode2>:4948

 

9. 安装结束。

C. 增加Oracle Database software (with RAC option) 到新的节点

1. 在原来的db节点上,进入到$ORACLE_HOME/oui/bin目录,运行addNode

$ DISPLAY=ipaddress:0.0; export DISPLAY

$ cd $ORACLE_HOME/oui/bin

$ ./addNode.sh

 

2. OUI欢迎界面又出现了,点击next

3.  "Specify Cluster Nodes to Add to Installation" 界面,指定你想加入的节点,点击next

4. "Cluster Node Addition Summary" 界面出现, 点击next

5. 然后进入到 "Cluster Node Addition Progress"界面.提示你以root的身份运行root.sh


 

 

ORACLE 10G RAC 参考手册 70

$ su root

$ cd $ORACLE_HOME

$ ./root.sh

 

执行完成以后, 点击OK继续。

6. 安装完成,exit安装界面

7. 然后以root身份进入到$ORACLE_HOME/bin目录,运行vipca

$ su root

$ DISPLAY=ipaddress:0.0; export DISPLAY

$ cd $ORACLE_HOME/bin

$ ./vipca -nodelist <node1>,<node2>

 

8. VIPCA欢迎界面出现,点击 next

9. 增加新的节点的vip信息点击next

10. 看到 "Summary" 界面以后, 点击finish.

11. 然后我们将看到创建和启动新的CRS资源,然后点击退出。

12. 确认interconnect是否正确,使用:

$ oifcfg getif

 

如果不正确,使用oifcfg命令修改:

$ oifcfg setif <interface-name>/<subnet>:<cluster_interconnect|public>

 

例子:

$ oifcfg setif -global eth1/10.10.10.0:cluster_interconnect

 

或者

$ oifcfg setif -node <nodename> eth1/10.10.10.0:cluster_interconnect

 

D. 为新节点重新配置listeners

1、使用netca来配置。过程与一般的创建RAClistener一致。

2、 使用 crs_stat命令确认listener CRS资源是否被创建了。

3、 新增加的listener应该是offline的。使用srvctl命令启动这个节点上的nodeapps

$ srvctl start nodeapps -n <newnode>


 

 

ORACLE 10G RAC 参考手册 71

4、 再次使用crs_stat 确定VIP's, GSD's, ONS's, and listenersCRS资源是online的。

E. 通过DBCA增加一个新的实例. (对于standby 请看F)

1. 使用DBCA在原来的节点上创建一个新的实例。

$ DISPLAY=ipaddress:0.0; export DISPLAY

$ dbca

 

2. 在欢迎界面选择"Oracle Real Application Clusters",点击next

3. 选择 "Instance Management",点击next.

4. 选择"Add an Instance", 点击next.

5. 选择你想加入新的实例的数据库,并且指定sysdba权限的用户。点击next

6. 选择正确的实例名和节点,点击next

7. 在存储界面直接点击next

8. 到了 summary界面, 点击OK。开始创建新的实例

9. 完成以后,选择"No" 退出 DBCA.

10. 通过查询gv$instance,确认实例是否创建成功。

F. 添加一个实例到Standby数据库

1、在你的DataGuard中,如果你的主节点是RAC,那么要保证在E中的步骤都已经执行过了。如果你的主节点是单实例。那么增加redolog组和threads (使用alter database)。

SQL>alter database add logfile thread 2

group 3 ('/dev/rzj_redo2_5_120m ') size 120M,

group 4 ('/dev/rzj_redo2_6_120m ') size 120M;

SQL>alter database enable public thread 2;

 

2、在主节点上创建一个新的standby控制文件,并copy这个控制文件到standby

SQL>alter database create standby controlfile as "/opt/app/oracle/stby.ctl"

 

3、关闭standby数据库, 备份现在standby数据库上控制文件,然后用新的standby控制


 

 

ORACLE 10G RAC 参考手册 72

文件来替换。

4、 调整新实例的init.ora或者spfile的参数,比如:thread, instance_name,instance_number, local_listener, undo_tablespace等等。

5. 最后恢复standby数据。

3.6 ORACLE RAC

如果升级oralceRAC或者oracle最好在建库之前来做。这样比较简单。

10.2.0.3为例

在建库之前的方法:

Upgrading Oracle Clusterware Installation

1 root身份登录,执行xhost +

2 停止 Oracle Clusterware:

crsctl stop crs

3 在其余的节点上重复 1  2.

4 回到第一个节点,以oracle用户登录。.

5 在一个终端输入:

export ORACLE_HOME=/crs/oracle/product/10.2.0/crs --假设你的crshome是这个。

6 进入到patch的目录:

cd /opt/oracle/patches/Disk1/

./runInstaller

然后

7 出现 Welcome界面.

Click Next.

8  Specify Home Details 界面, click Next.

9 Hardware Cluster Installation Mode 界面, click Next.

10 the Summary 界面, click Install.

11 NOTE: 安装完成以后不要点击exit推出。

12 再打开一个终端.

13  root 登录.

14 进入CRS_HOME,执行如下操作。

$ORA_CRS_HOME/install/root102.sh

15 在其他节点上按顺序重复12-14

16 在第一个节点上,点击exit推出安装。.

Upgrading the RAC Installation


 

 

ORACLE 10G RAC 参考手册 73

1 在第一个节点打开一个终端.

2 oracle登录.

3 停止所有节点Oracle Clusterware node applications.

$ORACLE_HOME/bin/srvctl stop nodeapps -n <nodename>

NOTE: 如果有报错。忽略掉

4 可以在其他节点上重复3也可以在一个节点上改变nodename停止nodeapps.

5 在第一个节点上以oracle登录。打开一个终端

6 设置ORACLE_HOME:

export ORACLE_HOME=/opt/oracle/product/10.2.0/db_1 --你的ORACLE_HOME

7 然后启动补丁程序:

cd /opt/oracle/patches/Disk1/

./runInstaller

8 Welcome 界面出现.

9 点击Next.

10 Specify Home Details 界面, 点击Next.

11 Specify Hardware Cluster Installation Mode 界面, 点击 Next.

12  the Summary 界面, 点击Install.

安装快完成时提示 run root.sh as user root.

13 打开一个终端.

14 执行:

/opt/oracle/product/10.2.0/db_1/root.sh

15 在其余的节点上按顺序重复13-14

16 执行完以后,点击 Exit推出.

17 然后在第一个节点上打开一个终端。

18 oracle用户登录.

19 执行:

srvctl start nodeapps -n <nodename>

20 如果一切正常,nodeapps都会online

(如果对于已经建完库或者生产系统的补丁。方法大致一样。但是需要先停止nodeappsinstance。执行完上面的步骤以后,还要使用dbua来升级数据库。具体可以参考patchREADME。)

To be continue..

猜你喜欢

转载自andyniu.iteye.com/blog/1848339