純命令行靜默安裝Oracle11gRAC+ASM+AIX

#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)。

至此全部安裝任務完成!!!

八、    參考附件

     


發佈了91 篇原創文章 · 獲贊 2 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章