纯命令行静默安装Oracle11gRAC+ASM+AIX

来源:互联网 发布:以色列粮食进口数据 编辑:程序博客网 时间:2024/06/05 02:23
#1.修改PagingSpace Size
/usr/sbin/lsps -a
chps -s 32 hd6

#swapoff /dev/'paging00'
#rmps 'paging00'

#2.确认/tmp文件系统至少2G
df -g /tmp
    
#3.网络规划至设置host表
filename=/etc/hosts
echo '
#for rac
192.168.240.56      pt4prodrac1           pt4prodrac1.mydb.com
192.168.240.57      pt4prodrac2           pt4prodrac2.mydb.com
192.168.240.58      pt4prodrac1-vip       pt4prodrac1-vip.mydb.com
192.168.240.59      pt4prodrac2-vip       pt4prodrac2-vip.mydb.com
172.240.168.56      pt4prodrac1-priv      pt4prodrac1-priv.mydb.com
172.240.168.57      pt4prodrac2-priv      pt4prodrac2-priv.mydb.com
192.168.240.151    pt4prodrac-scan       pt4prodrac-scan.mydb.com
192.168.240.152    pt4prodrac-scan       pt4prodrac-scan.mydb.com
192.168.240.153    pt4prodrac-scan       pt4prodrac-scan.mydb.com
#end
' >> $filename

cat $filename

#4.检查操作系统所需的Bundles
lslpp -l bos.adt.base bos.adt.lib bos.adt.libm bos.perf.perfstat bos.perf.libperfstat bos.perf.proctools

#5.检查操作系统版本(可以不做)
oslevel -s

#Maybe Need Some Patchs:
#AIX 6L installations All AIX 6L 6.1 installations Authorized Problem Analysis Reports (APARs) for AIX 5L v. 5.3 ML06, and the following AIX fixes:
#IZ41855
#IZ51456
#IZ52319
#AIX 5L installations All AIX 5L 5.3 installations Authorized Problem Analysis Reports (APARs) for AIX 5L v. 5.3 ML06, and the following AIX fixes:
#IZ42940
#IZ49516
#IZ52331

#检查所需补丁集:
/usr/sbin/instfix -i -k "IZ42940 IZ49516 IZ52331 IZ41855 IZ52319"

#6.1.创建文件系统
mklv -y'softlv' -t'jfs2' -c'1' -x'2048' rootvg 80
eval /usr/sbin/crfs -v jfs2  "-dsoftlv" "-m/soft" "-Ayes" "-p" "rw" "-a" "agblksize=4096" "-a" "isnapshot=no"
mount /soft
chfs -a size=40G /soft
df -g /soft

#6.2.修改用户名和密码长度限制,这个需要重启服务器
chdev -l sys0 -a max_logname='16'
lsattr -El sys0|grep logname
chsec -f /etc/security/login.cfg -s usw -a pwd_algorithm=smd5
cat /etc/security/login.cfg
shutdown -Fr

#7.创建用户和组
mkgroup -'A' id='1000' oinstall
mkgroup -'A' id='1001' dba
mkgroup -'A' id='1002' oper
mkgroup -'A' id='1100' asmadmin
mkgroup -'A' id='1101' asmdba
mkgroup -'A' id='1102' asmoper
eval mkuser "id=1000" "pgrp=oinstall" "groups=oinstall,dba,oper,asmdba,asmadmin" "home=/home/oracle" "oracle"
eval mkuser "id=1100" "pgrp=oinstall" "groups=oinstall,dba,oper,asmdba,asmadmin" "home=/home/grid" "grid"
id grid
id oracle
passwd grid
su - grid
su - grid
passwd oracle
su - oracle
su - oracle


#8.修改用户使用大内存的属性
/usr/sbin/lsuser -a capabilities grid,oracle
/usr/bin/chuser capabilities=CAP_NUMA_ATTACH,CAP_BYPASS_RAC_VMM,CAP_PROPAGATE grid
/usr/bin/chuser capabilities=CAP_NUMA_ATTACH,CAP_BYPASS_RAC_VMM,CAP_PROPAGATE oracle
/usr/sbin/lsuser -a capabilities grid,oracle

#9.修改用户的limit限制
filename=/etc/security/limits
cat $filename
cp $filename ${filename}.org
cat >> $filename <<EOF

oracle:
fsize = -1
core = 2097151
cpu = -1
data = -1
rss = -1
stack = -1
nofiles = -1

grid:
fsize = -1
core = 2097151
cpu = -1
data = -1
rss = -1
stack = -1
nofiles = -1

EOF

cat $filename

###可以直接使用命令修改:
cat /etc/security/limits
eval chuser "cpu=-1" "fsize=-1" "data=-1" "stack=-1" "core=2097151" "rss=-1" "nofiles=-1" "root"
eval chuser "cpu=-1" "fsize=-1" "data=-1" "stack=-1" "core=2097151" "rss=-1" "nofiles=-1" "oracle"
eval chuser "cpu=-1" "fsize=-1" "data=-1" "stack=-1" "core=2097151" "rss=-1" "nofiles=-1" "grid"
cat /etc/security/limits

#10.创建软件安装目录,以及修改目录属性
mkdir -p /soft/grid
mkdir -p /soft/oracle
mkdir -p /soft/product/11.2.0.3/dbh
mkdir -p /soft/product/11.2.0.3/gih
chown -R grid:oinstall /soft
chown -R oracle:oinstall /soft/oracle
chown -R grid:oinstall /soft/product/11.2.0.3/gih
chmod -R 775 /soft

chown grid:oinstall /soft
chown grid:oinstall /soft/grid
chown grid:oinstall /soft/oracle/
chown grid:oinstall /soft/product
chown grid:oinstall /soft/product/11.2.0.3
chown grid:oinstall /soft/product/11.2.0.3/gih

chown oracle:oinstall /soft/product/11.2.0.3/dbh
chmod 775 /soft/
chmod 775 /soft/oracle/
chmod 775 /soft/product/
chmod 775 /soft/product/11.2.0.3/


#11.编辑用户的~/.profile文件
#####需要修改节点1上的root、grid和oracle用户:
##### root用户:
echo '
umask 022
export SOFT_BASE=/soft
export ORACLE_BASE=$SOFT_BASE/grid
export ORACLE_HOME=$SOFT_BASE/product/11.2.0.3/gih
export PATH=.:$HOME/bin:$ORACLE_HOME/bin:${PATH}
export ORACLE_PATH=.:$ORACLE_PATH:$ORACLE_HOME/rdbms/admin
export ORACLE_TERM=xterm
export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss"
export NLS_LANG=American_America.UTF8
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export CLASSPATH=$ORACLE_HOME/JRE
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export THREADS_FLAG=native
export TEMP=/tmp
export TMPDIR=/tmp
export ORACLE_UNQNAME=+asm
export ORACLE_SID=+ASM1
export ORACLE_PRO=asm

alias ta="tail -f $ORACLE_BASE/diag/$ORACLE_PRO/$ORACLE_UNQNAME/$ORACLE_SID/trace/alert_$ORACLE_SID.log"
alias ma="more $ORACLE_BASE/diag/$ORACLE_PRO/$ORACLE_UNQNAME/$ORACLE_SID/trace/alert_$ORACLE_SID.log"
alias va="view $ORACLE_BASE/diag/$ORACLE_PRO/$ORACLE_UNQNAME/$ORACLE_SID/trace/alert_$ORACLE_SID.log"
alias cdl="cd $ORACLE_BASE/diag/$ORACLE_PRO/$ORACLE_UNQNAME/$ORACLE_SID"
alias cdo="cd $ORACLE_HOME"
alias cdd="cd $ORACLE_HOME/dbs"
alias cdn="cd $ORACLE_HOME/network/admin"
alias sql="sqlplus / as sysasm"
alias cs="crs_stat -t"
alias sug="su - grid"
alias suo="su - oracle"

' >> /.profile
cat /.profile

##### grid用户:
echo '
umask 022
export SOFT_BASE=/soft
export ORACLE_BASE=$SOFT_BASE/grid
export ORACLE_HOME=$SOFT_BASE/product/11.2.0.3/gih
export PATH=.:$HOME/bin:$ORACLE_HOME/bin:${PATH}
export ORACLE_PATH=.:$ORACLE_PATH:$ORACLE_HOME/rdbms/admin
export ORACLE_TERM=xterm
export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss"
export NLS_LANG=American_America.UTF8
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export CLASSPATH=$ORACLE_HOME/JRE
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export THREADS_FLAG=native
export TEMP=/tmp
export TMPDIR=/tmp
export ORACLE_UNQNAME=+asm
export ORACLE_SID=+ASM1
export ORACLE_PRO=asm

alias ta="tail -f $ORACLE_BASE/diag/$ORACLE_PRO/$ORACLE_UNQNAME/$ORACLE_SID/trace/alert_$ORACLE_SID.log"
alias ma="more $ORACLE_BASE/diag/$ORACLE_PRO/$ORACLE_UNQNAME/$ORACLE_SID/trace/alert_$ORACLE_SID.log"
alias va="view $ORACLE_BASE/diag/$ORACLE_PRO/$ORACLE_UNQNAME/$ORACLE_SID/trace/alert_$ORACLE_SID.log"
alias cdl="cd $ORACLE_BASE/diag/$ORACLE_PRO/$ORACLE_UNQNAME/$ORACLE_SID"
alias cdo="cd $ORACLE_HOME"
alias cdd="cd $ORACLE_HOME/dbs"
alias cdn="cd $ORACLE_HOME/network/admin"
alias sql="sqlplus / as sysasm"
alias cs="crs_stat -t"

' >> /home/grid/.profile
cat /home/grid/.profile

##### oracle用户:
echo '
umask 022
export SOFT_BASE=/soft
export ORACLE_BASE=$SOFT_BASE/oracle
export ORACLE_HOME=$SOFT_BASE/product/11.2.0.3/dbh
export PATH=.:$HOME/bin:$ORACLE_HOME/bin:${PATH}
export ORACLE_PATH=.:$HOME/exasql:$ORACLE_PATH:$ORACLE_HOME/rdbms/admin
export ORACLE_TERM=xterm
export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss"
export NLS_LANG=American_America.UTF8
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export CLASSPATH=$ORACLE_HOME/JRE
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export THREADS_FLAG=native
export TEMP=/tmp
export TMPDIR=/tmp
export ORACLE_UNQNAME=pt2db1
export ORACLE_SID=pt2db1
export ORACLE_PRO=rdbms

