Red Hat Linux 5.4 (虛擬機器) 上安裝 Oracle11g R2 RAC (ASM) 【final】

tolywang發表於2011-12-01
http://blog.csdn.net/tianlesoftware/article/details/5314541



Red Hat Linux 5.4 (虛擬機器) 上安裝 Oracle11g R2 RAC (ASM)  【final】 

--------------
環境介紹: 
--------------

節點名稱:       rac001 , rac002 
資料庫名稱:  racdb  
記憶體分配:      每節點 800M
IP及SCANIP : 
Public IP:        10.161.32.177 ,   10.161.32.179  
Private IP:       10.1.1.11,     10.1.1.12   
VIP:               10.161.32.187 ,  10.161.32.189    
SCANIP:        10.161.32.191 ,   10.161.32.192  


Grid Infrastructure   作業系統使用者grid , 主組為oinstall, 輔助組為asmadmin, asmdba, asmoper 
Oracle RAC  作業系統使用者 oracle ,  主組為oinstall , 輔助組為dba, oper , asmdba   

Grid  Infrastructure 安裝目錄(注意: 不是GRID_HOME哦) :   
     ORACLE_BASE=/u01/product/grid/crs 
     ORACLE_HOME=/u01/product/grid/11.2.0    
備註:  grid使用者的base及home不能有父子關係 。  

Oracle RDBMS 安裝目錄 :  
     ORACLE_BASE=/u01/product/oracle  
     ORACLE_HOME=/u01/product/oracle/11.2.0/db_1  

詳細說明參考: 


同時設定Linux系統Firewall為disable, 關閉不需要的system service, 設定正確的timezone . 



1.   使用者組及賬號設定   

1.1.  在 root使用者環境下建立 OS 組(每個節點執行) 

建立組之前要確認一下/etc/group及/etc/passwd下的組及使用者,確保每個節點
上的uid及gid 一致 (當然也可以建組的時候加入id號,groupadd -g 501 oinstall) 。  

根據規劃: 
Grid Infrastructure   作業系統使用者grid , 主組為oinstall, 輔助組為asmadmin, asmdba, asmoper 
Oracle RAC  作業系統使用者 oracle ,  主組為oinstall , 輔助組為dba, oper , asmdba   

# groupadd   oinstall   
# groupadd   asmadmin   
# groupadd    asmdba
# groupadd    asmoper  
# groupadd   dba 
# groupadd   oper

# cat   /etc/group   檢視組建立情況  
.....
oinstall:x:501:
asmadmin:x:502:
asmdba:x:503:
asmoper:x:504:
dba:x:505:
oper:x:506:



1.2.  建立安裝 grid infrastructure 及 oracle軟體的使用者 (每個節點執行) 
根據規劃: 
Grid Infrastructure   作業系統使用者grid , 主組為oinstall, 輔助組為asmadmin, asmdba, asmoper 
Oracle RAC  作業系統使用者 oracle ,  主組為oinstall , 輔助組為dba, oper , asmdba   

#useradd -g oinstall -G  asmadmin,asmdba,asmoper  grid
#useradd -g oinstall -G dba, oper, asmdba oracle
 


1.3.  為 grid及 oracle使用者設定密碼  (每個節點執行)   
# passwd oracle  
# passwd grid    
 
------------------------------------------------------------------------
備註: 
Oracle10g中還是使用sysdba管理asm例項,Oracle11g中使用一個新角色sysasm, 專用於
管理asm,  相當於針對asm的sysdba角色。    在Oracle11g  RAC 中以grid使用者登入後 , 以
sysdba登入也是可以檢視asm例項相關的狀態, 但是不能做變更, sysasm 角色連線後才
可以。  
------------------------------------------------------------------------  




 
2.  網路設定  

2.1   定義 cluster name,  這是 11g特有的,  預設為crs, 這裡定義為rac .  
 
2.2   定義每個節點的 public hostname 
也就是本機的 host  name,  比如 rac001,rac002.  這裡推薦建立網路卡 bonding  (具體設定
略,active/passive模式).   
 
2.3   定義 public virtual hostname,  一般建議為‐vip 或直接接 vip.   
 
2.4   開始修改所有節點的/etc/hosts (每個節點執行) ,  同時修改相關IP地址。 
[root@rac001 etc]# vi  hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1               localhost.localdomain localhost
10.161.32.161          rac001
10.1.1.11                  pri001
10.161.32.173          vip001
10.161.32.162          rac002
10.1.1.12                  pri002
10.161.32.179          vip002
# Single Client Access Name (SCAN IP)
10.161.32.182          racscan1
10.161.32.184          racscan2



3.  各個節點時間同步 
(所有節點設定,這裡是測試,所以兩個節點相互同步,不設定時間伺服器)  
透過 nptdate或 rdate  設定各個節點時間同步 (注意時區)

[root@rac01 etc]# chkconfig   time‐stream   on   
[root@rac01 etc]# date  
Tue Dec 28 13:23:40 CST 2010   
然後在節點 2  設定與節點1 的時間同步排程。  
[root@rac02 etc]# crontab  ‐e  
*/2  *  *  *  *     rdate  ‐s   10.161.32.161  


 
 
4.  配置 Linux 核心引數  (所有節點設定)   
[root@rac001 etc]# vi   sysctl.conf   

fs.aio‐max‐nr=1048576
fs.file‐max=6815744
kernel.shmall=2097152
kernel.shmmax=1073741824
kernel.shmmni=4096
kernel.sem=250  32000  100  128
net.ipv4.ip_local_port_range=9000  65500
net.core.rmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=1048576

[root@rac001 etc]# sysctl  -p  使生效。 

 
 
5.  為 oracle 使用者設定 shell  limits(每個節點執行) .  
5.1   修改 /etc/security/limits.conf  
[root@rac01 etc]# cd /etc/security/ 
[root@rac01 security]# vi limits.conf  

grid soft nproc 2047 
grid hard nproc 32768 
grid soft nofile 1024 
grid hard nofile 250000 
 
oracle soft nproc 2047 
oracle hard nproc 32768 
oracle soft nofile 1024 
oracle hard nofile 250000 


 
5.2   修改/etc/pam.d/login,如果不存在以下行,請加入 
session    required    pam_limits.so  

 
5.3   對預設 shell startup file 做變更,加入如下行到/etc/profile  
 
if [ \$USER = "oracle" ] || [ \$USER = "grid" ]; then 
    if [ \$SHELL = "/bin/ksh" ]; then 
         ulimit ‐p 16384 
         ulimit ‐n 65536 
    else 
         ulimit ‐u 16384 ‐n 65536 
    fi 
    umask 022 
fi 


5.4   設定 SELinux為 disable (每個節點都設定).  
# vi   /etc/grub.conf   
default=3 
timeout=5 
splashimage=(hd0,0)/grub/splash.xpm.gz 
hiddenmenu 
title Red Hat Enterprise Linux Server (2.6.18‐128.el5xen) 
         root (hd0,0) 
         kernel /xen.gz‐2.6.18‐128.el5 
         selinux=0 
 

 
6.  建立 Oracle Inventory Directory (每個節點執行)     ---- 這一步應該可以不要------ 
[root@rac01 u01]# mkdir ‐p   /u01/product/oraInventory  
[root@rac01 u01]# chown ‐R grid:oinstall   /u01/product/oraInventory  
[root@rac01 u01]# chmod ‐R 775   /u01/product/oraInventory/  
 

