RAC安装时需要执行4个脚本及意义

RAC安装时需要执行4个脚本

1) $ORACLE_BASE/oraInventory/orainstRoot.sh (clusterware 结束时执行)

2) $CRS_HOME/root.sh (clusterware 结束时执行)

3) $CRS_HOME/bin/vipca.sh(该脚本是在第二个节点执行$CRS_HOME/root.sh时被自动调用)

4) $ORACLE_HOME/root.sh (安装完数据库以后执行)

1. orainstRoot.sh 脚本

1.1 orainstRoot.sh 脚本执行过程

[email protected] #/oracle/oraInventory/orainstRoot.sh

Changing permissions of /oracle/oraInventory to 770.

Changing groupname of /oracle/oraInventory to oinstall.

The execution of the script is complete

1.2 orainstRoot.sh 脚本内容

[email protected] # more /oracle/oraInventory/orainstRoot.sh

#!/bin/sh

if [ ! -d "/var/opt/oracle" ]; then

mkdir -p /var/opt/oracle;

fi

if [ -d "/var/opt/oracle" ]; then

chmod 755 /var/opt/oracle;

fi

if [ -f "/oracle/oraInventory/oraInst.loc" ]; then

cp /oracle/oraInventory/oraInst.loc /var/opt/oracle/oraInst.loc;

chmod 644 /var/opt/oracle/oraInst.loc;

else

INVPTR=/var/opt/oracle/oraInst.loc

INVLOC=/oracle/oraInventory

GRP=oinstall

PTRDIR="`dirname $INVPTR`";

# Create the software inventory location pointer file

if [ ! -d "$PTRDIR" ]; then

mkdir -p $PTRDIR;

fi

echo "Creating the Oracle inventory pointer file ($INVPTR)";

echo   inventory_loc=$INVLOC > $INVPTR

echo   inst_group=$GRP >> $INVPTR

chmod 644 $INVPTR

# Create the inventory directory if it doesn‘t exist

if [ ! -d "$INVLOC" ];then

echo "Creating the Oracle inventory directory ($INVLOC)";

mkdir -p $INVLOC;

fi

fi

echo "Changing permissions of /oracle/oraInventory to 770.";

chmod -R 770 /oracle/oraInventory;

if [ $? != 0 ]; then

echo "OUI-35086:WARNING: chmod of /oracle/oraInventory to 770 failed!";

fi

echo "Changing groupname of /oracle/oraInventory to oinstall.";

chgrp oinstall /oracle/oraInventory;

if [ $? != 0 ]; then

echo "OUI-10057:WARNING: chgrp of /oracle/oraInventory to oinstall failed!";

fi

echo "The execution of the script is complete"

从脚本我们可以看出,这个脚本主要是创建/var/opt/oracle目录(如果不存在的话),再在该目录下建oraInst.loc文件(该文件记录orainventory的位置和组)。并改变orainventory的属性。

[email protected] # ls –rlt /var/opt/oracle/

total 2

-rw-r--r--  1 root    root         55 Apr 2 14:42 oraInst.loc

[email protected] # more oraInst.loc

inventory_loc=/oracle/oraInventory

inst_group=oinstall

在另一个节点上运行该脚本

[email protected] #/oracle/oraInventory/orainstRoot.sh

Changing permissions of /oracle/oraInventory to 770.

Changing groupname of /oracle/oraInventory to oinstall.

The execution of the script is complete

2. Root.sh 脚本

2.1 root.sh 脚本执行过程

[email protected] #/oracle/crs/root.sh

WARNING: directory ‘/oracle‘ is not owned by root

Checking to see if Oracle CRS stack is already configured

Checking to see if any 9i GSD is up

Setting the permissions on OCR backup directory

Setting up NS directories

Oracle Cluster Registry configuration upgraded successfully

WARNING: directory ‘/oracle‘ is not owned by root

Successfully accumulated necessary OCR keys.

Using ports: CSS=49895 CRS=49896 EVMC=49898 and EVMR=49897.

node <nodenumber>: <nodename> <private interconnect name> <hostname>

node 0: node2 node2-priv node2

node 1: node1 node1-priv node1

Creating OCR keys for user ‘root‘, privgrp ‘root‘..

Operation successful.

Now formatting voting device: /oracle/ocrcfg1