alias ta="tail -f $ORACLE_BASE/diag/$ORACLE_PRO/$ORACLE_UNQNAME/$ORACLE_SID/trace/alert_$ORACLE_SID.log"
alias ma="more $ORACLE_BASE/diag/$ORACLE_PRO/$ORACLE_UNQNAME/$ORACLE_SID/trace/alert_$ORACLE_SID.log"
alias va="view $ORACLE_BASE/diag/$ORACLE_PRO/$ORACLE_UNQNAME/$ORACLE_SID/trace/alert_$ORACLE_SID.log"
alias cdl="cd $ORACLE_BASE/diag/$ORACLE_PRO/$ORACLE_UNQNAME/$ORACLE_SID"
alias cdb="cd $ORACLE_BASE"
alias cdo="cd $ORACLE_HOME"
alias cdd="cd $ORACLE_HOME/dbs"
alias cdn="cd $ORACLE_HOME/network/admin"
alias sql="sqlplus / as sysdba"

' >> /home/oracle/.profile
cat /home/oracle/.profile


#####同样需要修改节点2上的root、grid和oracle用户的profile文件:
##### root用户:
echo '
umask 022
export SOFT_BASE=/soft
export ORACLE_BASE=$SOFT_BASE/grid
export ORACLE_HOME=$SOFT_BASE/product/11.2.0.3/gih
export PATH=.:$HOME/bin:$ORACLE_HOME/bin:${PATH}
export ORACLE_PATH=.:$ORACLE_PATH:$ORACLE_HOME/rdbms/admin
export ORACLE_TERM=xterm
export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss"
export NLS_LANG=American_America.UTF8
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export CLASSPATH=$ORACLE_HOME/JRE
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export THREADS_FLAG=native
export TEMP=/tmp
export TMPDIR=/tmp
export ORACLE_UNQNAME=+asm
export ORACLE_SID=+ASM2
export ORACLE_PRO=asm

alias ta="tail -f $ORACLE_BASE/diag/$ORACLE_PRO/$ORACLE_UNQNAME/$ORACLE_SID/trace/alert_$ORACLE_SID.log"
alias ma="more $ORACLE_BASE/diag/$ORACLE_PRO/$ORACLE_UNQNAME/$ORACLE_SID/trace/alert_$ORACLE_SID.log"
alias va="view $ORACLE_BASE/diag/$ORACLE_PRO/$ORACLE_UNQNAME/$ORACLE_SID/trace/alert_$ORACLE_SID.log"
alias cdl="cd $ORACLE_BASE/diag/$ORACLE_PRO/$ORACLE_UNQNAME/$ORACLE_SID"
alias cdo="cd $ORACLE_HOME"
alias cdd="cd $ORACLE_HOME/dbs"
alias cdn="cd $ORACLE_HOME/network/admin"
alias sql="sqlplus / as sysasm"
alias cs="crs_stat -t"
alias sug="su - grid"
alias suo="su - oracle"

' >> /.profile
cat /.profile

##### grid用户:
echo '
umask 022
export SOFT_BASE=/soft
export ORACLE_BASE=$SOFT_BASE/grid
export ORACLE_HOME=$SOFT_BASE/product/11.2.0.3/gih
export PATH=.:$HOME/bin:$ORACLE_HOME/bin:${PATH}
export ORACLE_PATH=.:$ORACLE_PATH:$ORACLE_HOME/rdbms/admin
export ORACLE_TERM=xterm
export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss"
export NLS_LANG=American_America.UTF8
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export CLASSPATH=$ORACLE_HOME/JRE
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export THREADS_FLAG=native
export TEMP=/tmp
export TMPDIR=/tmp
export ORACLE_UNQNAME=+asm
export ORACLE_SID=+ASM2
export ORACLE_PRO=asm

alias ta="tail -f $ORACLE_BASE/diag/$ORACLE_PRO/$ORACLE_UNQNAME/$ORACLE_SID/trace/alert_$ORACLE_SID.log"
alias ma="more $ORACLE_BASE/diag/$ORACLE_PRO/$ORACLE_UNQNAME/$ORACLE_SID/trace/alert_$ORACLE_SID.log"
alias va="view $ORACLE_BASE/diag/$ORACLE_PRO/$ORACLE_UNQNAME/$ORACLE_SID/trace/alert_$ORACLE_SID.log"
alias cdl="cd $ORACLE_BASE/diag/$ORACLE_PRO/$ORACLE_UNQNAME/$ORACLE_SID"
alias cdo="cd $ORACLE_HOME"
alias cdd="cd $ORACLE_HOME/dbs"
alias cdn="cd $ORACLE_HOME/network/admin"
alias sql="sqlplus / as sysasm"
alias cs="crs_stat -t"

' >> /home/grid/.profile
cat /home/grid/.profile

##### oracle用户:
echo '
umask 022
export SOFT_BASE=/soft
export ORACLE_BASE=$SOFT_BASE/oracle
export ORACLE_HOME=$SOFT_BASE/product/11.2.0.3/dbh
export PATH=.:$HOME/bin:$ORACLE_HOME/bin:${PATH}
export ORACLE_PATH=.:$HOME/exasql:$ORACLE_PATH:$ORACLE_HOME/rdbms/admin
export ORACLE_TERM=xterm
export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss"
export NLS_LANG=American_America.UTF8
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export CLASSPATH=$ORACLE_HOME/JRE
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export THREADS_FLAG=native
export TEMP=/tmp
export TMPDIR=/tmp
export ORACLE_UNQNAME=pt2db
export ORACLE_SID=pt2db2
export ORACLE_PRO=rdbms

alias ta="tail -f $ORACLE_BASE/diag/$ORACLE_PRO/$ORACLE_UNQNAME/$ORACLE_SID/trace/alert_$ORACLE_SID.log"
alias ma="more $ORACLE_BASE/diag/$ORACLE_PRO/$ORACLE_UNQNAME/$ORACLE_SID/trace/alert_$ORACLE_SID.log"
alias va="view $ORACLE_BASE/diag/$ORACLE_PRO/$ORACLE_UNQNAME/$ORACLE_SID/trace/alert_$ORACLE_SID.log"
alias cdl="cd $ORACLE_BASE/diag/$ORACLE_PRO/$ORACLE_UNQNAME/$ORACLE_SID"
alias cdb="cd $ORACLE_BASE"
alias cdo="cd $ORACLE_HOME"
alias cdd="cd $ORACLE_HOME/dbs"
alias cdn="cd $ORACLE_HOME/network/admin"
alias sql="sqlplus / as sysdba"

' >> /home/oracle/.profile
cat /home/oracle/.profile


#12.修改操作系统参数
#12.1.打开异步IO
#AIX 6.1不需要修改,OS自动打开关闭:
ioo -o aio_maxreqs
#AIX 5.3需要执行一下命令:
lsattr -El aio0 -a maxreqs
#检查已打开的异步IO
ps -ek|grep -v grep|grep -v posix_aioserver|grep -c aioserver

#12.2.修改内存参数
echo yes | vmo -p -o minperm%=3
echo yes | vmo -p -o maxperm%=90
echo yes | vmo -p -o maxclient%=90
echo yes | vmo -p -o lru_file_repage=0
echo yes | vmo -p -o strict_maxclient=1
echo yes | vmo -p -o strict_maxperm=0
#注意:部分参数需要重启生效

#13.修改单个用户的最大进程数限制
/usr/sbin/lsattr -E -l sys0 -a maxuproc
/usr/sbin/chdev -l sys0 -a maxuproc=16384
/usr/sbin/lsattr -E -l sys0 -a maxuproc

#14.修改网络参数
/usr/sbin/no -r -o ipqmaxlen=512
/usr/sbin/no -p -o rfc1323=1
/usr/sbin/no -p -o sb_max=4194304
/usr/sbin/no -p -o tcp_recvspace=65536
/usr/sbin/no -p -o tcp_sendspace=65536
/usr/sbin/no -p -o udp_recvspace=655360
/usr/sbin/no -p -o udp_sendspace=65536
/usr/sbin/no -p -o tcp_ephemeral_low=9000
/usr/sbin/no -p -o tcp_ephemeral_high=65500
/usr/sbin/no -p -o udp_ephemeral_low=9000
/usr/sbin/no -p -o udp_ephemeral_high=65500
#注意:部分参数需要重启生效

#15.配置NTP服务
#1)编辑NTP客户端配置文件
filename=/etc/ntp.conf
/bin/cp $filename ${filename}.original
cat >> $filename <<EOF
#broadcastclient
server 192.168.210.223
server 192.168.210.224
driftfile /etc/ntp.drift
tracefile /etc/ntp.trace
EOF
#2)设置NTP服务启动参数带“-x"属性
filename=/etc/rc.tcpip
/bin/cp $filename ${filenam}.orig
grep xntpd $filename
sed "s/\#start \/usr\/sbin\/xntpd \"\$src_running\"/start \/usr\/sbin\/xntpd \"\$src_running\" \"-x\"/g" $filename > /tmp/rc.tcpip
cat /tmp/rc.tcpip > $filename
grep xntpd $filename
#3)重启NTP服务进程
stopsrc -s xntpd
startsrc -s xntpd -a "-x"
sleep 1
ps -ef|grep xntpd

#16.配置ssh互信
##在所有节点的root、grid和oracle用户中执行如下命令:
cd
rm -fr ~/.ssh
mkdir -p ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa -f ~/.ssh/id_rsa -N ""
##在其中一个节点的root、grid和oracle用户中执行如下命令:
touch ~/.ssh/authorized_keys
ssh pt4prodrac1 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh pt4prodrac2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
scp ~/.ssh/authorized_keys pt4prodrac1:~/.ssh/
scp ~/.ssh/authorized_keys pt4prodrac2:~/.ssh/
##在所有节点的root、grid和oracle用户中执行如下命令:
chmod 600 ~/.ssh/authorized_keys
##在所有节点的root、grid和oracle用户中执行如下命令进行测试:
ssh pt4prodrac1 "hostname;date"
ssh pt4prodrac2 "hostname;date"

#17.配置DNS服务
#1)在DNS服务器的配置文件 /var/named/chroot/etc/named.rfc1912.zones中添加如下内容:
filename=/var/named/chroot/etc/named.rfc1912.zones
if [ `grep 240.168.192.local $filename|wc -l` = 0 ];then
echo '
zone "240.168.192.in-addr.arpa" IN {
        type master;
        file "240.168.192.local";
        allow-update { none; };
};
' >> $filename
fi