7.   建立 Oracle Grid Infrastructure home 目錄(在每個節點建立)  

規劃目錄如下:   
Grid  Infrastructure 安裝目錄(注意: 不是GRID_HOME哦) :   
     ORACLE_BASE=/u01/product/grid/crs 
     ORACLE_HOME=/u01/product/grid/11.2.0    
備註:  grid使用者的base及home不能有父子關係 。  

注意:    
11g單例項如果需要使用 ASM, 也必須安裝Grid ,且必須放在 ORACLE_BASE 下, 
11g RAC則不行,  它的 grid家目錄必須另外放在一個地方,比如/u01/grid . 

# mkdir  ‐p   /u01/product/grid/crs 
# mkdir  ‐p   /u01/product/grid/11.2.0  
# chown  ‐R   grid.oinstall   /u01/product/grid/crs  
# chown  ‐R   grid.oinstall    /u01/product/grid/11.2.0   
# chmod  ‐R   775    /u01/product/grid/crs 
# chmod  ‐R   775     /u01/product/grid/11.2.0  




8.   建立 Oracle Base  目錄(在每個節點建立) 
規劃: 
Oracle RDBMS 安裝目錄 :  
     ORACLE_BASE=/u01/product/oracle  
     ORACLE_HOME=/u01/product/oracle/11.2.0/db_1  

# mkdir  ‐p   /u01/product/oracle  
 暫時不做這一步      # mkdir    /u01/product/oracle/cfgtoollogs  
       ‐‐  確保軟體安裝後 dbca 可以執行 
# chown  ‐R   oracle.oinstall   /u01/product/oracle   
# chmod  ‐R   775   /u01/product/oracle  


9.   建立 Oracle RDBMS home 目錄(所有節點執行) 
# mkdir  ‐p   /u01/product/oracle/11.2.0/db_1  
# chown  ‐R   oracle.oinstall    /u01/product/oracle/11.2.0/db_1  
# chmod  ‐R   775   /u01/product/oracle/11.2.0/db_1  



 
10.  準備 Oracle Grid Infrastructure 及 RDBMS software (主節點準備)。
 
11.  檢查 OS rpm 包 (所有節點執行)  
這裡是 Linux AS 5.4 32bit,  如果是 64bit,需要檢查以下的 Packages. 
以下重複包名稱的部分是 64bit,註明 32bit 的是 32bit packages.  如果 
是 32bit OS,  那麼重複包名的只需要 32bit 部分的包  。注意不同版本的 
Linux 系統後面的版本不太一樣  。   

binutils‐2.15.92.0.2 
compat‐libstdc++‐33‐3.2.3 
compat‐libstdc++‐33‐3.2.3 (32 bit) 
elfutils‐libelf‐0.97 
elfutils‐libelf‐devel‐0.97 
expat‐1.95.7 
gcc‐3.4.6 
gcc‐c++‐3.4.6 
glibc‐2.3.4‐2.41 
glibc‐2.3.4‐2.41 (32 bit) 
glibc‐common‐2.3.4 
glibc‐devel‐2.3.4 
glibc‐headers‐2.3.4 
libaio‐0.3.105 
libaio‐0.3.105 (32 bit) 
libaio‐devel‐0.3.105 
libaio‐devel‐0.3.105 (32 bit) 
libgcc‐3.4.6 
libgcc‐3.4.6 (32‐bit) 
libstdc++‐3.4.6 
libstdc++‐3.4.6 (32 bit) 
libstdc++‐devel-3.4.6 
make‐3.80 
pdksh‐5.2.14 
sysstat‐5.0.5 
unixODBC‐2.2.11 
unixODBC‐2.2.11 (32 bit) 
unixODBC‐devel‐2.2.11 
unixODBC‐devel‐2.2.11 (32 bit)  

檢查方法:  
[root@rac02 grid]# rpm ‐q ‐‐qf '%{NAME}‐%{VERSION}‐%{RELEASE} (%{ARCH})\n' binutils \ 

然後輸入: 
compat‐libstdc++‐33 \ 
elfutils‐libelf \ 
elfutils‐libelf‐devel \ 
expat \ 
gcc \ 
gcc‐c++ \ 
glibc \ 
glibc‐common \ 
glibc‐devel \ 
glibc‐headers \ 
ksh \ 
libaio \ 
libaio‐devel \ 
libgcc \ 
libstdc++ \ 
libstdc++‐devel \ 
make \ 
pdksh \ 
sysstat \ 
unixODBC \ 
unixODBC‐devel 


結果如下:  
 
[root@rac01 u01]# rpm ‐q ‐‐qf '%{NAME}‐%{VERSION}‐%{RELEASE} (%{ARCH})\n' binutils \ 

> compat‐libstdc++‐33 \ 
> elfutils‐libelf \ 
> elfutils‐libelf‐devel \ 
> expat \ 
> gcc \ 
> gcc‐c++ \ 
> glibc \ 
> glibc‐common \ 
> glibc‐devel \ 
> glibc‐headers \ 
> ksh \ 
> libaio \ 
> libaio‐devel \ 
> libgcc \ 
> libstdc++ \ 
> libstdc++‐devel \ 
> make \ 
> pdksh \ 
> sysstat \ 
> unixODBC \ 
> unixODBC‐devel 
binutils‐2.17.50.0.6‐9.el5 (i386) 
compat‐libstdc++‐33‐3.2.3‐61 (i386) 
elfutils‐libelf‐0.137‐3.el5 (i386) 
elfutils‐libelf‐devel‐0.137‐3.el5 (i386) 
expat‐1.95.8‐8.2.1 (i386) 
gcc‐4.1.2‐44.el5 (i386) 
gcc‐c++‐4.1.2‐44.el5 (i386) 
glibc‐2.5‐34 (i686) 
glibc‐common‐2.5‐34 (i386) 
glibc‐devel‐2.5‐34 (i386) 
glibc‐headers‐2.5‐34 (i386) 
ksh‐20080202‐2.el5 (i386) 
libaio‐0.3.106‐3.2 (i386) 
libaio‐devel‐0.3.106‐3.2 (i386) 
libgcc‐4.1.2‐44.el5 (i386) 
libstdc++‐4.1.2‐44.el5 (i386) 
libstdc++‐devel‐4.1.2‐44.el5 (i386) 
make‐3.81‐3.el5 (i386) 
package pdksh is not installed    ‐‐‐    pdksh  沒有安裝  
sysstat‐7.0.2‐3.el5 (i386) 
unixODBC‐2.2.11‐7.1 (i386) 
unixODBC‐devel‐2.2.11‐7.1 (i386) 

查詢一些文件,pdksh 這個包可以不用安裝。 




設定grid及oracle使用者的環境變數 。 

Grid  Infrastructure 安裝目錄(注意: 不是GRID_HOME哦) :   
     ORACLE_BASE=/u01/product/grid/crs 
     ORACLE_HOME=/u01/product/grid/11.2.0    

Oracle RDBMS 安裝目錄 :  
     ORACLE_BASE=/u01/product/oracle  
     ORACLE_HOME=/u01/product/oracle/11.2.0/db_1  