Format of 1 voting devices complete.

Startup will be queued to init within 30 seconds.

Adding daemons to inittab

Expecting the CRS daemons to be up within 600 seconds.

CSS is active on these nodes.

node2

CSS is inactive on these nodes.

node1

Local node checking complete.

Run root.sh on remaining nodes to start CRS daemons.

从输出我们可以看出,该脚本主要执行crs的配置,格式化ocr disk,更新/etc/inittab文件,启动css进程,在/var/opt/oracle/新建了ocr.loc文件及,scls_scr,oprocd文件夹。

2.2 查看crs进程及/etc/inittab文件可以看出节点的变化。

[email protected] # ps -ef|grep crs|grep –v grep

oracle 18212 18211  0 14:47:28 ?     0:00 /oracle/crs/bin/ocssd.bin

oracle 18191 18180  0 14:47:28 ?     0:00 /oracle/crs/bin/oclsmon.bin

oracle 17886    1  0 14:47:27 ?     0:00 /oracle/crs/bin/evmd.bin

oracle 18180 18092  0 14:47:28 ?     0:00 /bin/sh -c cd /oracle/crs/log/node2/cssd/oclsmon; ulimit -c unlimited; /ora

root 17889    1  0 14:47:27 ?       0:00 /oracle/crs/bin/crsd.bin reboot

oracle 18211 18093  0 14:47:28 ?      0:00 /bin/sh -c ulimit -c unlimited; cd /oracle/crs/log/node2/cssd; /oracle/crs

[email protected] # ls –rlt /var/opt/oracle/

total 8

-rw-r--r--  1 root    root         55 Apr 2 14:42 oraInst.loc

drwxrwxr-x  5 root    root        512 Apr 2 14:47 oprocd

drwxr-xr-x  3 root    root        512 Apr 2 14:47 scls_scr

-rw-r--r--  1 root    oinstall     48 Apr 2 14:47 ocr.loc

注意:新创建了ocr.loc,scls_scr,oprocd,但没有创建/var/opt/oracle/oratab。

[email protected] # more inittab

# Copyright 2004 Sun Microsystems, Inc. All rights reserved.

# Use is subject to license terms.

#

# The /etc/inittab file controls the configuration of init(1M); for more

# information refer to init(1M) and inittab(4). It is no longer

# necessary to edit inittab(4) directly; administrators should use the

# Solaris Service Management Facility (SMF) to define services instead.

# Refer to smf(5) and the System Administration Guide for more

# information on SMF.

#

# For modifying parameters passed to ttymon, use svccfg(1m) to modify

# the SMF repository. For example:

#

#      # svccfg

#      svc:> select system/console-login

#      svc:/system/console-login> setprop ttymon/terminal_type = "xterm"

#      svc:/system/console-login> exit

#

#ident "@(#)inittab   1.41   04/12/14 SMI"

ap::sysinit:/sbin/autopush -f /etc/iu.ap

sp::sysinit:/sbin/soconfig -f /etc/sock2path

smf::sysinit:/lib/svc/bin/svc.startd   >/dev/msglog 2<>/dev/msglog </dev/console

p3:s1234:powerfail:/usr/sbin/shutdown -y -i5 -g0 >/dev/msglog 2<>/dev/msglog

h1:3:respawn:/etc/init.d/init.evmd run >/dev/null 2>&1 </dev/null

h2:3:respawn:/etc/init.d/init.cssd fatal >/dev/null 2>&1 </dev/null

h3:3:respawn:/etc/init.d/init.crsd run >/dev/null 2>&1 </dev/null

[email protected] # ls -rlt /etc/inittab*

-rw-r--r--  1 root    root       1072 Nov 2 12:39 inittab.cssd

-rw-r--r--  1 root    root       1206 Mar 21 17:15 inittab.pre10203

-rw-r--r--  1 root    root       1006 Mar 21 17:15 inittab.nocrs10203

-rw-r--r--  1 root    root       1040 Apr 2 14:50 inittab.orig

-rw-r--r--  1 root    root       1040 Apr 2 14:50 inittab.no_crs

-rw-r--r--  1 root    root       1240 Apr 2 14:50 inittab

-rw-r--r--  1 root    root       1240 Apr 2 14:50 inittab.crs

该脚本会将inittab复制为inittab.no_crs,修改后的inittab另复制一份为inittab.crs.