if [ `grep 168.240.172.local $filename|wc -l` = 0 ];then
echo '
zone "168.240.172.in-addr.arpa" IN {
        type master;
        file "168.240.172.local";
        allow-update { none; };
};
' >> $filename
fi
cat $filename

#2)配置反向解析文件和正向解析文件:
cd /var/named/chroot/var/named
filename=/var/named/chroot/var/named/168.240.172.local
if [ -f $filename ];then
if [ `grep 'pt4prodrac' $filename | wc -l` = 0 ];then
/bin/cp $filename $filename.`date +'%Y%m%d%H%M%S'`
echo '
;; For pt4prodrac Private IP [begin]
56   IN PTR   pt4prodrac1-priv.mydb.com.
57   IN PTR   pt4prodrac2-priv.mydb.com.
;; For pt4prodrac Private IP [end]
' >> $filename
fi
else
cp -p /var/named/chroot/var/named/named.ip6.local $filename
echo '
$TTL    86400
@       IN      SOA     mydb.com. root.mydb.com.  (
                                      1997022700 ; Serial
                                      28800      ; Refresh
                                      14400      ; Retry
                                      3600000    ; Expire
                                      86400 )    ; Minimum

      IN NS    mydb.com.
      
;; For pt4prodrac Private IP [begin]
56   IN PTR   pt4prodrac1-priv.mydb.com.
57   IN PTR   pt4prodrac2-priv.mydb.com.
;; For pt4prodrac Private IP [end]
' > $filename
fi
cat $filename


filename=/var/named/chroot/var/named/240.168.192.local
if [ -f $filename  ];then
if [ `grep 'pt4prodrac' $filename | wc -l` = 0 ];then
/bin/cp $filename $filename.`date +'%Y%m%d%H%M%S'`
echo '
;; For pt4prodrac VIP [begin]
56    IN PTR   pt4prodrac1.mydb.com.
57    IN PTR   pt4prodrac2.mydb.com.
58    IN PTR   pt4prodrac1-vip.mydb.com.
59    IN PTR   pt4prodrac2-vip.mydb.com.
151   IN PTR   pt4prodrac-scan.mydb.com.
152   IN PTR   pt4prodrac-scan.mydb.com.
153   IN PTR   pt4prodrac-scan.mydb.com.
;; For pt4prodrac VIP [end]
' >> $filename
fi
else
cp -p /var/named/chroot/var/named/named.ip6.local $filename
echo '
$TTL    86400
@       IN      SOA     mydb.com. root.mydb.com.  (
                                      1997022700 ; Serial
                                      28800      ; Refresh
                                      14400      ; Retry
                                      3600000    ; Expire
                                      86400 )    ; Minimum

      IN NS    mydb.com.
;; For pt4prodrac VIP [begin]
56    IN PTR   pt4prodrac1.mydb.com.
57    IN PTR   pt4prodrac2.mydb.com.
58    IN PTR   pt4prodrac1-vip.mydb.com.
59    IN PTR   pt4prodrac2-vip.mydb.com.
151   IN PTR   pt4prodrac-scan.mydb.com.
152   IN PTR   pt4prodrac-scan.mydb.com.
153   IN PTR   pt4prodrac-scan.mydb.com.
;; For pt4prodrac VIP [end]
' > $filename
fi
cat $filename


filename=/var/named/chroot/var/named/mydb.com.zone
if [ -f $filename  ];then
if [ `grep 'pt4prodrac' $filename | wc -l` = 0 ];then
/bin/cp $filename $filename.`date +'%Y%m%d%H%M%S'`
echo '
;; For pt4prodrac [begin]
pt4prodrac1         IN A   192.168.240.56
pt4prodrac2         IN A   192.168.240.57
pt4prodrac1-vip     IN A   192.168.240.58
pt4prodrac2-vip     IN A   192.168.240.59
pt4prodrac-scan     IN A   192.168.240.151
pt4prodrac-scan     IN A   192.168.240.152
pt4prodrac-scan     IN A   192.168.240.153
pt4prodrac1-priv    IN A   172.240.168.56
pt4prodrac2-priv    IN A   172.240.168.57
;; For pt4prodrac [end]
' >> $filename
fi
else
cp -p /var/named/chroot/var/named/localhost.zone $filename
echo '
$TTL    86400
@               IN SOA  mydb.com    root  (
                                        42              ; serial (d. adams)
                                        3H              ; refresh
                                        15M             ; retry
                                        1W              ; expiry
                                        1D )            ; minimum

                IN NS  mydb.com

;; For pt4prodrac [begin]
pt4prodrac1         IN A   192.168.240.56
pt4prodrac2         IN A   192.168.240.57
pt4prodrac1-vip     IN A   192.168.240.58
pt4prodrac2-vip     IN A   192.168.240.59
pt4prodrac-scan     IN A   192.168.240.151
pt4prodrac-scan     IN A   192.168.240.152
pt4prodrac-scan     IN A   192.168.240.153
pt4prodrac1-priv    IN A   172.240.168.56
pt4prodrac2-priv    IN A   172.240.168.57
;; For pt4prodrac [end]
' >> $filename
fi
cat $filename


#18.重启DNS服务器上的服务
service named restart

#19.设置数据库服务器的DNS配置文件
echo '
option     timeout:3
option     attempts:1
domain     mydb.com
search      mydb.com
nameserver 192.168.210.223
nameserver 192.168.210.224
' > /etc/resolv.conf

#19.测试DNS的有效性
nslookup pt4prodrac-scan.mydb.com
nslookup pt4prodrac1.mydb.com
nslookup 172.240.168.56
nslookup pt4prodrac1-priv.mydb.com
nslookup 192.168.240.56

#20.修改sshd服务的配置,使之登录时不需要DNS域名解析:
filename=/etc/ssh/sshd_config
grep UseDNS $filename
/bin/cp $filename $filename.`date +'%Y%m%d%H%M%S'`
sed "s/\#UseDNS yes/UseDNS no/g" $filename > /tmp/sshd_config
cat /tmp/sshd_config > $filename
grep UseDNS $filename
stopsrc -s sshd
startsrc -s sshd

#21.检查磁盘头信息
for hd in `lspv|grep -v rootvg|awk '{print $1}'`
do
    if [ `lspv|grep $hd|grep None|wc -l` = 0 ];then
        chdev -l $hd -a pv=clear
    fi    
done

#22.修改磁盘共享属性
for hd in `lspv|grep -v rootvg|grep 'hdisk'|awk '{print $1}'`
do
    if [ `lsattr -El $hd|grep reserve_policy|wc -l` = 1 ];then
        lsattr -El $hd
        chdev -l $hd -a reserve_policy=no_reserve
        lsattr -El $hd
        ls -ltr /dev/r$hd
        chmod 660 /dev/r$hd
        chown grid:asmadmin /dev/r$hd
        ls -ltr /dev/r$hd
    elif [ `lsattr -El $hd|grep reserve_lock|wc -l` = 1 ];then
        lsattr -El $hd
        chdev -l $hd -a reserve_lock=no
        lsattr -El $hd
        ls -ltr /dev/r$hd
        chmod 660 /dev/r$hd
        chown grid:asmadmin /dev/r$hd
        ls -ltr /dev/r$hd
    fi
done

#22.1重启服务器,使配置生效
shutdown -Fr

#23.安装Grid
#0).挂载安装介质
nfso -o nfs_use_reserved_ports=1
mount 192.168.220.46:/workshare /mnt
cp -rp /mnt/Softwares/Oracle/database11g/aix64_112030_grid /soft
chown -R grid:oinstall /soft/aix64_112030_grid
cp -rp /mnt/Softwares/Oracle/database11g/aix64_112030_database /soft
chown -R oracle:oinstall /soft/aix64_112030_database
#如果使用远程图像安装的话,先禁用DNS,否则安装界面会半小时都不点不动一个界面(这一步选做,如果是静默安装的话可以不做!):
#mv /etc/resolv.conf /etc/resolv.conf.orig
#mv /etc/resolv.conf.orig /etc/resolv.conf

#1) 在所有节点上先执行rootpre.sh
/mnt/Softwares/Oracle/database11g/aix64_112030_grid/rootpre.sh
#2执行安装命令然后回答【Y】
su - grid
#如果使用静默安装的话需要先配置响应文件如下:
filename=/home/grid/grid_install.rsp
echo '
oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v11_2_0
ORACLE_HOSTNAME=pt4prodrac1
INVENTORY_LOCATION=/soft/oraInventory
SELECTED_LANGUAGES=en,zh_CN
oracle.install.option=CRS_CONFIG
ORACLE_BASE=/soft/grid
ORACLE_HOME=/soft/product/11.2.0.3/gih
oracle.install.asm.OSDBA=asmdba
oracle.install.asm.OSOPER=asmoper
oracle.install.asm.OSASM=asmadmin
oracle.install.crs.config.gpnp.scanName=pt4prodrac-scan.mydb.com
oracle.install.crs.config.gpnp.scanPort=1521
oracle.install.crs.config.clusterName=pt4prod-cluster
oracle.install.crs.config.gpnp.configureGNS=false
oracle.install.crs.config.gpnp.gnsSubDomain=
oracle.install.crs.config.gpnp.gnsVIPAddress=
oracle.install.crs.config.autoConfigureClusterNodeVIP=false
oracle.install.crs.config.clusterNodes=pt4prodrac1:pt4prodrac1-vip,pt4prodrac2:pt4prodrac2-vip
oracle.install.crs.config.networkInterfaceList=en0:192.168.200.0:3,en1:192.168.240.0:1,en2:172.240.168.0:2
oracle.install.crs.config.storageOption=ASM_STORAGE
oracle.install.crs.config.sharedFileSystemStorage.diskDriveMapping=
oracle.install.crs.config.sharedFileSystemStorage.votingDiskLocations=
oracle.install.crs.config.sharedFileSystemStorage.votingDiskRedundancy=NORMAL
oracle.install.crs.config.sharedFileSystemStorage.ocrLocations=
oracle.install.crs.config.sharedFileSystemStorage.ocrRedundancy=NORMAL                
oracle.install.crs.config.useIPMI=false
oracle.install.crs.config.ipmi.bmcUsername=
oracle.install.crs.config.ipmi.bmcPassword=
oracle.install.asm.SYSASMPassword=MyPassword
oracle.install.asm.diskGroup.name=DATA
oracle.install.asm.diskGroup.redundancy=EXTERNAL
oracle.install.asm.diskGroup.AUSize=4
oracle.install.asm.diskGroup.disks=/dev/rhdisk1
oracle.install.asm.diskGroup.diskDiscoveryString=
oracle.install.asm.monitorPassword=MyPassword
oracle.install.crs.upgrade.clusterNodes=
oracle.install.asm.upgradeASM=false
oracle.installer.autoupdates.option=SKIP_UPDATES
oracle.installer.autoupdates.downloadUpdatesLoc=
AUTOUPDATES_MYORACLESUPPORT_USERNAME=
AUTOUPDATES_MYORACLESUPPORT_PASSWORD=
PROXY_HOST=
PROXY_PORT=0
PROXY_USER=
PROXY_PWD=
PROXY_REALM=
' > $filename

