1.1 CRS的管理
CRSCTL命令控制着本地节点的CRS服务(Oracle clusterware processes)
停止CRS:
$ crsctl stop crs |
或者
$ /etc/init.crs stop |
或者
$ crs_stop–all |
启动CRS:
$ crsctl start crs |
或者
$ /etc/init.crs start |
禁止Clusterware在系统重启后自动启动的方法:
$ /etc/init.crs disable |
启动Clusterware在系统重启后自动启动的方法:
$ /etc/init.crs enable |
查看CRS服务状态
$ crsctl check crs |
6.2 OCR的资源管理
OCR的资源,当RAC cluster启动并成功运行以后,你可以使用crs_stat工具看到如下内容:
$ORA_CRS_HOME/bin/crs_stat NAME=ora.db01.LISTENER_db01.lsnr TYPE=application TARGET=ONLINE STATE=ONLINE on db01 |
ORACLE 10G RAC参考手册63
NAME=ora.db01.gsd TYPE=application TARGET=ONLINE STATE=OFFLINE NAME=ora.db01.ons TYPE=application TARGET=ONLINE STATE=ONLINE on db01 NAME=ora.db01.vip TYPE=application TARGET=ONLINE STATE=ONLINE on db01 NAME=ora.db02.LISTENER_db02.lsnr TYPE=application TARGET=ONLINE STATE=ONLINE on db02 NAME=ora.db02.gsd TYPE=application TARGET=ONLINE STATE=OFFLINE NAME=ora.db02.ons TYPE=application TARGET=ONLINE STATE=ONLINE on db02 NAME=ora.db02.vip TYPE=application TARGET=ONLINE STATE=ONLINE on db02 NAME=ora.racdb.db TYPE=application TARGET=ONLINE STATE=ONLINE on db02 NAME=ora.racdb.racdb.cs TYPE=application TARGET=ONLINE STATE=ONLINE on db02 |
ORACLE 10G RAC参考手册64
NAME=ora.racdb.racdb.racdb1.srv TYPE=application TARGET=ONLINE STATE=ONLINE on db01 NAME=ora.racdb.racdb.racdb2.srv TYPE=application TARGET=ONLINE STATE=ONLINE on db02 NAME=ora.racdb.racdb1.inst TYPE=application TARGET=ONLINE STATE=ONLINE on db01 NAME=ora.racdb.racdb2.inst TYPE=application TARGET=ONLINE STATE=ONLINE on db02 |
通常情况下,所有的资源的状态都应该是online。另外,OCR每4个小时会备份一次。有一些情况你可以通过恢复的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两个节点。 |
ORACLE 10G RAC参考手册65
3.2 SRVCTL命令介绍
SRVCTL命令可以控制RAC数据库中的instance,listener以及services。
通常SRVCTL在ORACLE用户下执行。下面我们来介绍srvctl命令。
1、通过SRVCTL命令来start/stop/check所有的实例:
$ srvctl start|stop|status database -d |
2、start/stop指定的实例:
$ srvctl start|stop|status instance -d -i |
3、列出当前RAC下所有的
$ srvctl config database -d |
4、start/stop/check所有的nodeapps,比如:VIP, GSD, listener, ONS:
$ srvctl start|stop|status nodeapps -n |
5、如果你使用ASM,srvctl也可以start/stop ASM实例:
$ srvctl start|stop asm -n [-i ] [-o] |
6、可以获取所有的环境信息:
$ srvctl getenv database -d [-i ] |
7、设置全局环境和变量:
$ srvctl setenv database -d -t LANG=en |
8、从OCR中删除已有的数据库:
$ srvctl remove database -d |
9、向OCR中添加一个数据库:
$ srvctl add database -d -o [-m ] [-p] [-A /netmask] [-r {PRIMARY | PHYSICAL_STANDBY |LOGICAL_STANDBY}] [-s ] |
10、向OCR中添加一个数据库的实例:
$ srvctl add instance -d -i -n $ srvctl add instance -d -i -n |
11、向OCR中添加一个ASM实例:
$ srvctl add asm -n -i -o |
12、添加一个service
$ srvctl add service -d -s -r |
ORACLE 10G RAC参考手册66
[-a ] [-P ] [-u] |
13、修改在其他节点上的service
$ srvctl modify service -d -s -I -t |
14、relocate某个节点的service到其他节点
srvctl relocate service -d -s -I -t |
3.3 SRVCTL相关的选项
SRVCTL START/STOP/STATUSoptions: -d database name -i instance name -n node name (for nodeapps) |
SRVCTL ADDoptions: -A vip range, node, and database, address specification. The format of address string is: []// [/] [,] []// [/] -a for services, list of available instances, this list cannot include preferred instances -m domain name with the format“us.domain.com” -n node name that will support one or more instances -o $ORACLE_HOME to locate Oracle binaries -P for services, TAF preconnect policy - NONE, PRECONNECT -r for services, list of preferred instances, this list cannot include available instances. -s spfile name -u updates the preferred or available list for the service to support the specified instance. Only one instance may be specified with the -u switch. Instances that already support the service should not be included. |
SRVCTL MODIFYoptions: -i -t : the instance name (-i) is replaced by the instance name (-t) -i -r : the named instance is modified to be a preferred instance -A address-list for VIP application, at node level -s : add or remove ASM dependency |
SRVCTL RELOCATEoptions: -i -t : the instance name (-i) is replaced by the instance name (-t) |
ORACLE 10G RAC参考手册67
3.4 CRS及相关服务的常用命令的演示
1、查看状态的命令
# su–oracle--先切换到oracle用户 $ crs_stat -t--查看crs及所有的service的状态 NameType Target StateHost ------------------------------------------------------------ ora.oradb.db application ONLINE ONLINE db01 ora....radb.cs application ONLINE ONLINE db01 ora....db1.srv application ONLINE ONLINE db01 ora....db2.srv application ONLINE ONLINE db02 ora....b1.inst application ONLINE ONLINE db01 ora....b2.inst application ONLINE ONLINE db02 ora....C1.lsnr application ONLINE ONLINE db01 ora.db01.gsd application ONLINE ONLINE db01 ora.db01.ons application ONLINE ONLINE db01 ora.db01.vip application ONLINE ONLINE db01 ora....C2.lsnr application ONLINE ONLINE db02 ora.db02.gsd application ONLINE ONLINE db02 ora.db02.ons application ONLINE ONLINE db02 ora.db02.vip application ONLINE ONLINE db02 $crsctl check crs--用crsctl命令,检查crs相关服务的状态 CSS appears healthy CRS appears healthy EVM appears healthy $ srvctl status nodeapps -n db01(db02) --使用srvctl查看所有节点上的服务是否正常 VIP is running on node:db01 GSD is running on node:db01 Listener is running on node:db01 ONS daemon is running on node:db01 $ srvctl status database -d db--使用srvctl查看数据库状态 Instance db01 is running on node db01 Instance db02 is running on node db02 |
2、启动和关闭相关服务的命令
# su–oracle $ crs_start–all--启动所有的crs服务 $ crs_stop–all--停止所有的crs服务 $ crsctl start crs--启动crs服务 $ crsctl stop crs--停止crs服务 |
ORACLE 10G RAC参考手册68
$ srvctl start nodeapps -n db01(db02)--启动某节点上所有的应用 $ srvctl stop nodeapps -n db01(db02)--停止某节点上所有的应用 $ srvctl start listener -n db01(db02)--启动某个节点的listener $ srvctl stop listener -n db01(db02)--停止某个节点的listener $ srvctl start instance–d db–i db01(db02)--启动某个instance $ srvctl stop instance–d db–i db01(db02)--停止某个instance $ srvctl start database–d db--启动数据库 $ srvctl stop database–d db--停止数据库 |
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 ,2 -pn ,2 -hn ,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 :4948 :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 , |
8. VIPCA欢迎界面出现,点击next。
9.增加新的节点的vip信息点击next。
10.看到"Summary"界面以后, 点击finish.
11.然后我们将看到创建和启动新的CRS资源,然后点击退出。
12.确认interconnect是否正确,使用:
$ oifcfg getif |
如果不正确,使用oifcfg命令修改:
$ oifcfg setif /: |
例子:
$ oifcfg setif -global eth1/10.10.10.0:cluster_interconnect |
或者
$ oifcfg setif -node eth1/10.10.10.0:cluster_interconnect |
D.为新节点重新配置listeners
1、使用netca来配置。过程与一般的创建RAC的listener一致。
2、 使用crs_stat命令确认listener CRS资源是否被创建了。
3、 新增加的listener应该是offline的。使用srvctl命令启动这个节点上的nodeapps。
$ srvctl start nodeapps -n |
ORACLE 10G RAC参考手册71
4、 再次使用crs_stat确定VIP's, GSD's, ONS's, and listeners等CRS资源是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
如果升级oralce的RAC或者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 --假设你的crs的home是这个。
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
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
20如果一切正常,nodeapps都会online。
(如果对于已经建完库或者生产系统的补丁。方法大致一样。但是需要先停止nodeapps和instance。执行完上面的步骤以后,还要使用dbua来升级数据库。具体可以参考patch的README。)
To be continue…..来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13636837/viewspace-627434/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/13636837/viewspace-627434/