[root@rac01 init.d]# su ‐ grid  
[grid@rac01 ~]$ cd   /home/grid/ 
[grid@rac01 ~]$ vi   .bash_profile   
以下 grid 的 bash_profile,  僅供參考,還有一些引數可以自行加入。  
 
# ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ 
# .bash_profile 
# ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ 
# OS User:       grid 
# Application:    Oracle Grid Infrastructure 
# Version:       Oracle 11g release 2 
# ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ 
# Get the aliases and functions 
if [ ‐f ~/.bashrc ]; then 
       . ~/.bashrc 
fi 
 
alias ls="ls ‐FA" 
 
# ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ 
# ORACLE_SID 
# ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ 
# Specifies the Oracle system identifier (SID) 
# for the Automatic Storage Management (ASM)instance 
# running on this node. 
# Each RAC node must have a unique ORACLE_SID. 
# (i.e. +ASM1, +ASM2,...) 
# ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ 

ORACLE_SID=+ASM1; export ORACLE_SID 
JAVA_HOME=/usr/local/java; export JAVA_HOME 
ORACLE_BASE=/u01/product/grid/crs  ;   export ORACLE_BASE 
ORACLE_HOME=/u01/product/grid/11.2.0  ;   export ORACLE_HOME  
 
ORACLE_TERM=vt100 ;   export ORACLE_TERM 
NLS_DATE_FORMAT="DD‐MON‐YYYY HH24:MI:SS"; export NLS_DATE_FORMAT 
ORA_NLS11=$ORACLE_HOME/nls/data; export ORA_NLS11 
 
PATH=${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin 
PATH=${PATH}:/usr/bin:/bin:/sbin:/usr/bin/X11:/usr/local/bin 
PATH=${PATH}:/u01/product/common/oracle/bin 
export PATH 
 
LD_LIBRARY_PATH=$ORACLE_HOME/lib 
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib 
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib 
export LD_LIBRARY_PATH  
 
CLASSPATH=$ORACLE_HOME/JRE 
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib 
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib 
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib 
export   CLASSPATH  

export TEMP=/tmp 
export TMPDIR=/tmp  
umask 022 

同樣在其他節點的 grid 使用者.bash_profile 中加入,並注意修改 ORACLE_SID=+ASM1 . 


同樣,安裝 Oracle 軟體的 Oracle 使用者也需要設定.bash_profile .   
[root@rac01 init.d]# su ‐ oracle   
[grid@rac01 ~]$ cd   /home/oracle/ 
[grid@rac01 ~]$ vi   .bash_profile  
 
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi 

# User specific environment and startup programs
BASH_ENV=$HOME/.BASHRC
export BASH_ENV
export TEMP=/tmp
export TMPDIR=/tmp
PATH=$PATH:$HOME/bin:/bin:/sbin:/usr/bin:/usr/sbin
PATH=${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin
PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
PATH=${PATH}:/u01/product/common/oracle/bin
export PATH  
ORACLE_SID=racdb1 ; export  ORACLE_SID  
ORACLE_BASE=/u01/product/oracle;     export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/11.2.0/db_1;    export ORACLE_HOME
ORACLE_TERM=vt100;export ORACLE_TERM
export PATH=$ORACLE_HOME/bin:$PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib;export LD_LIBRARY_PATH   

JAVA_HOME=/usr/local/java;   export JAVA_HOME
CLASSPATH=$ORACLE_HOME/JRE
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export   CLASSPATH
set -u   
PS1=`hostname`'$';export PS1
EDITOR=/bin/vi; export EDITOR
alias ll='ls -l';
alias ls='ls --color';
alias his='history';
umask 022 

其他節點也設定,並注意修改 ORACLE_SID 部分。





12.  為 Oracle RAC 準備共享儲存   

在三個分開(三個物理磁碟)的 failure groups 下需要至少 2GB 的磁碟空間用於 
Oracle Clusterware檔案  (Oracle Cluster Registry and voting disk) . 

‐All of the devices in an Automatic Storage Management disk group  
should be the same size and have the same performance characteristics. 
‐A disk group should not contain more than one partition on a single physical disk device. 
‐Using logical volumes as a device in an Automatic Storage Management disk group  
is not supported with Oracle RAC. 
‐The user account with which you perform the installation (oracle) must have  
write permissions to create the files in the path that you specify. 


共享磁碟劃分規劃(假設硬體上沒做 RAID1,這裡規劃映象磁碟組)   
Block Device      ASMlib Name     Size     Comments  

/dev/sdb1     OCR_VOTE01      10GB      ASM Diskgroup for OCR and Voting Disks 
/dev/sdc1     ASM_DATA01      10GB      ASM Data Diskgroup 
/dev/sdd1     ASM_DATA02      10GB      ASM Data Diskgroup  (映象磁碟組) 
/dev/sde1     ASM_FRA              4GB       ASM Flash Recovery Area Diskgroup 


這裡是虛擬機器安裝 RAC,  所以需要設定共享磁碟檔案  (可以透過以下命令,也可以透過
VMware 介面新增,注意選擇磁碟時候需要選取 SCSI 1:1,SCSI 1:2,依次類推,多少個磁碟選擇
多少個)。如果是實體 Storage,這一步不需要。 

A.  建立一個資料夾用於存放共享磁碟檔案  :    E:\SharedDiskASM 
B.  執行下面命令生成共享檔案  
 
C:\>cd   C:\Program Files\VMware\VMware Workstation
 
vmware‐vdiskmanager.exe ‐c ‐s 10Gb ‐a   lsilogic  ‐t   2    "E:\SharedDiskASM"\ShareDiskOCR.vmdk 
vmware‐vdiskmanager.exe ‐c ‐s 10Gb ‐a   lsilogic  ‐t   2    "E:\SharedDiskASM"\ShareDiskData01.vmdk
vmware‐vdiskmanager.exe ‐c ‐s 10Gb ‐a   lsilogic  ‐t   2    "E:\SharedDiskASM"\ShareDiskData02.vmdk  
vmware‐vdiskmanager.exe ‐c ‐s 4Gb ‐a   lsilogic  ‐t   2   "E:\SharedDiskASM"\ShareDiskFlash.vmdk  

這樣就生成了新的虛擬磁碟,其中‐s  10Gb 表示磁碟容量,‐a  表示介面型別 lsilogic 即 scsi 接
口,‐t 2 的意思是預分配磁碟空間,可以用‐t 0 選項,這樣就不會佔用空間了,實際用多少就多少.  
可以看到在 E:\SharedDiskASM 生成了多個個檔案。  


關閉 Linux 系統及虛擬機器  :  

到虛擬機器目錄比如 D:\VM\Linux5_Test_ASM,直接編輯*.vmx 檔案,  加上下面語句(所有虛擬機器節點). 

disk.locking = "false" 
scsi1.virtualDev = "lsilogic"
scsi1.present = "TRUE"
scsi1.sharedBus = "virtual" 

diskLib.dataCacheMaxSize = "0" 
diskLib.dataCacheMaxReadAheadSize = "0" 
diskLib.DataCacheMinReadAheadSize = "0" 
diskLib.dataCachePageSize = "4096" 
diskLib.maxUnsyncedWrites = "0"

scsi1:1.deviceType = "disk"
scsi1:1.present = "TRUE"
scsi1:1.fileName = "E:\SharedDiskASM\ShareDiskOCR.vmdk"
scsi1:1.mode = "independent-persistent"
scsi1:1.redo = ""

scsi1:2.deviceType = "disk"
scsi1:2.present = "TRUE"
scsi1:2.fileName = "E:\SharedDiskASM\ShareDiskData01.vmdk"
scsi1:2.mode = "independent-persistent"
scsi1:2.redo = ""

scsi1:3.deviceType = "disk"
scsi1:3.present = "TRUE"
scsi1:3.fileName = "E:\SharedDiskASM\ShareDiskData02.vmdk"
scsi1:3.mode = "independent-persistent"
scsi1:3.redo = ""

scsi1:4.deviceType = "disk"
scsi1:4.present = "TRUE"
scsi1:4.fileName = "E:\SharedDiskASM\ShareDiskFlash.vmdk"
scsi1:4.mode = "independent-persistent"
scsi1:4.redo = ""

注意:這個檔案中的每一行都不能重複,否則會報錯, 而且不要去改變檔案的編碼格式
(如果提示需要儲存為其他編碼格式,比如unicode, 那麼就是複製的格式有問題,需要
手工寫入 )。  
 
最後開啟虛擬機器程式(注意,一定要重新啟動vmware介面程式),檢視每個節點虛擬機器 
Devices部分,在未開啟各個虛擬機器的時候就應該可以看到磁碟掛載情況 。  然後開機
再次確認 。  如果在未開啟時沒有看到磁碟資訊, 那麼就是寫入vmx檔案的語法有問題, 
可以手工寫入(而不是複製)。   
 
當然也可以透過VMWare圖形介面建立磁碟,注意共享磁碟選擇SCSI 1而不是0才可以。
這裡不詳細介紹。




13.   劃分共享磁碟  (在一個節點上執行 fdisk)  

[root@rac001 ~]# fdisk -l

Disk /dev/sda: 16.1 GB, 16106127360 bytes
255 heads, 63 sectors/track, 1958 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1           6       48163+  83  Linux
/dev/sda2               7         515     4088542+  83  Linux
/dev/sda3             516        1759     9992430   83  Linux
/dev/sda4            1760        1958     1598467+   5  Extended
/dev/sda5            1760        1958     1598436   82  Linux swap / Solaris

Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdb doesn't contain a valid partition table

Disk /dev/sdc: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdc doesn't contain a valid partition table

Disk /dev/sdd: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdd doesn't contain a valid partition table

Disk /dev/sde: 4294 MB, 4294967296 bytes
255 heads, 63 sectors/track, 522 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sde doesn't contain a valid partition table
[root@rac001 ~]# fdisk /dev/sdb 
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.

The number of cylinders for this disk is set to 1305.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1305, default 1): 
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-1305, default 1305): 
Using default value 1305

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.