#执行如下命令开始静默安装
filename=/home/oracle/database_install.rsp
/soft/aix64_112030_grid/runInstaller -silent -responseFile $filename -ignorePrereq

#注意:除非你的配置都能检查通过,否则只要有一项检查不通过都会安装失败,因此如果是确定的Warning等可以使用-ignorePrereq选项忽略检查:
#---------------------------------------------------------------------------------
[pt2rac1@grid]$ [FATAL] [INS-13013] Target environment do not meet some mandatory requirements.
   CAUSE: Some of the mandatory prerequisites are not met. See logs for details. /tmp/OraInstall2012-11-10_01-03-16PM/installActions2012-11-10_01-03-16PM.log
   ACTION: Identify the list of failed prerequisite checks from the log: /tmp/OraInstall2012-11-10_01-03-16PM/installActions2012-11-10_01-03-16PM.log. Then either from the log file or from installation manual find the appropriate configuration to meet the prerequisites and fix it manually.
A log of this session is currently saved as: /tmp/OraInstall2012-11-10_01-03-16PM/installActions2012-11-10_01-03-16PM.log. Oracle recommends that if you want to keep this log, you should move it from the temporary location to a more permanent location.
#---------------------------------------------------------------------------------

#安装完以后会提示使用root用户在所有安装的节点上执行以下两个脚本:
#1.
/soft/oraInventory/orainstRoot.sh
#2.
/soft/product/11.2.0.3/gih/root.sh

#Execute /soft/oraInventory/orainstRoot.sh on the following nodes:
#[pt4prodrac1, pt4prodrac2]
#Execute /soft/product/11.2.0.3/gih/root.sh on the following nodes:
#[pt4prodrac1, pt4prodrac2]

#等以上两个脚本都执行完了就使用安装用户(grid)执行以下命令完成配置。
#1.
/soft/product/11.2.0.3/gih/cfgtoollogs/configToolAllCommands

#3)Grid安装完成后的检查工作
crsctl check crs
crs_stat -t -v
olsnodes -n
ps -ef | grep lsnr | grep -v 'grep' | grep -v 'ocfs' | awk '{print $9}'
netstat -in -I en1
srvctl status asm -a
ocrcheck
crsctl query css votedisk

#23)backup root.sh script
cd $ORACLE_HOME
cp root.sh root.sh.`hostname`.`date +'%Y%m%d'`

#至此安装完成!!!!!!!!!!!!!!!

#==================================================================================================


#25)安装Oracle数据库软件11.2.0.3版本
#1) 使用root用户在所有节点上执行rootpre.sh脚本
/soft/aix64_112030_database/rootpre.sh
#2)使用oracle用户执行安装程序,并回答【Y】
su - oracle
#同样的静默安装之前需要先生成响应文件:
filename=/home/oracle/database_install.rsp
echo '
oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v11_2_0
ORACLE_HOSTNAME=pt4prodrac1
INVENTORY_LOCATION=/soft/oraInventory
SELECTED_LANGUAGES=en,zh_CN
oracle.install.option=CRS_CONFIG
ORACLE_BASE=/soft/grid
ORACLE_HOME=/soft/product/11.2.0.3/gih
oracle.install.asm.OSDBA=asmdba
oracle.install.asm.OSOPER=asmoper
oracle.install.asm.OSASM=asmadmin
oracle.install.crs.config.gpnp.scanName=pt4prodrac-scan.mydb.com
oracle.install.crs.config.gpnp.scanPort=1521
oracle.install.crs.config.clusterName=pt4prod-cluster
oracle.install.crs.config.gpnp.configureGNS=false
oracle.install.crs.config.gpnp.gnsSubDomain=
oracle.install.crs.config.gpnp.gnsVIPAddress=
oracle.install.crs.config.autoConfigureClusterNodeVIP=false
oracle.install.crs.config.clusterNodes=pt4prodrac1:pt4prodrac1-vip,pt4prodrac2:pt4prodrac2-vip
oracle.install.crs.config.networkInterfaceList=en0:192.168.200.0:3,en1:192.168.240.0:1,en2:172.240.168.0:2
oracle.install.crs.config.storageOption=ASM_STORAGE
oracle.install.crs.config.sharedFileSystemStorage.diskDriveMapping=
oracle.install.crs.config.sharedFileSystemStorage.votingDiskLocations=
oracle.install.crs.config.sharedFileSystemStorage.votingDiskRedundancy=NORMAL
oracle.install.crs.config.sharedFileSystemStorage.ocrLocations=
oracle.install.crs.config.sharedFileSystemStorage.ocrRedundancy=NORMAL                
oracle.install.crs.config.useIPMI=false
oracle.install.crs.config.ipmi.bmcUsername=
oracle.install.crs.config.ipmi.bmcPassword=
oracle.install.asm.SYSASMPassword=MyPassword
oracle.install.asm.diskGroup.name=DATA
oracle.install.asm.diskGroup.redundancy=EXTERNAL
oracle.install.asm.diskGroup.AUSize=4
oracle.install.asm.diskGroup.disks=/dev/rhdisk1
oracle.install.asm.diskGroup.diskDiscoveryString=
oracle.install.asm.monitorPassword=MyPassword
oracle.install.crs.upgrade.clusterNodes=
oracle.install.asm.upgradeASM=false
oracle.installer.autoupdates.option=SKIP_UPDATES
oracle.installer.autoupdates.downloadUpdatesLoc=
AUTOUPDATES_MYORACLESUPPORT_USERNAME=
AUTOUPDATES_MYORACLESUPPORT_PASSWORD=
PROXY_HOST=
PROXY_PORT=0
PROXY_USER=
PROXY_PWD=
PROXY_REALM=
' > $filename

#执行如下命令开始静默安装,同样需要注意-ignorePrereq选项:
filename=/home/oracle/database_install.rsp
/soft/aix64_112030_database/runInstaller -silent -responseFile $filename -ignorePrereq

#3)安装完以后使用root用户在所有安装的节点上执行root.sh脚本:
#1.
/soft/product/11.2.0.3/dbh/root.sh

#Execute /soft/product/11.2.0.3/dbh/root.sh on the following nodes:
#[pt2rac2, pt2rac1]

#至此Database软件安装完成!!!!!!!!!!
#=========================================================================================

#================================================================================================

#注意使用静默安装Grid的时候,ASM实例中并没能自动创建asmsnmp用户,也不自动生成orapw$ORACLE_SID密码文件,因此都需要手工创建,否则在之后使用dbca等创建数据库的时候会出现如下错误:
SQL> alter user asmsnmp identified by MyPassword;
alter user asmsnmp identified by MyPassword
                                 *
ERROR at line 1:
ORA-15306: ASM password file update failed on at least one node


SQL> Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Real Application Clusters and Automatic Storage Management options
[pt2rac2@grid]$ oerr ora 15306
15306, 00000, "ASM password file update failed on at least one node"
// *Cause:  A CREATE USER, ALTER USER, DROP USER, GRANT, or REVOKE
//          command failed on at least one node of the Automatic Storage
//          Management (ASM) cluster.
// *Action: Check the ASM alert logs for more information.
//


[pt2rac2@grid]$ cd /soft/product/11.2.0.3/gih/dbs
[pt2rac2@grid]$ l
total 0
-rw-r--r--    1 grid     oinstall       2851 Nov 10 15:12 init.ora
-rw-rw----    1 grid     oinstall       2171 Nov 10 15:33 ab_+ASM2.dat
-rw-rw----    1 grid     oinstall       1544 Nov 10 17:33 hc_+ASM2.dat

#先创建密码文件

[pt2rac2@grid]$ orapwd file='orapw+ASM2' entries=5 password=MyPassword
SQL> grant sysdba to asmsnmp;
grant sysdba to asmsnmp
                *
ERROR at line 1:
ORA-01918: user 'ASMSNMP' does not exist

#在创建asmsnmp用户
SQL> create user asmsnmp identified by MyPassword;

User created.

#把asm的sysdba权限授予asmsnmp用户
SQL> grant sysdba to asmsnmp;

Grant succeeded.




七、    后期任务(可部分选做)
为了增强可用性和数据库管理,在新的 Oracle 11g 上执行一些任务。
1、    重新编译无效对象
运行 utlrp.sql 脚本立即重新编译所有无效的 PL/SQL 程序包,而不是在首次访问它们时再重新编译。这是个可选步骤,但建议您选择该步骤。
[pt4prodrac1@oracle]$ sqlplus / as sysdba
10:10:23 nint1@SYS> @?/rdbms/admin/utlrp.sql