2.3 在另外一个节点执行$CRS_HOME/root.sh

[email protected] #/oracle/crs/root.sh

WARNING: directory ‘/oracle‘ is not owned by root

Checking to see if Oracle CRS stack is already configured

Checking to see if any 9i GSD is up

Setting the permissions on OCR backup directory

Setting up NS directories

Oracle Cluster Registry configuration upgraded successfully

WARNING: directory ‘/oracle‘ is not owned by root

clscfg: EXISTING configuration version 3 detected.

clscfg: version 3 is 10G Release 2.

Successfully accumulated necessary OCR keys.

Using ports: CSS=49895 CRS=49896 EVMC=49898 and EVMR=49897.

node <nodenumber>: <nodename> <private interconnect name> <hostname>

node 0: node2 node2-priv node2

node 1: node1 node1-priv node1

clscfg: Arguments check out successfully.

NO KEYS WERE WRITTEN. Supply -force parameter to override.

-force is destructive and will destroy any previous cluster configuration.

Oracle Cluster Registry for cluster has already been initialized

Startup will be queued to init within 30 seconds.

Adding daemons to inittab

Expecting the CRS daemons to be up within 600 seconds.

CSS is active on these nodes.

node2

node1

CSS is active on all nodes.

Waiting for the Oracle CRSD and EVMD to start

Oracle CRS stack installed and running under init(1M)

Running vipca(silent) for configuring nodeapps

Creating VIP application resource on (2) nodes...

Creating GSD application resource on (2) nodes...

Creating ONS application resource on (2) nodes...

Starting VIP application resource on (2) nodes...

Starting GSD application resource on (2) nodes...

Starting ONS application resource on (2) nodes...

Done.

3. 在第二个节点上运行时会多比在第一个节点上运行多执行一个任务

-------运行$CRS_HOME/bin/vipca.sh

VIPCA.sh主要是配置vip并启动crs的默认资源(未建库时默认为6个),多启动三个后台进程。

[email protected] # ps -ef|grep crs|grep -v grep

oracle 18347 17447  0 14:51:06 ?          0:00 /oracle/crs/bin/evmlogger.bin -o /oracle/crs/evm/log/evmlogger.info -l /oracle/

oracle 17447    1  0 14:50:47 ?          0:00 /oracle/crs/bin/evmd.bin

oracle 17763 17756  0 14:50:48 ?          0:00 /oracle/crs/bin/ocssd.bin

oracle 17756 17643  0 14:50:48 ?          0:00 /bin/sh -c ulimit -c unlimited; cd /oracle/crs/log/node1/cssd; /oracle/crs

oracle 21216    1  0 14:52:28 ?          0:00 /oracle/crs/opmn/bin/ons -d

oracle 21217 21216  0 14:52:28 ?          0:00 /oracle/crs/opmn/bin/ons -d

oracle 17771 17642  0 14:50:48 ?          0:00 /bin/sh -c cd /oracle/crs/log/node1/cssd/oclsmon; ulimit -c unlimited; /ora

oracle 17773 17771  0 14:50:48 ?          0:00 /oracle/crs/bin/oclsmon.bin

root 17449    1  0 14:50:47 ?          0:01 /oracle/crs/bin/crsd.bin reboot

[email protected] # ps -ef|grep crs|grep -v grep

oracle 18212 18211  0 14:47:28 ?          0:00 /oracle/crs/bin/ocssd.bin

oracle 27467 27466  0 14:52:25 ?          0:00 /oracle/crs/opmn/bin/ons -d

oracle 25252 17886  0 14:51:16 ?          0:00 /oracle/crs/bin/evmlogger.bin -o /oracle/crs/evm/log/evmlogger.info -l /oracle/

oracle 27466    1  0 14:52:25 ?          0:00 /oracle/crs/opmn/bin/ons -d

oracle 18191 18180  0 14:47:28 ?          0:00 /oracle/crs/bin/oclsmon.bin

oracle 17886    1  0 14:47:27 ?          0:00 /oracle/crs/bin/evmd.bin

oracle 18180 18092  0 14:47:28 ?       0:00 /bin/sh -c cd /oracle/crs/log/node2/cssd/oclsmon; ulimit -c unlimited; /ora