再分別對 /dev/sdc, /dev/sdd,  /dev/sde 進行磁碟分割槽。 


最後結果如下:  
[root@rac001 ~]# fdisk -l

Disk /dev/sda: 16.1 GB, 16106127360 bytes
255 heads, 63 sectors/track, 1958 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1           6       48163+  83  Linux
/dev/sda2               7         515     4088542+  83  Linux
/dev/sda3             516        1759     9992430   83  Linux
/dev/sda4            1760        1958     1598467+   5  Extended
/dev/sda5            1760        1958     1598436   82  Linux swap / Solaris

Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        1305    10482381   83  Linux

Disk /dev/sdc: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1        1305    10482381   83  Linux

Disk /dev/sdd: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdd1               1        1305    10482381   83  Linux

Disk /dev/sde: 4294 MB, 4294967296 bytes
255 heads, 63 sectors/track, 522 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sde1               1         522     4192933+  83  Linux
[root@rac001 ~]# 

重新啟動節點 1,2  ,檢視是否都顯示掛載正常。  



14.  安裝及配置 ASMLib   (每個節點都需要安裝)   
從Oracle OTN ASMLib網頁下載ASMLib包, 使用uname –a檢視系統核心版本, 下載的ASMLib
版本要與之匹配。  
[root@rac002 ~]# uname -a 
Linux rac002 2.6.18-164.el5 #1 SMP Tue Aug 18 15:51:54 EDT 2009 i686 i686 i386 GNU/Linux
[root@rac001 etc]# cat   redhat-release 
Red Hat Enterprise Linux Server release 5.4 (Tikanga)

檢視是否有安裝過:  
[root@rac01 ~]# rpm  -qa | grep    oracleasm  

匹配的 ASMLib 檔案如下  (以下也是檔案安裝順序):  
oracleasm-support-2.1.7-1.el5.i386.rpm
oracleasm-2.6.18-164.el5-2.0.5-1.el5.i686.rpm
oracleasmlib-2.0.4-1.el5.i386.rpm

[root@rac001 packages]# rpm -ivh oracleasm-support-2.1.7-1.el5.i386.rpm 
warning: oracleasm-support-2.1.7-1.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159
Preparing...                ########################################### [100%]
   1:oracleasm-support      ########################################### [100%]

[root@rac001 packages]# rpm -ivh  oracleasm-2.6.18-164.el5-2.0.5-1.el5.i686.rpm 
warning: oracleasm-2.6.18-164.el5-2.0.5-1.el5.i686.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159
Preparing...                ########################################### [100%]
   1:oracleasm-2.6.18-164.el########################################### [100%]

[root@rac001 packages]# rpm -ivh   oracleasmlib-2.0.4-1.el5.i386.rpm 
warning: oracleasmlib-2.0.4-1.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159
Preparing...                ########################################### [100%]
   1:oracleasmlib           ########################################### [100%]
[root@rac001 packages]# 

同樣在其他節點也執行。  





15.  以 root 使用者配置 ASMLib   (每個節點都需要安裝)    

If using user and group separation for the installation (as shown in this guide), the ASMLib driver 
interface owner  is grid and the group to own the driver  interface  is asmdba (oracle and grid are 
both members  of  this  group).  These  groups  were  created  in  section  2.1.  If  a more  simplistic 
installation  using  only  the  Oracle  user  is  performed,  the  owner  will  be  oracle  and  the  group 
owner will be dba.  
 
[root@rac001 ~]# /etc/init.d/oracleasm   configure 
Configuring the Oracle ASM library driver.

This will configure the on-boot properties of the Oracle ASM library
driver.  The following questions will determine whether the driver is
loaded on boot and what permissions it will have.  The current values
will be shown in brackets ('[]').  Hitting  without typing an
answer will keep that current value.  Ctrl-C will abort.

Default user to own the driver interface []: grid
Default group to own the driver interface []: asmadmin
Start Oracle ASM library driver on boot (y/n) [n]: y
Scan for Oracle ASM disks on boot (y/n) [y]: y
Writing Oracle ASM library driver configuration: done
Initializing the Oracle ASMLib driver: [  OK  ]
Scanning the system for Oracle ASMLib disks: [  OK  ]
[root@rac001 ~]#  

同樣在其他節點也執行上面命令。





16.  使用 ASMLib 去標示 Shared Disks 作為 Candidate Disks,在一個
節點執行即可。 

A.  使用 ASMLib 建立 ASM Disks ,  語法如下:  
# /usr/sbin/oracleasm   createdisk   disk_name   device_partition_name    
 