2、    在 RAC 环境中启用存档日志
无论是单个实例还是集群化数据库,Oracle 都会跟踪对数据库块的所有更改并记录到联机重做日志文件 中。在 Oracle RAC 环境中,每个实例将具有自己的联机重做日志文件集,称为线程。每个 Oracle 实例将以循环方式使用其联机重做日志组。一个联机重做日志填满之后,Oracle 将转至下一个联机重做日志。如果数据库处于“存档日志模式”,Oracle 将创建该联机重做日志的一个副本,然后再对其进行重用。一个线程至少必须包含两个联机重做日志(或联机重做日志组)。对于单个实例的配置也同样如此。单个实例至少必须包含两个联机重做日志(或联机重做日志组)。
联机重做日志文件的大小完全独立于另一个实例的重做日志大小。尽管在大多数配置中该大小是相同的,但是该大小可能会随每个节点的负载和备份/恢复注意事项而异。还值得一提的是,每个实例都具有对自己的联机重做日志文件的独占式写访问权限。但是在正确配置的 RAC 环境中,如果某个实例异常中断,每个实例都可以读取该实例的当前联机重做日志文件以执行实例恢复。因此,需要将联机重做日志置于一个共享存储设备上(就像数据库文件一样)。
如上文所述,Oracle 以循环方式写入其联机重做日志文件。当前的联机重做日志填满之后,Oracle 将转至下一个联机重做日志。为方便进行介质恢复,Oracle 允许 DBA 将数据库置于“存档日志模式”,以在联机重做日志填满后(并且得到重用之前)创建它的副本。该过程称为存档。
利用 Database Configuration Assistant (DBCA),用户可以将一个新数据库配置为存档日志模式,但是大多数 DBA 在最初创建数据库期间选择跳过该选项。在这种情况下,数据库没有处于存档日志模式,只需将数据库置于存档日志模式。但是请注意,这将需要短暂的数据库中断。在 Oracle RAC 配置的一个节点上,执行以下任务将支持 RAC 的数据库置于存档日志模式。在本文中,我将使用运行 nint1 实例的 pt4prodrac1 节点:
    先准备归档目录,因为默认的话是把归档写到闪回区里面,由于闪回区只规划了60GB,所以需要更改归档日志文件路径。
在所有节点的本地硬盘上各创建一个文件系统来存放归档日志(生产建议使用NAS共享目录),脚本如下:
smitty mklv 或 /usr/sbin/mklv -y'arcloglv' -t'jfs2' -c'2' -x'2048' rootvg 200
smitty crfs 或 eval /usr/sbin/crfs -v jfs2  "-darcloglv" "-m/arclog" "-Ayes" "-p" "rw" "-a" "agblksize=4096" "-a" "isnapshot=no"
mount /arclog
chown -R oracle:oinstall /arclog
把这个两个文件系统制作成网络文件系统NFS(这一步可以不做,而且建议最好是使用NAS服务器作为共享文件系统)
启停NFS服务的命令,也可以直接使用smitty菜单操作
启:smitty mknfs 或 /usr/sbin/mknfs '-B' 或 /usr/sbin/mknfs '-N' 或 /usr/sbin/mknfs '-I'
停:smitty rmnfs 或 /usr/sbin/rmnfs '-B' 或 /usr/sbin/ rmnfs '-N' 或 /usr/sbin/ rmnfs '-I'
配置NFS文件系统
pt4prodrac1服务端:smitty mknfsexp 或 /usr/sbin/mknfsexp -d '/arclog' '-B' -S 'sys,krb5p,krb5i,krb5,dh' -t 'rm' -h ' pt4prodrac1' -c ' pt4prodrac1'
pt4prodrac1客户端:smitty mknfsmnt 或 /usr/sbin/mknfsmnt -f '/arclog/pt4prodrac2' -d '/arclog' -h 'wbracdb2' -M 'sys' '-B' '-A' -t 'rw' -w 'bg' -b '65536' -c '65536' '-Y' '-Z' '-X' '-H' '-j' '-q' '-g'
pt4prodrac2服务端:smitty mknfsexp 或 /usr/sbin/mknfsexp -d '/arclog' '-B' -S 'sys,krb5p,krb5i,krb5,dh' -t 'rm' -h ' pt4prodrac2' -c ' pt4prodrac2'
pt4prodrac2客户端:smitty mknfsmnt 或 /usr/sbin/mknfsmnt -f '/arclog/ pt4prodrac1' -d '/arclog' -h ' pt4prodrac1' -M 'sys' '-B' '-A' -t 'rw' -w 'bg' -b '65536' -c '65536' '-Y' '-Z' '-X' '-H' '-j' '-q' '-g'
!注明:参数Buffer size for read和Buffer size for writes必须要设置(大小可根据需求定),否则在以后要用rman备份归档日志时会报错:ORA-27054
NFS的Server端使用read-mostly选项,只有认证的客户端才有读写权限,否则只能读。

以 oracle 用户身份登录到一个节点(即 pt4prodrac1),通过在当前实例中将 cluster_database 设置为 FALSE 来禁用集群实例参数:
    [oracle@pt4prodrac1 ~]$ sqlplus / as sysdba
    使用SCOPE=SPFILE时要检查两个节点上的实例是否使用同一个spfile文件,以免参数不一致
14:30:45 nint1@SYS> show parameter spfile

NAME                                 TYPE                   VALUE
------------------------------------ ---------------------- ------------------------------
spfile                               string                 +DATA/nint/spfilenint.ora
14:06:16 nint1@SYS> alter system set cluster_database=false scope=spfile sid='nint1';
System altered.
以 oracle 用户身份关闭所有访问集群化数据库的实例:
    [pt4prodrac1@oracle]$ srvctl stop database -d nint
使用本地实例,挂载 数据库
[pt4prodrac1@oracle]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Tue Feb 7 14:08:48 2012

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

Connected to an idle instance.

14:08:48 nint1@SYS> startup mount
ORACLE instance started.

Total System Global Area 2.5655E+10 bytes
Fixed Size                  2231608 bytes
Variable Size            1.3892E+10 bytes
Database Buffers         1.1744E+10 bytes
Redo Buffers               16932864 bytes
Database mounted.

    启用存档功能:
    14:09:13 nint1@SYS> alter database archivelog;
    Database altered.
可以修改一下归档日志数据文件的格式(可选做)
14:10:20 nint1@SYS> alter system set log_archive_format='%t_%s_%r.arc' scope=spfile;
通过在当前实例中将实例参数 cluster_database 修改为 TRUE,重新启用对集群的支持:
    14:10:30 nint1@SYS> alter system set cluster_database=true scope=spfile sid='nint1';
    System altered.
关闭本地实例:
14:10:41 nint1@SYS> shutdown immediate
ORA-01109: database not open


Database dismounted.
ORACLE instance shut down.

以 oracle 帐户身份使用 srvctl 命令重启所有实例:
    [pt4prodrac1@oracle]$ srvctl start database -d nint
登录到本地实例,验证存档日志模式已启用:
[pt4prodrac1@oracle]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Tue Feb 7 14:12:48 2012

Copyright (c) 1982, 2010, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options

14:12:48 nint1@SYS> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     88
Next log sequence to archive   89
Current log sequence           89

启用存档日志模式后,RAC 配置中的每个实例都可以自动存档重做日志!
设置两个节点上实例的归档日志文件路径,如果两个节点上的归档路径都不一样那么要是SID选项区分,在这里虽然两个节点上的路径一致,但还是使用SID做一下区分
14:43:31 nint1@SYS> alter system set log_archive_dest_1='location=/arclog' sid='nint1';

System altered.

14:43:34 nint1@SYS> alter system set log_archive_dest_1='location=/arclog' sid='nint2';

System altered.
做一下归档测试
14:44:09 nint1@SYS> alter system archive log current;
14:44:40 nint2@SYS> alter system archive log current;

3、    验证 Oracle Grid Infrastructure 和数据库配置
可以在集群中的任意 Oracle RAC 节点上执行以下 Oracle Clusterware 和 Oracle RAC 验证检查。就本文而言,我将以 oracle 操作系统用户身份只从 pt4prodrac1 节点执行这些检查。
大多数检查使用服务器控制实用程序 (SRVCTL) 来进行,并且这些检查可以作为 oracle 或 grid 操作系统用户来执行。为 SRVCTL 定义的节点级任务有五个:
?    添加和删除节点级应用程序
?    设置和取消设置节点级应用程序的环境
?    管理节点应用程序
?    管理 ASM 实例
?    启动和停止一组包括虚拟 IP 地址、监听器、Oracle 通知服务和 Oracle Enterprise Manager 代理在内的程序(出于维护目的)。

Oracle 还提供了 Oracle 集群件控制 (CRSCTL) 实用程序。CRSCTL 是用户与 Oracle Clusterware 之间的接口,用于解析和调用 Oracle Clusterware 对象的 Oracle Clusterware API。
Oracle Clusterware 11g 第 2 版 (11.2) 引进了可识别集群的 命令,可用来对集群执行检查、启动和停止操作。根据所进行的操作,您可以从集群中的任意节点对集群中的另一节点或所有节点运行这些命令。
?    可以使用 CRSCTL 命令对 Oracle Clusterware 执行如下几个操作:
?    启动和停止 Oracle Clusterware 资源
?    启用和禁用 Oracle Clusterware 后台程序
?    检查集群的运行状况
?    管理代表第三方应用程序的资源
?    将 Intelligent Platform Management Interface (IPMI) 与 Oracle Clusterware 集成,提供故障隔离支持并确保集群完整性
?    调试 Oracle Clusterware 组件

我们只执行“检查集群的运行状况”这一操作,将通过集群化的(可识别集群的)命令来执行该操作:
[pt4prodrac2@root]# su - grid
[pt4prodrac2@grid]$ crsctl check cluster
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online

在 Oracle Clusterware 11g 第 2 版 (11.2) 中,有许多子程序和命令已不再使用,但仍然保留:
?    crs_stat
?    crs_register
?    crs_unregister
?    crs_start
?    crs_stop
?    crs_getperm
?    crs_profile
?    crs_relocate
?    crs_setperm
?    crsctl check crsd
?    crsctl check cssd
?    crsctl check evmd
?    crsctl debug log
?    crsctl set css votedisk
?    crsctl start resources
?    crsctl stop resources

检查集群的运行状况 —(集群化命令)
以 grid 用户身份运行以下命令。
[pt4prodrac2@grid]$ crsctl check cluster
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
所有 Oracle 实例 —(数据库状态)
[pt4prodrac2@grid]$ srvctl status database -d nint
Instance nint1 is running on node pt4prodrac1
Instance nint2 is running on node pt4prodrac2
单个 Oracle 实例 —(特定实例的状态)
[pt4prodrac2@grid]$ srvctl status instance -d nint -i nint1
Instance nint1 is running on node pt4prodrac1
[pt4prodrac2@grid]$ srvctl status instance -d nint -i nint2
Instance nint2 is running on node pt4prodrac2