root 17889    1  0 14:47:27 ?          0:00 /oracle/crs/bin/crsd.bin reboot

oracle 18211 18093  0 14:47:28 ?          0:00 /bin/sh -c ulimit -c unlimited; cd /oracle/crs/log/node2/cssd; /oracle/crs

从现在node2上的进程就能看出,执行完vipca.sh后,会多出三个后台进程。

[email protected] # crs_stat -t

Name          Type          Target   State    Host

------------------------------------------------------------

ora....c03.gsd application   ONLINE   ONLINE   node1

ora....c03.ons application   ONLINE   ONLINE   node1

ora....c03.vip application   ONLINE   ONLINE   node1

ora....c04.gsd application   ONLINE   ONLINE   node2

ora....c04.ons application   ONLINE   ONLINE   node2

ora....c04.vip application   ONLINE   ONLINE   node1

4. 安装数据库软件(binary)时需在最后一步:执行$ORACLE_HOME/root.sh

[email protected] #$ORACLE_HOME/root.sh

Running Oracle10 root.sh script...

The following environment variables are set as:

ORACLE_OWNER= oracle

ORACLE_HOME= /oracle/10g

Enter the full pathname of the local bin directory: [/usr/local/bin]:

The file "dbhome" already exists in /usr/local/bin. Overwrite it? (y/n) [n]: y

Copying dbhome to /usr/local/bin ...

The file "oraenv" already exists in /usr/local/bin. Overwrite it? (y/n) [n]: y

Copying oraenv to /usr/local/bin ...

The file "coraenv" already exists in /usr/local/bin. Overwrite it? (y/n) [n]: y

Copying coraenv to /usr/local/bin ...

Creating /var/opt/oracle/oratab file...

Entries will be added to the /var/opt/oracle/oratab file as needed by

Database Configuration Assistant when a database is created

Finished running generic part of root.sh script.

Now product-specific root actions will be performed.

该脚本的作用在于在指定的目录(默认为/usr/local/bin)下创建dbhome,oraenv,coraenv,在/var/opt/oracle/里创建oratab文件。

[email protected]# ls –rlt /usr/local/bin

total 18

-rwxr-xr-x  1 oracle  root       2428 Apr 2 15:07 dbhome

-rwxr-xr-x  1 oracle  root       2560 Apr 2 15:07 oraenv

-rwxr-xr-x  1 oracle  root       2857 Apr 2 15:07 coraenv

[email protected] # ls –rlt /var/opt/oracle/

total 10

-rw-r--r--  1 root    root         55 Apr 2 14:42 oraInst.loc

drwxrwxr-x  5 root    root        512 Apr 2 14:47 oprocd

drwxr-xr-x  3 root    root        512 Apr 2 14:47 scls_scr

-rw-r--r--  1 root    oinstall     48 Apr 2 14:47 ocr.loc

-rw-rw-r--  1 oracle  root        678 Apr 2 15:07 oratab

[email protected] # /oracle/10g/root.sh

Running Oracle10 root.sh script...

The following environment variables are set as:

ORACLE_OWNER= oracle

ORACLE_HOME= /oracle/10g

Enter the full pathname of the local bin directory: [/usr/local/bin]:

The file "dbhome" already exists in /usr/local/bin. Overwrite it? (y/n) [n]: y

Copying dbhome to /usr/local/bin ...

The file "oraenv" already exists in /usr/local/bin. Overwrite it? (y/n) [n]: y

Copying oraenv to /usr/local/bin ...

The file "coraenv" already exists in /usr/local/bin. Overwrite it? (y/n) [n]: y

Copying coraenv to /usr/local/bin ...

Creating /var/opt/oracle/oratab file...

Entries will be added to the /var/opt/oracle/oratab file as needed by

Database Configuration Assistant when a database is created

Finished running generic part of root.sh script.

Now product-specific root actions will be performed.

转:http://blog.csdn.net/tianlesoftware/article/details/5317034

时间: 2024-10-25 14:01:21

RAC安装时需要执行4个脚本及意义的相关文章

10G RAC安装时Failed to upgrade Oracle Cluster Registry configuration

10G RAC安装时遇到Failed to upgrade Oracle Cluster Registry configuration,原因为使用DMM多路径软件device-mapper-multipath,触发此BUG. 关于DMM多路径软件device-mapper-multipath上安装RAC,参考文档Configuring raw devices (multipath) for Oracle Clusterware 10g Release 2 (10.2.0) on RHEL5/OL