其中 disk_name 是你為 ASM  Disk 選擇的一個名字,名字只能包含數字字母及下劃線,比如
OCR01  ,  DATA01  等.   device_partition_name  標示為 ASM 的系磁碟分割槽,如/dev/sdb1 ,
 /dev/sdc1  等  

如果你發現設定錯誤或需要 unmark這個磁碟,可以執行如下命令:  
# /usr/sbin/oracleasm    deletedisk   disk_name   

下面開始設定共享磁碟。  

根據規劃: 
Block Device      ASMlib Name     Size     Comments  
/dev/sdb1        OCR_VOTE01      10GB      ASM Diskgroup for OCR and Voting Disks 
/dev/sdc1        ASM_DATA01      10GB      ASM Data Diskgroup 
/dev/sdd1        ASM_DATA02      10GB      ASM Data Diskgroup  (映象磁碟組) 
/dev/sde1        ASM_FRA              4GB       ASM Flash Recovery Area Diskgroup 

# /usr/sbin/oracleasm   createdisk   OCR_VOTE01   /dev/sdb1   
# /usr/sbin/oracleasm   createdisk   ASM_DATA01   /dev/sdc1   
# /usr/sbin/oracleasm   createdisk   ASM_DATA02   /dev/sdd1    
# /usr/sbin/oracleasm   createdisk   ASM_FRA          /dev/sde1   

執行結果如下, 
[root@rac001 ~]# /usr/sbin/oracleasm  createdisk  OCR_VOTE01  /dev/sdb1 
Writing disk header: done
Instantiating disk: done
[root@rac001 ~]#  /usr/sbin/oracleasm  createdisk  ASM_DATA01   /dev/sdc1 
Writing disk header: done
Instantiating disk: done
[root@rac001 ~]#  /usr/sbin/oracleasm  createdisk  ASM_DATA02   /dev/sdd1  
Writing disk header: done
Instantiating disk: done
[root@rac001 ~]#  /usr/sbin/oracleasm  createdisk  ASM_FRA    /dev/sde1   
Writing disk header: done
Instantiating disk: done


B.   在節點 1上為 RAC建立了所有的 ASM disks 後,使用 listdisks  命令確認他們的可用性。 
[root@rac001 ~]# /usr/sbin/oracleasm   listdisks 
ASM_DATA01
ASM_DATA02
ASM_FRA
OCR_VOTE01

然後在所有其他節點上以 root 使用者身份,使用 scandisks 命令掃描已經建立的 ASM 磁碟,也
就是說,我們只需要在節點 1 上建立 ASM 磁碟,其他節點不需要。  
[root@rac002 ~]# /usr/sbin/oracleasm   scandisks 
Reloading disk partitions: done
Cleaning any stale ASM disks...
Scanning system for ASM disks...
Instantiating disk "OCR_VOTE01"
Instantiating disk "ASM_DATA01"
Instantiating disk "ASM_DATA02"
Instantiating disk "ASM_FRA"

最後在其他節點透過 listdisks  檢查 ASM 磁碟的可用性。  
[root@rac002 ~]# /usr/sbin/oracleasm  listdisks 
ASM_DATA01
ASM_DATA02
ASM_FRA
OCR_VOTE01




 
17.  準備安裝 Oracle Grid Infrastructure   
切換到 grid 使用者,準備安裝 grid  Infrastructure  .  首先需要確認所有節點 grid 使用者的環境變
量.bash_profile .  
 
安裝用於  Linux  的  cvuqdisk  程式包  

在兩個  Oracle RAC  節點上安裝作業系統程式包  cvuqdisk。如果沒有  cvuqdisk,叢集驗證實
用程式就無法發現共享磁碟,當執行(手動執行或在  Oracle Grid  Infrastructure  安裝結束時
自動執行) 叢集驗證實用程式時, 您會收到這樣的錯誤訊息: “Package cvuqdisk not installed” 。
注意使用適用於你的硬體體系結構(例如,x86_64  或  i386)的  cvuqdisk RPM。  
 
cvuqdisk  RPM  包含在  Oracle  Grid  Infrastructure  安裝介質上的  rpm  目錄中。 

解壓 linux_11gR2_grid.zip 
[root@rac001 packages]# unzip    linux_11gR2_grid.zip  

[root@rac001 rpm]# cd   /home/packages/grid/rpm    
[root@rac001 rpm]# ls   
cvuqdisk-1.0.7-1.rpm  




要安裝  cvuqdisk RPM,執行以下步驟:  
以  grid  使用者帳戶將  cvuqdisk  程式包從節點 1 複製到節點 2  : 
 
以  root  使用者身份分別登入到兩節點:  
設定環境變數  CVUQDISK_GRP, 使其指向作為  cvuqdisk  的所有者所在的組 (本文為  oinstall) :   
 
[root@rac001 rpm]# export   CVUQDISK_GRP=oinstall 
[root@rac001 rpm]# rpm -ihv cvuqdisk-1.0.7-1.rpm 
Preparing...                ########################################### [100%]
   1:cvuqdisk               ########################################### [100%]
[root@rac001 rpm]# 

[root@rac002 home]# export  CVUQDISK_GRP=oinstall  
[root@rac002 home]# rpm -ivh cvuqdisk-1.0.7-1.rpm 
Preparing...                ########################################### [100%]
   1:cvuqdisk               ########################################### [100%]


使用  CVU  驗證是否滿足  Oracle  叢集件要求(可選),下面文字只是說明。 
在執行  Oracle  安裝程式之前不一定要執行叢集驗證實用程式。從 Oracle Clusterware 11g  第 
2  版開始, Oracle Universal Installer (OUI)  會檢測到不滿足最低安裝要求的情況, 並建立  shell 
指令碼(稱為修復指令碼)以完成尚未完成的系統配置步驟。如果  OUI  發現未完成的任務,它
會生成修復指令碼  (runfixup.sh)。 在  Oracle Grid Infrastructure  安裝過程中, 單擊  Fix and Check 
Again Button  之後,可以執行修復指令碼。  
 
您也可以讓  CVU  在安裝之前生成修復指令碼。  
如果您決定親自執行  CVU,請記住要作為  grid  使用者在將要執行  Oracle  安裝的節點  (rac01) 
上執行。此外,必須為  grid  使用者配置透過使用者等效性實現的  SSH  連通性。如果您打算使
用  OUI  配置  SSH  連線,則  CVU  實用程式會失敗,它沒有機會執行其任何的關鍵檢查並生
成修復指令碼:  
 
 
這裡我們以傳統方式先建立各節點間的 SSH連通性( grid使用者 )。 
在節點 1 上:  
[root@rac001 rpm]# su - grid
[grid@rac001 ~]$ 
[grid@rac001 ~]$ cd /home/grid/
[grid@rac001 ~]$ mkdir  .ssh
mkdir: cannot create directory `.ssh': File exists
[grid@rac001 ~]$ chmod 700  .ssh/
[grid@rac001 ~]$ 
 

同樣在節點 2 上執行:  
[root@rac002 home]# su - grid  
[grid@rac002 ~]$ cd   /home/grid/
[grid@rac002 ~]$ mkdir .ssh
[grid@rac002 ~]$ chmod 700 .ssh
[grid@rac002 ~]$ 


在節點 1 上:  
[root@rac001 rpm]# su - grid
[grid@rac001 ~]$ 
[grid@rac001 ~]$ cd /home/grid/
[grid@rac001 ~]$ mkdir  .ssh
mkdir: cannot create directory `.ssh': File exists
[grid@rac001 ~]$ chmod 700  .ssh/
[grid@rac001 ~]$ ssh-keygen -t  rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/grid/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/grid/.ssh/id_rsa.
Your public key has been saved in /home/grid/.ssh/id_rsa.pub.
The key fingerprint is:
57:eb:a8:61:e2:5f:a0:ed:0e:7d:4a:3d:41:df:fb:b1 grid@rac001
[grid@rac001 ~]$ ssh-keygen -t  dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/grid/.ssh/id_dsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/grid/.ssh/id_dsa.
Your public key has been saved in /home/grid/.ssh/id_dsa.pub.
The key fingerprint is:
08:7a:8c:74:4b:cd:34:fd:4a:eb:88:b4:fa:58:7d:0f grid@rac001
[grid@rac001 ~]$ 