节点应用程序 —(状态)
[pt4prodrac2@grid]$ srvctl status nodeapps
VIP pt4prodrac1-vip is enabled
VIP pt4prodrac1-vip is running on node: pt4prodrac1
VIP pt4prodrac2-vip is enabled
VIP pt4prodrac2-vip is running on node: pt4prodrac2
Network is enabled
Network is running on node: pt4prodrac1
Network is running on node: pt4prodrac2
GSD is disabled
GSD is not running on node: pt4prodrac1
GSD is not running on node: pt4prodrac2
ONS is enabled
ONS daemon is running on node: pt4prodrac1
ONS daemon is running on node: pt4prodrac2
节点应用程序 —(配置)
[pt4prodrac2@grid]$ srvctl config nodeapps
Network exists: 1/192.168.210.0/255.255.255.0/en1, type static
VIP exists: /pt4prodrac1-vip/192.168.210.60/192.168.210.0/255.255.255.0/en1, hosting node pt4prodrac1
VIP exists: /pt4prodrac2-vip/192.168.210.61/192.168.210.0/255.255.255.0/en1, hosting node pt4prodrac2
GSD exists
ONS exists: Local port 6100, remote port 6200, EM port 2016
列出配置的所有数据库
[pt4prodrac2@grid]$ srvctl config database
nint

数据库 —(配置)
[pt4prodrac2@grid]$ srvctl config database -d nint -a
Database unique name: nint
Database name: nint
Oracle home: /soft/oracle/product/11.2.0/dbh
Oracle user: oracle
Spfile: +DATA/nint/spfilenint.ora
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: nint
Database instances: nint1,nint2
Disk Groups: DATA,SFRA
Mount point paths:
Services:
Type: RAC
Database is enabled
Database is administrator managed

ASM —(状态)
[pt4prodrac2@grid]$ srvctl status asm
ASM is running on pt4prodrac2,pt4prodrac1

ASM —(配置)
[pt4prodrac2@grid]$ srvctl config asm -a
ASM home: /soft/grid/product/11.2.0/grid
ASM listener: LISTENER
ASM is enabled.
TNS 监听器 —(状态)
[pt4prodrac2@grid]$ srvctl status listener
Listener LISTENER is enabled
Listener LISTENER is running on node(s): pt4prodrac2,pt4prodrac1
TNS 监听器 —(配置)
[pt4prodrac2@grid]$ srvctl config listener -a
Name: LISTENER
Network: 1, Owner: grid
Home: <CRS home>
  /soft/grid/product/11.2.0/grid on node(s) pt4prodrac2,pt4prodrac1
End points: TCP:1521
SCAN —(状态)
[pt4prodrac2@grid]$ srvctl status scan
SCAN VIP scan1 is enabled
SCAN VIP scan1 is running on node pt4prodrac2
SCAN VIP scan2 is enabled
SCAN VIP scan2 is running on node pt4prodrac1
SCAN VIP scan3 is enabled
SCAN VIP scan3 is running on node pt4prodrac1

SCAN —(配置)
[pt4prodrac2@grid]$ srvctl config scan
SCAN name: pt4prodrac-scan.mydb.com, Network: 1/192.168.210.0/255.255.255.0/en1
SCAN VIP name: scan1, IP: /pt4prodrac-scan/192.168.210.62
SCAN VIP name: scan2, IP: /pt4prodrac-scan/192.168.210.63
SCAN VIP name: scan3, IP: /pt4prodrac-scan/192.168.210.64
VIP —(特定节点的状态)
[pt4prodrac2@grid]$ srvctl status vip -n pt4prodrac1
VIP pt4prodrac1-vip is enabled
VIP pt4prodrac1-vip is running on node: pt4prodrac1
[pt4prodrac2@grid]$ srvctl status vip -n pt4prodrac2
VIP pt4prodrac2-vip is enabled
VIP pt4prodrac2-vip is running on node: pt4prodrac2

VIP —(特定节点的配置)
[pt4prodrac2@grid]$ srvctl config vip -n pt4prodrac1
VIP exists: /pt4prodrac1-vip/192.168.210.60/192.168.210.0/255.255.255.0/en1, hosting node pt4prodrac1
[pt4prodrac2@grid]$ srvctl config vip -n pt4prodrac2
VIP exists: /pt4prodrac2-vip/192.168.210.61/192.168.210.0/255.255.255.0/en1, hosting node pt4prodrac2

节点应用程序配置 —(VIP、GSD、ONS、监听器)
[pt4prodrac2@grid]$ srvctl config nodeapps -a -g -s -l
-l option has been deprecated and will be ignored.
Network exists: 1/192.168.210.0/255.255.255.0/en1, type static
VIP exists: /pt4prodrac1-vip/192.168.210.60/192.168.210.0/255.255.255.0/en1, hosting node pt4prodrac1
VIP exists: /pt4prodrac2-vip/192.168.210.61/192.168.210.0/255.255.255.0/en1, hosting node pt4prodrac2
GSD exists
ONS exists: Local port 6100, remote port 6200, EM port 2016
Name: LISTENER
Network: 1, Owner: grid
Home: <CRS home>
  /soft/grid/product/11.2.0/grid on node(s) pt4prodrac2,pt4prodrac1
End points: TCP:1521

验证所有集群节点间的时钟同步
[pt4prodrac2@grid]$ cluvfy comp clocksync –verbose
[26017894@pt4prodrac1] [main] [ 2012-02-07 15:05:50.699 CST ] [TaskNTP.doPortOpenCheck:1275]  Entered doPortOpenCheck GlobalExec returns true

Checking whether NTP daemon or service is using UDP port 123 on all nodes

Check for NTP daemon or service using UDP port 123
  Node Name                             Port Open?              
  ------------------------------------  ------------------------
  pt4prodrac1                               yes                     
[26017894@pt4prodrac1] [main] [ 2012-02-07 15:05:50.699 CST ] [TaskNTP.doPortOpenCheck:1322]  Exiting doPortOpenCheck returns true
[26017894@pt4prodrac1] [main] [ 2012-02-07 15:05:50.699 CST ] [TaskNTP.performNTPChecks:386]  ret from doPortOpenCheck=true; dmnOkVec.size()=1; dmnOkVec:: pt4prodrac1
[26017894@pt4prodrac1] [main] [ 2012-02-07 15:05:50.700 CST ] [ResultSet.traceResultSet:342]  

Target ResultSet BEFORE Upload===>
        Overall Status->SUCCESSFUL

        pt4prodrac1-->SUCCESSFUL


[26017894@pt4prodrac1] [main] [ 2012-02-07 15:05:50.700 CST ] [ResultSet.traceResultSet:342]  

Source ResultSet ===>
        Overall Status->SUCCESSFUL

        pt4prodrac1-->SUCCESSFUL


[26017894@pt4prodrac1] [main] [ 2012-02-07 15:05:50.700 CST ] [ResultSet.traceResultSet:342]  

Target ResultSet AFTER Upload===>
        Overall Status->SUCCESSFUL

        pt4prodrac1-->SUCCESSFUL


[26017894@pt4prodrac1] [main] [ 2012-02-07 15:05:50.700 CST ] [TaskNTP.performTask:169]  ResultSet shows alll Success

Result: Clock synchronization check using Network Time Protocol(NTP) passed

[26017894@pt4prodrac1] [main] [ 2012-02-07 15:05:50.700 CST ] [ResultSet.traceResultSet:342]  

Target ResultSet BEFORE Upload===>
        Overall Status->SUCCESSFUL

        pt4prodrac1-->SUCCESSFUL


[26017894@pt4prodrac1] [main] [ 2012-02-07 15:05:50.700 CST ] [ResultSet.traceResultSet:342]  

Source ResultSet ===>
        Overall Status->SUCCESSFUL

        pt4prodrac1-->SUCCESSFUL


[26017894@pt4prodrac1] [main] [ 2012-02-07 15:05:50.700 CST ] [ResultSet.traceResultSet:342]  

Target ResultSet AFTER Upload===>
        Overall Status->SUCCESSFUL

        pt4prodrac1-->SUCCESSFUL


[26017894@pt4prodrac1] [main] [ 2012-02-07 15:05:50.700 CST ] [TaskCTSSIntegrity.performCTSSIntegrityChecks:495]  performCTSSIntegrityChecks(): Returning with value: true

Oracle Cluster Time Synchronization Services check passed
[26017894@pt4prodrac1] [main] [ 2012-02-07 15:05:50.701 CST ] [Task.perform:411]  
TaskCTSSIntegrity:Clock Synchronization:TASK_SUMMARY:SUCCESSFUL
[26017894@pt4prodrac1] [main] [ 2012-02-07 15:05:50.701 CST ] [CTSSComponent.verify:80]  
>>>> CTSSComponent:: Upload taskCTSSI >>>>>

[26017894@pt4prodrac1] [main] [ 2012-02-07 15:05:50.701 CST ] [ResultSet.traceResultSet:342]  

Target ResultSet BEFORE Upload===>
        Overall Status->SUCCESSFUL

        pt4prodrac1-->SUCCESSFUL


[26017894@pt4prodrac1] [main] [ 2012-02-07 15:05:50.701 CST ] [ResultSet.traceResultSet:342]  

Source ResultSet ===>
        Overall Status->SUCCESSFUL

        pt4prodrac1-->SUCCESSFUL


[26017894@pt4prodrac1] [main] [ 2012-02-07 15:05:50.701 CST ] [ResultSet.traceResultSet:342]  

Target ResultSet AFTER Upload===>
        Overall Status->SUCCESSFUL

        pt4prodrac1-->SUCCESSFUL



Verification of Clock Synchronization across the cluster nodes was successful.
[26017894@pt4prodrac1] [main] [ 2012-02-07 15:05:50.701 CST ] [CluvfyDriver.main:325]  ==== cluvfy exiting normally.
[pt4prodrac1@oracle]$

集群中所有正在运行的实例 — (SQL)
15:07:38 nint1@SYS> SELECT inst_id
        , instance_number inst_no
        , instance_name inst_name
        , parallel
        , status
        , database_status db_status
        , active_state state
        , host_name host
      FROM gv$instance;

   INST_ID    INST_NO INST_NAME                        PARALL STATUS                   DB_STATUS                          STATE
---------- ---------- -------------------------------- ------ ------------------------ ---------------------------------- ------------------
HOST
--------------------------------------------------------------------------------------------------------------------------------
         1          1 nint1                            YES    OPEN                     ACTIVE                             NORMAL
pt4prodrac1

         2          2 nint2                            YES    OPEN                     ACTIVE                             NORMAL
pt4prodrac2

所有数据库文件及它们所在的 ASM 磁盘组 — (SQL)
15:07:38 nint1@SYS> select name from v$datafile
      union
      select member from v$logfile
      union
      select name from v$controlfile
      union
      select name from v$tempfile;