oracle 11g RAC安装节点二执行结果错误CRS-5005: IP Address: 192.168.1.24 is already in use in the network

[[email protected] ~]# /u01/app/oraInventory/orainstRoot.sh Changing permissions of /u01/app/oraInventory. Adding read,write permissions for group. Removing read,write,execute permissions for world. Changing groupname of /u01/app/oraInventory to oins

RAW+ASM 的RAC 安装文档

实验平台:Oracle 10gR2 RAC + RHEL 4.0 +VMWare GSX 3.2.0 安装步骤: 1.安装前准备及OS安装配置 2.安装Oracle 10gR2 clusterware 3.安装Oracle 10gR2 database 4.配置netca 5.创建ASM 实例 6.配置dbca创建数据库 7.检查RAC状态 8.RAC 卸载 一. 安装前准备及OS安装配置 Host OS 准备 1. 从Oracle OTN下载 oracle 10gR2 for x86 linu

Redhat 5.4 + ASM + RAW+ Oracle 10g RAC 安装文档

基于Redhat 5 和redhat 4 的RAC 区别在对raw的处理上. 之前做的是redhat 4.7 的 RAC 实验. 准备做一个Redhat 5.4 的环境. RAC 的一些理论东西: http://blog.csdn.net/tianlesoftware/archive/2010/02/27/5331067.aspx RAW+ASM+ REDHAT 4.7 RAC 文档 http://blog.csdn.net/tianlesoftware/archive/2010/02/27/5

记几个rac安装执行root.sh的报错

这次在客户现场进行安装,由于实现并没有和硬件的人协调好,导致安装过程中环境出现各种问题,在这一次安装中基本上见到了所有报错,还包括主机频繁重启,以及配置信息丢失等问题, 以下为在安装rac的过程中,执行root.sh脚本报错的三个问题: /u01/11.2.0/grid/bin/srvctl start nodeapps -n RAC01 ... failed FirstNode configuration failed at  /u01/11.2.0/grid/crs/install/crsc

详解在 Linux 启动时,如何自动执行命令或脚本

我一直很好奇,在启动 Linux 系统并登录的过程中到底发生了什么事情.按下开机键或启动一个虚拟机,你就启动了一系列事件,之后会进入到一个功能完备的系统中,有时,这个过程不到一分钟.当你注销或者关机时,也是这样. 更有意思的是,在系统启动以及用户登录或注销时,还可以让系统执行特定的操作. 本文,我们将探讨一下在 Linux 操作系统中实现这些目标的传统方法. 注意:我们假定使用的是 Bash 作为登录及注销的主 Shell.如果你使用的是其他 Shell,那么有些方法可能会无效.如果有其他的疑问

Oracle 12cR2 RAC安装配置及一些坑

Oracle 12cR2版本已经发布有一段时间,一直想测试安装RAC,从上周末到今天用了两个周末和今天一天的时间终于把RAC安装成功了.这里记录了安装时对操作系统的配置,以及安装过程中遇到的一些坑. 1.首先是操作系统的选择问题,Oracle现在认证的操作系统及内核版本如下: Oracle Linux 7: Oracle Linux 7 with the Unbreakable Enterprise kernel 3:3.8.13-35.3.1.el7uek.x86_64 or later Or

10G rac 安装报The specified nodes are not clusterable 错误

环境: oracle clusterware:10.2.0.1 redhat 5.5 在验证完相关配置后,提示RAC安装时,报The specified nodes are not clusterable:排查/etc/hosts和信任关系没有错误的情况下,那么要注意rootpre.sh是否都在任何节点执行了

11G RAC安装运行ASMCA遇到的小问题:ASMCA detected pre 11gR2 ASM, but it does not have a local instance configure

问题描述: 11G RAC安装时,GI已经安装完成,各服务状态正常,运行ASMCA时出错(ASM实例状态都是正常的). 提示是:ASMCA detected pre 11gR2 ASM, but it does not have a local instance configure on this node;具体信息看下图. 解决办法是:重新注册资源,,我是重启了OS,或者也可能重启CRS了,重启后查看各服务状态正常,重新运行ASMCA时正常,问题解决