同樣在節點 2 上執行:    
[grid@rac002 ~]$ ssh-keygen  -t  rsa 
Generating public/private rsa key pair.
Enter file in which to save the key (/home/grid/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/grid/.ssh/id_rsa.
Your public key has been saved in /home/grid/.ssh/id_rsa.pub.
The key fingerprint is:
d0:d2:58:0f:b5:93:f2:76:f0:9d:b5:d6:45:cc:72:f5 grid@rac002
[grid@rac002 ~]$ 
[grid@rac002 ~]$ ssh-keygen  -t  dsa 
Generating public/private dsa key pair.
Enter file in which to save the key (/home/grid/.ssh/id_dsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/grid/.ssh/id_dsa.
Your public key has been saved in /home/grid/.ssh/id_dsa.pub.
The key fingerprint is:
6b:4b:12:50:c9:00:35:24:ab:ce:6c:ba:98:49:7f:2b grid@rac002


在節點 1 上執行:  
[grid@rac001 ~]$ cd /home/grid/.ssh/
[grid@rac001 .ssh]$ ssh rac001 cat  /home/grid/.ssh/id_rsa.pub >>authorized_keys 
The authenticity of host 'rac001 (10.161.32.161)' can't be established.
RSA key fingerprint is bf:17:7b:22:7a:fe:31:67:5e:7d:b2:a2:15:66:cf:4e.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'rac001,10.161.32.161' (RSA) to the list of known hosts.
grid@rac001's password: 
[grid@rac001 .ssh]$ ssh rac001 cat  /home/grid/.ssh/id_dsa.pub >>authorized_keys 
[grid@rac001 .ssh]$ ssh rac002 cat  /home/grid/.ssh/id_rsa.pub >>authorized_keys 
The authenticity of host 'rac002 (10.161.32.162)' can't be established.
RSA key fingerprint is bf:17:7b:22:7a:fe:31:67:5e:7d:b2:a2:15:66:cf:4e.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'rac002' (RSA) to the list of known hosts.
grid@rac002's password: 
[grid@rac001 .ssh]$ ssh rac002 cat  /home/grid/.ssh/id_dsa.pub >>authorized_keys 
grid@rac002's password: 
[grid@rac001 .ssh]$ 

 
在節點 1 上將生成的 authorized_keys  複製到節點 2 上。   
[grid@rac001 .ssh]$ cd /home/grid/.ssh/
[grid@rac001 .ssh]$ scp authorized_keys  rac002:/home/grid/.ssh/ 
grid@rac002's password: 
authorized_keys                                                          100% 1988     1.9KB/s   00:00    
[grid@rac001 .ssh]$ 

 
在節點 1 及節點 2 上 chmod   authorized_keys   。   
[grid@rac001 .ssh]$ cd   /home/grid/.ssh/ 
[grid@rac001 .ssh]$ chmod   600   authorized_keys 
 
[grid@rac002 .ssh]$ cd /home/grid/.ssh/ 
[grid@rac002 .ssh]$ chmod 600 authorized_keys 
 


測試節點 1,2 的 SSH 連通性。 
在節點 1 上:  
[root@rac001 ~]# su - grid 
[grid@rac001 ~]$ ssh  rac001 date 
Thu Nov 10 16:47:25 CST 2011
[grid@rac001 ~]$ ssh rac002 date 
Thu Nov 10 16:47:28 CST 2011
[grid@rac001 ~]$ ssh pri001 date 
The authenticity of host 'pri001 (10.1.1.11)' can't be established.
RSA key fingerprint is bf:17:7b:22:7a:fe:31:67:5e:7d:b2:a2:15:66:cf:4e.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'pri001,10.1.1.11' (RSA) to the list of known hosts.
Thu Nov 10 16:47:37 CST 2011
[grid@rac001 ~]$ ssh pri002 date 
The authenticity of host 'pri002 (10.1.1.12)' can't be established.
RSA key fingerprint is bf:17:7b:22:7a:fe:31:67:5e:7d:b2:a2:15:66:cf:4e.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'pri002,10.1.1.12' (RSA) to the list of known hosts.
Thu Nov 10 16:47:43 CST 2011
[grid@rac001 ~]$ 



在節點 2 上:   
[root@rac002 ~]# su - grid
[grid@rac002 ~]$ ssh rac001 date 
The authenticity of host 'rac001 (10.161.32.161)' can't be established.
RSA key fingerprint is bf:17:7b:22:7a:fe:31:67:5e:7d:b2:a2:15:66:cf:4e.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'rac001,10.161.32.161' (RSA) to the list of known hosts.
Thu Nov 10 16:48:40 CST 2011
[grid@rac002 ~]$ ssh rac002 date 
The authenticity of host 'rac002 (10.161.32.162)' can't be established.
RSA key fingerprint is bf:17:7b:22:7a:fe:31:67:5e:7d:b2:a2:15:66:cf:4e.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'rac002,10.161.32.162' (RSA) to the list of known hosts.
Thu Nov 10 16:48:45 CST 2011
[grid@rac002 ~]$ ssh pri001 date  
The authenticity of host 'pri001 (10.1.1.11)' can't be established.
RSA key fingerprint is bf:17:7b:22:7a:fe:31:67:5e:7d:b2:a2:15:66:cf:4e.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'pri001,10.1.1.11' (RSA) to the list of known hosts.
Thu Nov 10 16:48:54 CST 2011
[grid@rac002 ~]$ ssh pri002 date  
The authenticity of host 'pri002 (10.1.1.12)' can't be established.
RSA key fingerprint is bf:17:7b:22:7a:fe:31:67:5e:7d:b2:a2:15:66:cf:4e.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'pri002,10.1.1.12' (RSA) to the list of known hosts.
Thu Nov 10 16:49:01 CST 2011




手動執行 CVU 使用程式驗證 Oracle  叢集件要求(一個節點執行):

到 grid 軟體解壓的目錄下執行 runcluvfy.sh  命令:  

[root@rac001 ~]# su - grid
[grid@rac001 ~]$ cd /home/packages/grid/  
[grid@rac001 grid]$ ./runcluvfy.sh stage -pre crsinst -n rac001,rac002 -fixup -verbose 
 
檢視  CVU  報告。  在本文所述配置情況下,應該只發現如下的唯一一個錯誤:  
 
Check: Membership of user "grid" in group "dba"  
   Node Name          User Exists    Group Exists   User in Group   Comment          
    ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐    ‐‐‐‐‐‐‐‐‐‐‐‐    ‐‐‐‐‐‐‐‐‐‐‐‐    ‐‐‐‐‐‐‐‐‐‐‐‐    ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ 
   rac02              yes            yes            no             failed           
   rac01              yes            yes            no             failed           

....... 

上面一個檢查失敗的原因是,透過任務角色劃分  配置建立了以角色分配的組和使用者,而  CVU  不能正確識
別這種配置。如何建立任務角色劃分配置。CVU  不能識別此類配置,因而假定  grid  使用者始終是  dba  組的
成員。可以放心地忽略這個失敗的檢查。CVU  執行的所有其他檢查的結果報告應該為“passed” ,之後才能
繼續進行  Oracle Grid Infrastructure  的安裝。  
 
同透過執行結果我們可以看到基本都是 passed,  如果 NTP 時間同步部分有 fail,  我們可以到
/etc/ntp.conf 下面將此檔案改名,比如 ntp.conf.bak  (安裝完成之後再改回來)  .  只要時間同步
就 OK .   


然後在節點 1 上使用 CVU 驗證硬體和作業系統設定。 
同樣,在  rac01  節點上以具有使用者等效性配置的  grid  使用者帳戶執行以下命令:  
[root@rac001 ~]# su - grid  
[grid@rac001 grid]$ cd /home/packages/grid/  
[grid@rac001 grid]$ ./runcluvfy.sh  stage -post hwos -n rac001,rac002 -verbose  

檢視  CVU  報告。CVU  執行的所有其他檢查的結果報告應該為“passed” ,之後才能繼續進
行  Oracle Grid Infrastructure  的安裝。 
 






18.   開始安裝  Grid Infrastructure  
需要圖形介面安裝 Grid  Infrastructure 軟體,這裡使用 VNC。以 grid 使用者登陸,進入到 grid  
infrastructure 解壓後的目錄 , 執行$./runInstaller   
 
A. 選擇Install and Configure Grid Infrastructure for a Cluster . 下一步。
   注意: 11g要使用ASM,即使單機也需要安裝Grid Infrastructure. 
B. 選擇高階安裝 - Advanced Installation . 
C. 選擇需要的語言,這裡我們全選了。
D. 填寫Cluster Name為rac, SCAN Name為racscan(與/etc/hosts中設定匹配),port=1521. 
   不配置GNS. 
E. 配置節點資訊: rac001, vip001 ;  rac002,  vip002 .  
F. 設定網路卡(按照/etc/hosts中IP對應設定,多餘的都設定為Do Not Use).
G. Storage項選擇ASM . 
H. 建立ASM磁碟組:注意這裡high表示5個映象,Normal表示3個映象,我們選擇External,因為
   我們測試只有一個磁碟組,沒有設定failure group, 生產庫一般最好選擇Normal. 
   Disk Group Name : OCR_VOTE (自己起名字),選擇External, Add Disks部分,選擇
   Candidate Disks及對應的ORCL:    OCR_VOTE01 . 

備註:    
(1). 如果是用來放置ocr/vd的diskgroup,那麼external,normal,high 對應的failgroup至少
為1,3,5個,也就是至少需要1,3,5個disk  
(2). 如果是普通的ASM 用來放置data file的diskgroup,那麼external,normal,high對應的
failgroup至少為1,2,3個,也就是至少需要1,2,3個disk

I. 設定ASM例項的sys及sysasm使用者的密碼。
J. 選擇不使用IPMI .  
K. 作業系統組: asmdba, asmoper, asmadmin . 
L. grid使用者的ORACLE_BASE及ORACLE_HOME, 按照grid使用者的.bash_profile設定來。
    /u01/product/grid/crs ,  /u01/product/grid/11.2.0  
M. Oracle Inventory :  /u01/product/grid/oraInventory , 注意這些目錄的許可權。  
O. 複製及安裝檔案,兩個節點按順序執行orainstRoot.sh及root.sh 指令碼。
   注意:執行root.sh比較長時間,所以最好vnc登入本機執行,以免斷開。
   如果中間出現異常需要解除安裝grid,可以使用下面命令徹底清理 : 
   [grid@rac001 ~]$ cd   /u01/grid/  
   [grid@rac001 grid]$ cd  deinstall/  
   [grid@rac001 deinstall]$ ./deinstall   

如果在安裝過程中出現問題需要重新安裝grid infrastructure軟體,那麼還需要
對ocr及votingdisk所在區域進行清理 (ASM)   : 
[root@rac001 ~]# dd  if=/dev/zero  f=/dev/sdb1  bs=10M  count=10 

P. 執行完成後OK, 我們可能看到安裝到最後可能會報錯INS-20802錯誤,可以skip。

我們在節點 1,2 上透過 crs_stat –t 檢視服務開啟狀態(oc4j 和 gsd offline 是正常的):  
[root@rac002 oracle]# su ‐ grid 
[grid@rac002 ~]$  
[grid@rac002 ~]$ crs_stat ‐t   
Name            Type            Target     State      Host         
‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐ 
ora....ER.lsnr ora....er.type ONLINE     ONLINE     rac01        
ora....N1.lsnr ora....er.type ONLINE     ONLINE     rac01        
ora....VOTE.dg ora....up.type ONLINE     ONLINE     rac01        
ora.asm         ora.asm.type    ONLINE     ONLINE     rac01        
ora.eons        ora.eons.type   ONLINE     ONLINE     rac01        
ora.gsd         ora.gsd.type    OFFLINE    OFFLINE                
ora....network ora....rk.type ONLINE     ONLINE     rac01        
ora.oc4j        ora.oc4j.type   OFFLINE    OFFLINE                
ora.ons         ora.ons.type    ONLINE     ONLINE     rac01        
ora....SM1.asm application     ONLINE     ONLINE     rac01        
ora....01.lsnr application     ONLINE     ONLINE     rac01        
ora.rac01.gsd   application     OFFLINE    OFFLINE                
ora.rac01.ons   application     ONLINE     ONLINE     rac01        
ora.rac01.vip   ora....t1.type ONLINE     ONLINE     rac01        
ora....SM2.asm application     ONLINE     ONLINE     rac02        
ora....02.lsnr application     ONLINE     ONLINE     rac02        
ora.rac02.gsd   application     OFFLINE    OFFLINE                
ora.rac02.ons   application     ONLINE     ONLINE     rac02        
ora.rac02.vip   ora....t1.type ONLINE     ONLINE     rac02        
ora....ry.acfs ora....fs.type ONLINE     ONLINE     rac01        
ora.scan1.vip   ora....ip.type ONLINE     ONLINE     rac01   

備註:  
在 11gr2 中,預設 oc4j和 gsd 資源是 disable 的;  
oc4j  是用於WLM 的一個資源  , WLM在 11.2.0.2 才可用;  
gsd 是 CRS 用於跟 9i RAC  進行通訊的一個模組,是為了向後相容
才保留的,不影響效能;建議不要刪除,也不要嘗試開啟他們,  忽略即可。   







19.  開始安裝 Oracle RDBMS  軟體 

以 Oracle 使用者建立一個 vnc session,以便登入後不用切換使用者(透過 root 或其他使用者切換到
oracle 可能會碰到安裝圖形介面顯示的問題)。 

[root@rac002 u01]# su - oracle
[oracle@rac002 ~]$ 
[oracle@rac001 database]$ pwd
/u01/packages/database
[oracle@rac001 database]$ 
[oracle@rac001 database]$ ./runInstaller 

圖形介面出現後。

A. 輸入Email . 不用選擇下面security部分,也不用設定proxry server. 
B. 只是Install database software only. 
C. 選擇Real Application Clusters database installation, 可以看到兩個節點node name.
   點選下面的 SSH Connectivity按鈕,設定oracle使用者密碼,點選Setup, 成功後點選Test.
D. 選擇語言。 
E. 安裝企業版。
F. 按照Oracle使用者的.bash_profile設定ORACLE_BASE及ORACLE_HOME. 
G. 選擇作業系統組: dba, oinstall . 
H. 開始安裝。 
I. 按照提示在各個節點按照順序執行root.sh . 
J. 提示安裝成功。 




20. 執行ASMCA建立磁碟組。 

以grid使用者登入開始ASMCA配置磁碟組,因為是圖形介面,我們使用grid使用者的
vnc session . 

[grid@rac001 bin]$ pwd 
/u01/grid/11.2.0/bin 
[grid@rac001 bin]$ ./asmca  
 
圖形介面顯示到Disk Groups 。我們可以看到先前配置的OCR_VOTE已經在列。點選
下面的create 建立datafile及flash recovery area的ASM磁碟組。

磁碟組名稱ORADATA, 冗餘部分選擇External, 點選磁碟為ORCL:ASMDATA01,點選OK. 
繼續create 
磁碟組名稱ORAFLASH, 冗餘部分選擇External, 磁碟為ORCL:ASMDATA02,點選OK.
全部OK後點選QUIT退出。 



21.   執行 DBCA 建立資料庫。 
以 oracle 使用者登陸系統 dbca 建立資料庫,這裡我們以 oracle 使用者建立的 VNC  session 登入
VNC .  

[oracle@rac001 bin]$ dbca 

A. 建立RAC庫。
B. Create a Database. 
C. 選擇Custom Database . 
D. 配置型別為Admin-Managed, 全域性資料庫名及SID Prefix都是racdb(Oracle使用者的.bash_profile
   中有設定), 節點部分Select All. 
E. 企業管理器部分預設。
F. 測試用,所以所有使用者設定一個密碼。
G. 設定儲存型別: ASM, 選擇"Use Common Location for All Database Files" 
   Database Files Location:   +ORADATA, 彈出設定ASMSNMP密碼框。 
H. 選擇Specify Flash Recovery Area , 路徑部分為+ORAFLASH, 大小為4977M, 
   設定自動歸檔,點選設定歸檔路徑為 +ORADATA/RACDB/arch 
   建議: 如果只是設定+ORADATA, 這裡歸檔檔案會使用 OMF的格式,不遵循初始引數中
   的 format,  建議安裝完成後手工自己建立一個 ASM 目錄來放置歸檔檔案,這樣檔案
   名稱就會遵守 format 規則了。警告資訊忽略。
I. 資料庫元件預設即可。 
J. Mem 使用AMM, Sizing使用16K, 字符集採用AL32UTF8. 連線模式採用Dedicated Server.
K. 設定控制檔案及表空間,redo log group. 
L. 安裝完畢。 




22.   執行 DBCA 建立資料庫。

[grid@rac001 ~]$ crs_stat ‐t   
Name            Type            Target     State      Host         
‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ 
ora....ER.lsnr ora....er.type ONLINE     ONLINE     rac01        
ora....N1.lsnr ora....er.type ONLINE     ONLINE     rac01        
ora....VOTE.dg ora....up.type ONLINE     ONLINE     rac01        
ora.ORADATA.dg ora....up.type ONLINE     ONLINE     rac01        
ora....LASH.dg ora....up.type ONLINE     ONLINE     rac01        
ora.asm         ora.asm.type    ONLINE     ONLINE     rac01        
ora.eons        ora.eons.type   ONLINE     ONLINE     rac01        
ora.gsd         ora.gsd.type    OFFLINE    OFFLINE                
ora....network ora....rk.type ONLINE     ONLINE     rac01        
ora.oc4j        ora.oc4j.type   OFFLINE    OFFLINE                
ora.ons         ora.ons.type    ONLINE     ONLINE     rac01        
ora....SM1.asm application     ONLINE     ONLINE     rac01        
ora....01.lsnr application     ONLINE     ONLINE     rac01        
ora.rac01.gsd   application     OFFLINE    OFFLINE                
ora.rac01.ons   application     ONLINE     ONLINE     rac01        
ora.rac01.vip   ora....t1.type ONLINE     ONLINE     rac01        
ora....SM2.asm application     ONLINE     ONLINE     rac02        
ora....02.lsnr application     ONLINE     ONLINE     rac02        
ora.rac02.gsd   application     OFFLINE    OFFLINE                
ora.rac02.ons   application     ONLINE     ONLINE     rac02     
ora.rac02.vip   ora....t1.type ONLINE     ONLINE     rac02        
ora.racdb.db    ora....se.type ONLINE     ONLINE     rac01       
ora....ry.acfs ora....fs.type ONLINE     ONLINE     rac01        
ora.scan1.vip   ora....ip.type ONLINE     ONLINE     rac01        




問題點及解決:  
後來測試發現,歸檔路徑不能正常歸檔,可能是在設定規定那個路徑的時候有些問題。 
這裡重新透過 ASMCMD命令重新建立歸檔路徑及重新設定初始化引數中的歸檔路徑。 
[root@rac001 ~]# su ‐ grid 
[grid@rac001 ~]$ id 
uid=501(grid) gid=501(oinstall) groups=501(oinstall),504(asmadmin),506(asmdba),507(asmoper) 
[grid@rac001 ~]$ asmcmd 
ASMCMD> help  
ASMCMD> ls 
OCR_VOTE/ 
ORADATA/ 
ORAFLASH/ 
ASMCMD> cd oradata   (不區分大小寫的) 
ASMCMD> ls 
RACDB/ 
ASMCMD> cd racdb 
ASMCMD> ls 
CONTROLFILE/ 
DATAFILE/ 
ONLINELOG/ 
PARAMETERFILE/ 
TEMPFILE/ 
control01.ctl 
control02.ctl 
redo01.log 
redo02.log 
redo03.log 
redo04.log 
spfileracdb.ora 
準備在 ASM 磁碟下建立 arch 目錄,用於存放歸檔。 
ASMCMD> pwd   (檢視一下目錄)  
+oradata/racdb  
ASMCMD> mkdir arch  
ASMCMD>ls  
[root@rac01 ~]# su ‐ oracle 
[oracle@rac01 ~]$ sqlplus "/as sysdba"  
SQL> alter system set log_archive_dest_1='LOCATION=+ORADATA/RACDB/arch';   
歸檔測試,透過 ASMCMD 檢視 ASM磁碟下的歸檔情況,測試 OK.   



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-712534/,如需轉載,請註明出處,否則將追究法律責任。

相關文章