NAME
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+DATA/nint/controlfile/current.256.774552217
+DATA/nint/datafile/sysaux.260.774552223
+DATA/nint/datafile/system.259.774552219
+DATA/nint/datafile/undotbs1.261.774552225
+DATA/nint/datafile/undotbs2.263.774552233
+DATA/nint/datafile/users.264.774552235
+DATA/nint/onlinelog/group_1.257.774552217
+DATA/nint/onlinelog/group_2.258.774552219
+DATA/nint/onlinelog/group_3.265.774554449
+DATA/nint/onlinelog/group_4.266.774554449
+DATA/nint/tempfile/temp.262.774552227
+SFRA/nint/controlfile/current.256.774552217
+SFRA/nint/onlinelog/group_1.257.774552219
+SFRA/nint/onlinelog/group_2.258.774552219
+SFRA/nint/onlinelog/group_3.259.774554449
+SFRA/nint/onlinelog/group_4.260.774554449

16 rows selected.

ASM 磁盘卷 — (SQL)
15:09:47 nint1@SYS> SELECT path FROM   v$asm_disk;

PATH
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
/dev/rhdiskpower0
/dev/rhdiskpower1
/dev/rhdiskpower2


4、    启动/停止集群
至此,已为 Oracle RAC 11g 第 2 版进行了所有安装和配置。Oracle Grid Infrastructure 已由 grid 用户安装,Oracle RAC 软件已由 oracle 用户安装。一个名为 nint 的功能完善的集群化数据库正在运行。
完成所有这些艰巨任务之后,您可能会问:“那么我怎样来启动和停止服务?”。如果您遵循了本指南中的说明,则所有服务(包括 Oracle Clusterware、ASM、网络、SCAN、VIP、Oracle Database 等)应在节点每次重新引导时自动启动。
但有时为了进行维护,您可能想在某节点上关闭 Oracle 服务,稍后再重启 Oracle Clusterware 系统。或者,您可能发现 Enterprise Manager 没有运行而需要启动它。本节为在本地服务器 ( pt4prodrac1) 上停止和启动 Oracle Clusterware 系统提供所需命令。
以下停止/启动操作需要以 root 身份来执行。
在本地服务器上停止 Oracle Clusterware 系统

在 pt4prodrac1 节点上使用 crsctl stop cluster 命令停止 Oracle Clusterware 系统:
[pt4prodrac1@root]# crsctl stop cluster
CRS-2673: Attempting to stop 'ora.crsd' on 'pt4prodrac1'
CRS-2790: Starting shutdown of Cluster Ready Services-managed resources on 'pt4prodrac1'
CRS-2673: Attempting to stop 'ora.LISTENER_SCAN2.lsnr' on 'pt4prodrac1'
CRS-2673: Attempting to stop 'ora.LISTENER.lsnr' on 'pt4prodrac1'
CRS-2673: Attempting to stop 'ora.oc4j' on 'pt4prodrac1'
CRS-2673: Attempting to stop 'ora.cvu' on 'pt4prodrac1'
CRS-2673: Attempting to stop 'ora.LISTENER_SCAN3.lsnr' on 'pt4prodrac1'
CRS-2673: Attempting to stop 'ora.OCRV.dg' on 'pt4prodrac1'
CRS-2673: Attempting to stop 'ora.registry.acfs' on 'pt4prodrac1'
CRS-2673: Attempting to stop 'ora.nint.db' on 'pt4prodrac1'
CRS-2677: Stop of 'ora.cvu' on 'pt4prodrac1' succeeded
CRS-2672: Attempting to start 'ora.cvu' on 'pt4prodrac2'
CRS-2677: Stop of 'ora.LISTENER.lsnr' on 'pt4prodrac1' succeeded
CRS-2673: Attempting to stop 'ora.pt4prodrac1.vip' on 'pt4prodrac1'
CRS-2677: Stop of 'ora.LISTENER_SCAN2.lsnr' on 'pt4prodrac1' succeeded
CRS-2673: Attempting to stop 'ora.scan2.vip' on 'pt4prodrac1'
CRS-2677: Stop of 'ora.pt4prodrac1.vip' on 'pt4prodrac1' succeeded
CRS-2672: Attempting to start 'ora.pt4prodrac1.vip' on 'pt4prodrac2'
CRS-2676: Start of 'ora.cvu' on 'pt4prodrac2' succeeded
CRS-2677: Stop of 'ora.LISTENER_SCAN3.lsnr' on 'pt4prodrac1' succeeded
CRS-2673: Attempting to stop 'ora.scan3.vip' on 'pt4prodrac1'
CRS-2677: Stop of 'ora.scan3.vip' on 'pt4prodrac1' succeeded
CRS-2672: Attempting to start 'ora.scan3.vip' on 'pt4prodrac2'
CRS-2677: Stop of 'ora.scan2.vip' on 'pt4prodrac1' succeeded
CRS-2672: Attempting to start 'ora.scan2.vip' on 'pt4prodrac2'
CRS-2677: Stop of 'ora.registry.acfs' on 'pt4prodrac1' succeeded
CRS-2676: Start of 'ora.pt4prodrac1.vip' on 'pt4prodrac2' succeeded
CRS-2677: Stop of 'ora.nint.db' on 'pt4prodrac1' succeeded
CRS-2673: Attempting to stop 'ora.DATA.dg' on 'pt4prodrac1'
CRS-2673: Attempting to stop 'ora.SFRA.dg' on 'pt4prodrac1'
CRS-2676: Start of 'ora.scan3.vip' on 'pt4prodrac2' succeeded
CRS-2672: Attempting to start 'ora.LISTENER_SCAN3.lsnr' on 'pt4prodrac2'
CRS-2676: Start of 'ora.scan2.vip' on 'pt4prodrac2' succeeded
CRS-2672: Attempting to start 'ora.LISTENER_SCAN2.lsnr' on 'pt4prodrac2'
CRS-2676: Start of 'ora.LISTENER_SCAN3.lsnr' on 'pt4prodrac2' succeeded
CRS-2676: Start of 'ora.LISTENER_SCAN2.lsnr' on 'pt4prodrac2' succeeded
CRS-2677: Stop of 'ora.DATA.dg' on 'pt4prodrac1' succeeded
CRS-2677: Stop of 'ora.SFRA.dg' on 'pt4prodrac1' succeeded
CRS-2677: Stop of 'ora.oc4j' on 'pt4prodrac1' succeeded
CRS-2672: Attempting to start 'ora.oc4j' on 'pt4prodrac2'
CRS-2676: Start of 'ora.oc4j' on 'pt4prodrac2' succeeded
CRS-2677: Stop of 'ora.OCRV.dg' on 'pt4prodrac1' succeeded
CRS-2673: Attempting to stop 'ora.asm' on 'pt4prodrac1'
CRS-2677: Stop of 'ora.asm' on 'pt4prodrac1' succeeded
CRS-2673: Attempting to stop 'ora.ons' on 'pt4prodrac1'
CRS-2677: Stop of 'ora.ons' on 'pt4prodrac1' succeeded
CRS-2673: Attempting to stop 'ora.net1.network' on 'pt4prodrac1'
CRS-2677: Stop of 'ora.net1.network' on 'pt4prodrac1' succeeded
CRS-2792: Shutdown of Cluster Ready Services-managed resources on 'pt4prodrac1' has completed
CRS-2677: Stop of 'ora.crsd' on 'pt4prodrac1' succeeded
CRS-2673: Attempting to stop 'ora.ctssd' on 'pt4prodrac1'
CRS-2673: Attempting to stop 'ora.evmd' on 'pt4prodrac1'
CRS-2673: Attempting to stop 'ora.asm' on 'pt4prodrac1'
CRS-2677: Stop of 'ora.asm' on 'pt4prodrac1' succeeded
CRS-2673: Attempting to stop 'ora.cluster_interconnect.haip' on 'pt4prodrac1'
CRS-2677: Stop of 'ora.evmd' on 'pt4prodrac1' succeeded
CRS-2677: Stop of 'ora.cluster_interconnect.haip' on 'pt4prodrac1' succeeded
CRS-2677: Stop of 'ora.ctssd' on 'pt4prodrac1' succeeded
CRS-2673: Attempting to stop 'ora.cssd' on 'pt4prodrac1'
CRS-2677: Stop of 'ora.cssd' on 'pt4prodrac1' succeeded
CRS-2673: Attempting to stop 'ora.diskmon' on 'pt4prodrac1'
CRS-2677: Stop of 'ora.diskmon' on 'pt4prodrac1' succeeded
[pt4prodrac1@root]#
!注:在运行“ crsctl stop cluster”命令之后,如果 Oracle Clusterware 管理的资源中有任何一个还在运行,则整个命令失败。使用 -f 选项无条件地停止所有资源并停止 Oracle Clusterware 系统。
另请注意,可通过指定 -all 选项在集群中所有服务器上停止 Oracle Clusterware 系统。以下命令将在 pt4prodrac1 和 pt4prodrac2 上停止 Oracle Clusterware 系统:
[pt4prodrac1@root]# crsctl stop cluster -all

在本地服务器上启动 Oracle Clusterware 系统
在 pt4prodrac1 节点上使用 crsctl start cluster 命令启动 Oracle Clusterware 系统:
[pt4prodrac1@root]# crsctl start cluster
CRS-2672: Attempting to start 'ora.cssdmonitor' on 'pt4prodrac1'
CRS-2676: Start of 'ora.cssdmonitor' on 'pt4prodrac1' succeeded
CRS-2672: Attempting to start 'ora.cssd' on 'pt4prodrac1'
CRS-2672: Attempting to start 'ora.diskmon' on 'pt4prodrac1'
CRS-2676: Start of 'ora.diskmon' on 'pt4prodrac1' succeeded
CRS-2676: Start of 'ora.cssd' on 'pt4prodrac1' succeeded
CRS-2672: Attempting to start 'ora.ctssd' on 'pt4prodrac1'
CRS-2676: Start of 'ora.ctssd' on 'pt4prodrac1' succeeded
CRS-2672: Attempting to start 'ora.evmd' on 'pt4prodrac1'
CRS-2672: Attempting to start 'ora.cluster_interconnect.haip' on 'pt4prodrac1'
CRS-2676: Start of 'ora.evmd' on 'pt4prodrac1' succeeded
CRS-2676: Start of 'ora.cluster_interconnect.haip' on 'pt4prodrac1' succeeded
CRS-2672: Attempting to start 'ora.asm' on 'pt4prodrac1'
CRS-2676: Start of 'ora.asm' on 'pt4prodrac1' succeeded
CRS-2672: Attempting to start 'ora.crsd' on 'pt4prodrac1'
CRS-2676: Start of 'ora.crsd' on 'pt4prodrac1' succeeded
注:可通过指定 -all 选项在集群中所有服务器上启动 Oracle Clusterware 系统。
[pt4prodrac1@root]# crsctl start cluster -all

还可以通过列出服务器(各服务器之间以空格分隔)在集群中一个或多个指定的服务器上启动/停止 Oracle Clusterware 系统:
[pt4prodrac1@root]# crsctl stop cluster -n pt4prodrac1 pt4prodrac2
CRS-2673: Attempting to stop 'ora.crsd' on 'pt4prodrac1'
CRS-2673: Attempting to stop 'ora.crsd' on 'pt4prodrac2'
CRS-2790: Starting shutdown of Cluster Ready Services-managed resources on 'pt4prodrac2'
CRS-2673: Attempting to stop 'ora.LISTENER_SCAN2.lsnr' on 'pt4prodrac2'
CRS-2673: Attempting to stop 'ora.cvu' on 'pt4prodrac2'
CRS-2673: Attempting to stop 'ora.oc4j' on 'pt4prodrac2'
CRS-2673: Attempting to stop 'ora.LISTENER.lsnr' on 'pt4prodrac2'
CRS-2673: Attempting to stop 'ora.LISTENER_SCAN3.lsnr' on 'pt4prodrac2'
CRS-2673: Attempting to stop 'ora.OCRV.dg' on 'pt4prodrac2'
CRS-2673: Attempting to stop 'ora.registry.acfs' on 'pt4prodrac2'
CRS-2673: Attempting to stop 'ora.nint.db' on 'pt4prodrac2'
CRS-2790: Starting shutdown of Cluster Ready Services-managed resources on 'pt4prodrac1'
CRS-2673: Attempting to stop 'ora.LISTENER.lsnr' on 'pt4prodrac1'
CRS-2673: Attempting to stop 'ora.OCRV.dg' on 'pt4prodrac1'
CRS-2673: Attempting to stop 'ora.registry.acfs' on 'pt4prodrac1'
CRS-2673: Attempting to stop 'ora.nint.db' on 'pt4prodrac1'
CRS-2673: Attempting to stop 'ora.LISTENER_SCAN1.lsnr' on 'pt4prodrac1'
CRS-2677: Stop of 'ora.cvu' on 'pt4prodrac2' succeeded
CRS-2677: Stop of 'ora.LISTENER.lsnr' on 'pt4prodrac1' succeeded
CRS-2673: Attempting to stop 'ora.pt4prodrac1.vip' on 'pt4prodrac1'
CRS-2677: Stop of 'ora.LISTENER_SCAN1.lsnr' on 'pt4prodrac1' succeeded
CRS-2673: Attempting to stop 'ora.scan1.vip' on 'pt4prodrac1'
CRS-2677: Stop of 'ora.scan1.vip' on 'pt4prodrac1' succeeded
CRS-2677: Stop of 'ora.pt4prodrac1.vip' on 'pt4prodrac1' succeeded
CRS-2677: Stop of 'ora.LISTENER_SCAN2.lsnr' on 'pt4prodrac2' succeeded
CRS-2673: Attempting to stop 'ora.scan2.vip' on 'pt4prodrac2'
CRS-2677: Stop of 'ora.LISTENER.lsnr' on 'pt4prodrac2' succeeded
CRS-2673: Attempting to stop 'ora.pt4prodrac2.vip' on 'pt4prodrac2'
CRS-2677: Stop of 'ora.LISTENER_SCAN3.lsnr' on 'pt4prodrac2' succeeded
CRS-2673: Attempting to stop 'ora.scan3.vip' on 'pt4prodrac2'
CRS-2677: Stop of 'ora.registry.acfs' on 'pt4prodrac1' succeeded
CRS-2677: Stop of 'ora.scan2.vip' on 'pt4prodrac2' succeeded
CRS-2677: Stop of 'ora.registry.acfs' on 'pt4prodrac2' succeeded
CRS-2677: Stop of 'ora.pt4prodrac2.vip' on 'pt4prodrac2' succeeded
CRS-2677: Stop of 'ora.scan3.vip' on 'pt4prodrac2' succeeded
CRS-2677: Stop of 'ora.nint.db' on 'pt4prodrac1' succeeded
CRS-2673: Attempting to stop 'ora.DATA.dg' on 'pt4prodrac1'
CRS-2673: Attempting to stop 'ora.SFRA.dg' on 'pt4prodrac1'
CRS-2677: Stop of 'ora.nint.db' on 'pt4prodrac2' succeeded
CRS-2673: Attempting to stop 'ora.DATA.dg' on 'pt4prodrac2'
CRS-2673: Attempting to stop 'ora.SFRA.dg' on 'pt4prodrac2'
CRS-2677: Stop of 'ora.DATA.dg' on 'pt4prodrac1' succeeded
CRS-2677: Stop of 'ora.SFRA.dg' on 'pt4prodrac1' succeeded
CRS-2677: Stop of 'ora.DATA.dg' on 'pt4prodrac2' succeeded
CRS-2677: Stop of 'ora.SFRA.dg' on 'pt4prodrac2' succeeded
CRS-2677: Stop of 'ora.oc4j' on 'pt4prodrac2' succeeded
CRS-2677: Stop of 'ora.OCRV.dg' on 'pt4prodrac1' succeeded
CRS-2673: Attempting to stop 'ora.asm' on 'pt4prodrac1'
CRS-2677: Stop of 'ora.asm' on 'pt4prodrac1' succeeded
CRS-2673: Attempting to stop 'ora.ons' on 'pt4prodrac1'
CRS-2677: Stop of 'ora.OCRV.dg' on 'pt4prodrac2' succeeded
CRS-2673: Attempting to stop 'ora.asm' on 'pt4prodrac2'
CRS-2677: Stop of 'ora.asm' on 'pt4prodrac2' succeeded
CRS-2677: Stop of 'ora.ons' on 'pt4prodrac1' succeeded
CRS-2673: Attempting to stop 'ora.net1.network' on 'pt4prodrac1'
CRS-2677: Stop of 'ora.net1.network' on 'pt4prodrac1' succeeded
CRS-2792: Shutdown of Cluster Ready Services-managed resources on 'pt4prodrac1' has completed
CRS-2673: Attempting to stop 'ora.ons' on 'pt4prodrac2'
CRS-2677: Stop of 'ora.crsd' on 'pt4prodrac1' succeeded
CRS-2673: Attempting to stop 'ora.ctssd' on 'pt4prodrac1'
CRS-2673: Attempting to stop 'ora.evmd' on 'pt4prodrac1'
CRS-2673: Attempting to stop 'ora.asm' on 'pt4prodrac1'
CRS-2677: Stop of 'ora.ons' on 'pt4prodrac2' succeeded
CRS-2673: Attempting to stop 'ora.net1.network' on 'pt4prodrac2'
CRS-2677: Stop of 'ora.net1.network' on 'pt4prodrac2' succeeded
CRS-2792: Shutdown of Cluster Ready Services-managed resources on 'pt4prodrac2' has completed
CRS-2677: Stop of 'ora.asm' on 'pt4prodrac1' succeeded
CRS-2677: Stop of 'ora.crsd' on 'pt4prodrac2' succeeded
CRS-2673: Attempting to stop 'ora.cluster_interconnect.haip' on 'pt4prodrac1'
CRS-2673: Attempting to stop 'ora.ctssd' on 'pt4prodrac2'
CRS-2673: Attempting to stop 'ora.evmd' on 'pt4prodrac2'
CRS-2673: Attempting to stop 'ora.asm' on 'pt4prodrac2'
CRS-2677: Stop of 'ora.evmd' on 'pt4prodrac1' succeeded
CRS-2677: Stop of 'ora.cluster_interconnect.haip' on 'pt4prodrac1' succeeded
CRS-2677: Stop of 'ora.asm' on 'pt4prodrac2' succeeded
CRS-2673: Attempting to stop 'ora.cluster_interconnect.haip' on 'pt4prodrac2'
CRS-2677: Stop of 'ora.evmd' on 'pt4prodrac2' succeeded
CRS-2677: Stop of 'ora.cluster_interconnect.haip' on 'pt4prodrac2' succeeded
CRS-2677: Stop of 'ora.ctssd' on 'pt4prodrac1' succeeded
CRS-2673: Attempting to stop 'ora.cssd' on 'pt4prodrac1'
CRS-2677: Stop of 'ora.cssd' on 'pt4prodrac1' succeeded
CRS-2673: Attempting to stop 'ora.diskmon' on 'pt4prodrac1'
CRS-2677: Stop of 'ora.ctssd' on 'pt4prodrac2' succeeded
CRS-2673: Attempting to stop 'ora.cssd' on 'pt4prodrac2'
CRS-2677: Stop of 'ora.diskmon' on 'pt4prodrac1' succeeded
CRS-2677: Stop of 'ora.cssd' on 'pt4prodrac2' succeeded
CRS-2673: Attempting to stop 'ora.diskmon' on 'pt4prodrac2'
CRS-2677: Stop of 'ora.diskmon' on 'pt4prodrac2' succeeded
[pt4prodrac1@root]# crsctl start cluster -n pt4prodrac1 pt4prodrac2
使用 SRVCTL 启动/停止所有实例
最后,可使用以下命令来启动/停止所有实例及相关服务:
[pt4prodrac1@root]# srvctl stop database -d nint
[pt4prodrac1@root]# srvctl start database -d nint

5、    故障排除
确保 RAC 节点名没有出现在环回地址中
确保 /etc/hosts 文件的环回地址中不包含节点名(pt4prodrac1 或 pt4prodrac2)。如果计算名出现在环回地址条目中,如下所示:
127.0.0.1 pt4prodrac1 localhost.localdomain localhost
需要按如下所示将其删除:
127.0.0.1 localhost.localdomain localhost
如果 RAC 节点名出现在环回地址中,在 RAC 安装过程中会收到以下错误消息:
ORA-00603: ORACLE server session terminated by fatal error
或者
ORA-29702: error occurred in Cluster Group Service operation

6、    最后,重新启动集群中的每个 Oracle RAC 节点(pt4prodrac1 和 pt4prodrac2)。

至此全部安装任务完成!!!

八、    参考附件

     


原创粉丝点击