oracle 10g rac 安裝圖解
2012-02-18 13:56:27| 分類: oracle-rac | 標簽: |字號大中小 訂閱
規划:所用linux系統以虛擬化方式安裝在esx上,配置有內網的yum源,各分配有16G存儲,下面為簡單拓撲圖

一,下載軟件
1,地址:http://www.oracle.com/technology/software/products/database/oracle10g/htdocs/10201linx8664soft.html
10201_database_linux_x86_64.cpio.gz
10201_clusterware_linux_x86_64.cpio.gz
2,地址:http://www.oracle.com/technology/software/tech/linux/asmlib/rhel5.html
oracleasm-2.6.18-164.el5-2.0.5-1.el5.x86_64.rpm
oracleasmlib-2.0.4-1.el5.x86_64.rpm
oracleasm-support-2.1.3-1.el5.x86_64.rpm
二,安裝環境
1,系統:centos 5.4 x86_64
2,外部存儲:linux下的iscsi
3, iscsi服務器配置
#下載iSCSI Enterprise Target
wget http://nchc.dl.sourceforge.net/sourceforge/iscsitarget/iscsitarget-0.4.17.tar.gz
#解壓縮
tar -zxvf iscsitarget-0.4.17.tar.gz cd iscsitarget-0.4.17
#編譯、安裝
make make install
#配置服務
chkconfig --level 2345 iscsi-target on
service iscsi-target start
#配置第一個iSCSI設備 #在/opt/下生成64G大的空洞設備文件 #請將opt修改為實際的目錄,並根據實際情況設置設備文件大小
#生成空洞文件速度很快的,且在真正使用之前不占用磁盤實際空間
dd if=/dev/zero of=/opt/iscsi.[配置文件中Target的名稱].img bs=1G count=64 seek=64
#cout是從什么開始,一般設置為0
#生成256G的例子
dd if=/dev/zero of=/opt/iscsi/iqn.2009-04.com.haoyuan-inc:storage.disk.oracle.01.img bs=1G count=0 seek=256
vim /etc/ietd.conf
#編輯Target名稱,
例如:iqn.2009-04.com.haoyuan-inc:storage.disk.share.01 #編輯LUN段內容,
例如:Lun 0 Path=/opt/iscsi.iqn.2009-04.com.haoyuan-inc:storage.disk.share.01.image,Type=fileio
#不要設置XXXUser,允許任何人訪問
#重啟iscsi-target
service iscsi-target restart
三,安裝准備
1,檢查必須軟件
yum install jdk binutils elfutils-libelf elfutils-libelf-devel glibc glibc-common glibc-devel gcc gcc-c++ libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel libXp libXp-devel
#其中jdk是我在yum服務器中添加的
2,修改內核參數
編輯/etc/sysctl.conf
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 262144
#生效
/sbin/sysctl -p
3,修改系統shell限制
vi /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
4,配置 Hangcheck 計時器所有 RHEL 版本:
cat >> /etc/rc.d/rc.local <
/sbin/insmod hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
EOF
5,添加相應用戶和組
/usr/sbin/groupadd oinstall
/usr/sbin/groupadd dba
/usr/sbin/useradd -m -g oinstall -G dba oracle
passwd oracle
6,配置網絡
每個機器需要兩塊網卡,一個設置為公共IP,一個設置為私有IP,另外另需配置一虛擬IP,
虛擬IP不用手工添加到系統,只需預先定義好,一般是和公共IP在同一子網。
cat /etc/hosts
# Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 HY_472 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6 # public address
10.0.40.11 rac1 10.0.40.12 rac2 # private address
10.0.10.11 rac1-priv 10.0.10.12 rac2-priv # virtual address
10.0.40.111 rac1-vip 10.0.40.112 rac2-vip
7,配置ssh
rac1
su oracle
$mkdir ~/.ssh
$chmod 755 ~/.ssh
$/usr/bin/ssh-keygen -t rsa
$/usr/bin/ssh-keygen -t dsa
rac2
su oracle
$mkdir ~/.ssh
$chmod 755 ~/.ssh
$/usr/bin/ssh-keygen -t rsa
$/usr/bin/ssh-keygen -t dsa
rac1
$cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
$ssh oracle@rac2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ssh oracle@rac2 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
$chmod 644 ~/.ssh/authorized_keys
rac2
$cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
$ssh oracle@rac1 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ssh oracle@rac1 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
$chmod 644 ~/.ssh/authorized_keys
#建立等效性
rac1,rac2
$ssh rac1 $ssh rac1-priv $ssh rac2 $ssh rac2-priv
8,配置時間同步
rac1、rac2
#vi /etc/crontab
17 18 * * * /usr/sbin/ntpdate repo.haoyuan-inc.com > /dev/null
9,修改系統版本
rac1,rac2
vi /etc/redhat-release #將CentOS release 5 (Final) 修改成redhat 4
四、配置ASM
1,安裝所需軟件
rac1、rac2
rpm -ivh oracleasm-2.6.18-164.el5-2.0.5-1.el5.x86_64.rpm oracleasmlib-2.0.4-1.el5.x86_64.rpm oracleasm-support-2.1.3-1.el5.x86_64.rpm
2,掛載iscsi硬盤
rac1、rac2
yum install -y --nogpgcheck iscsi-initiator-utils
chkconfig --level 2345 iscsi on
chkconfig --level 2345 iscsid on
service iscsi start
service iscsid start
iscsiadm --mode discovery --type sendtargets --portal 10.0.40.51 iscsiadm -m node -T iqn.20-05.com.forzw:storage.disk.oracle.01 -p 10.0.40.51 -l
vi /etc/rc.local
iscsiadm -m node -T iqn.20-05.com.forzw:storage.disk.oracle.01 -p 10.0.40.51 -l
3,配置ASM
rac1,rac2
/etc/init.d/oracleasm configure
Default user to own the driver interface []: oracle
Default group to own the driver interface []: dba
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 ]
/etc/init.d/oracleasm enable
Writing Oracle ASM library driver configuration: done
Initializing the Oracle ASMLib driver: [ OK ]
Scanning the system for Oracle ASMLib disks: [ OK ]
rac1
fdisk /dev/sdb
Disk /dev/sdb: 67.1 GB, 67108864000 bytes 64 heads, 32 sectors/track, 64000 cylinders Units = cylinders of 2048 * 512 = 1048576 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 1000 1023984 83 Linux
/dev/sdb2 1001 2000 1024000 83 Linux
/dev/sdb3 2001 12000 10240000 83 Linux
/dev/sdb4 12001 64000 53248000 83 Linux
/etc/init.d/oracleasm createdisk VOL1 /dev/sdb3
/etc/init.d/oracleasm listdisks
VOL1
rac2
/etc/init.d/oracleasm scandisks
五,安裝配置RAC
1,創建安裝目錄
rac1,rac2
mkdir -p /u01/app/oracle/product/10.2.0/db_1
mkdir -p /u01/app/oracle/product/10.2.0/crs
chown -R oracle:oinstall /u01
chmod -R 775 /u01
2,設置環境變量
rac1
$vi .bash_profile
# .bash_profile # User specific aliases and functions # Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc fi
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORA_CRS_HOME=$ORACLE_BASE/product/10.2.0/crs
export ORACLE_SID=bccb1
export ORACLE_TERM=xterm
export NLS_LANG=AMERICAN_AMERICA.UTF8
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:$ORA_CRS_HOME/bin:/sbin
export PATH
rac2
$vi .bash_profile
# .bash_profile # User specific aliases and functions # Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORA_CRS_HOME=$ORACLE_BASE/product/10.2.0/crs
export ORACLE_SID=bccb2
export ORACLE_TERM=xterm
export NLS_LANG=AMERICAN_AMERICA.UTF8
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:$ORA_CRS_HOME/bin:/sbin
export PATH
3,配置voting disk
rac1,rac2
mkdir -p /u02/oracrs/
chown -R oracle:oinstall /u02/oracrs/
chmod -R 775 /u02/oracrs/ raw /dev/raw/raw1 /dev/sdb1 raw /dev/raw/raw2 /dev/sdb2 vi /etc/sysconfig/rawdevices /dev/raw/raw1 /dev/sdb1 /dev/raw/raw2 /dev/sdb2
chown root:oinstall /dev/raw/raw1
chmod 640 /dev/raw/raw1
chown oracle:dba /dev/raw/raw2
chmod 660 /dev/raw/raw2
vi /etc/rc.local
raw /dev/raw/raw1 /dev/sdb1
raw /dev/raw/raw2 /dev/sdb2
chown root:oinstall /dev/raw/raw1
chmod 640 /dev/raw/raw1
chown oracle:dba /dev/raw/raw2
chmod 660 /dev/raw/raw2
$ln -s /dev/raw/raw1 /u02/oracrs/ocr.crs
$ln -s /dev/raw/raw2 /u02/oracrs/vote.crs
4,安裝rac
rac1(安裝只在一台機器上進行)
gzip –d 10201_clusterware_linux_x86_64.cpio.gz
cpio –idmv < 10201_clusterware_linux_x86_64.cpio
chown -R oracle:oinstall clusterware
statx xhost+
su oracle
$cd ~
$source .bash_profile
$mkdir -p /u01/app/oracle/oraInventory
$cd clusterware $./runInstall
@彈出安裝界面
@指定Inventory目錄,由於已經環境變量,這里會默認選擇
@改變crs安裝路徑,這里選擇已經設置在環境變量中的crs目錄
@安裝條件檢查
@群集名稱默認設置為crs,添加節點,注意要和hosts文件種一致
@配置網絡接口類型
@配置ocr位置
@配置Voting Disk位置
@安裝概要
@安裝過程
@執行腳本,依次執行,且先執行本機,等腳本完成后,再在節點上執行,權限為root用戶
@在rac2上執行root.sh時候會出現錯誤,這里跳到文章最后的“問題四“去按照步驟解決問題,之后回來點OK,即完成。
六,安裝oracle 10g
rac1(安裝只在一台機器上進行)
cpio –idmv < 10201_database_linux_x86_64.cpio chown -R oracle:oinstall database statx xhost+ su oracle $cd ~ $source .bash_profile $mkdir -p /u01/app/oracle/oraInventory $cd database $./runInstall
@彈出歡迎界面
@選擇安裝類型,選擇企業版
@選擇安裝位置,這里會自動填寫變量中定義目錄
@選中所有節點
@安裝條件檢查
@創建啟動數據庫
@選擇通用數據庫
@指定全局數據庫名稱和sid,並選上示例
@選擇數據庫管理選項
@選擇數據庫數據存儲方式,這里選擇ASM
@彈出警告,點擊OK繼續
@配置備份,這里選擇無備份
@選擇ASM存儲,由於只設置了一個卷,選擇冗余方式為擴展
@配置密碼
@安裝概要
@安裝過程
@配置助手過程
@彈出界面
@配置成功
@安裝結束
##########################安裝過程中遇到問題解決辦法#############################
問題一:
連接被拒絕
PRKC-1044 – FAILED TO CHECK REMOTE COMMAND EXECUTION…
在節點上執行
ssh (本地和其他節點hostname)
問題二:
提示虛擬ip被占用
不應該事先綁定虛擬ip
問題三:
提示SEVERE: Remote ‘AttachHome’ failed on nodes
查看node的oralnventory目錄權限
后執行”/u01/crs/oracle/product/10.2.0/crs_1/oui/bin/runInstaller -attachHome -noClusterEnabled ORACLE_HOME=/u01/crs/oracle/product/10.2.0/crs_1 ORACLE_HOME_NAME=OraCrs10g_home CLUSTER_NODES=HY_471,HY_472 CRS=true “INVENTORY_LOCATION=/u01/oracle/oraInventory” LOCAL_NODE=HY_472“
問題四:
在節點上執行root.sh結束時候提示“Running vipca(silent) for configuring nodeapps
/u01/app/oracle/product/10.2.0/crs/jdk/jre//bin/java: error while loading shared libraries: libpthread.so.0: “等
解決方法:
rac2
cd /u01/app/oracle/product/10.2.0/crs/bin/
./oifcfg iflist
eth0 10.0.40.0
eth1 10.0.10.0
./oifcfg setif -global eth0/10.0.40.0:public
./oifcfg setif -global eth1/10.0.10.0:cluster_interconnect
./oifcfg iflist
eth0 10.0.40.0
eth1 10.0.10.0
./oifcfg getif
eth0 10.0.40.0 global public
eth1 10.0.10.0 global cluster_interconnect
/crs/bin下,文件名分別為vipca和srvctl。首先編輯vipca文件,找到如下內容:
Remove this workaround when the bug 3937317 is fixed
arch=`uname -m`
if [ "$arch" = "i686" -o "$arch" = "ia64" ]
then LD_ASSUME_KERNEL=2.4.19
export LD_ASSUME_KERNEL
fi
#End workaround #在fi 后新添加一行:
unset LD_ASSUME_KERNEL
然后編輯srvctl文件,找到如下內容:
LD_ASSUME_KERNEL=2.4.19
export LD_ASSUME_KERNEL #同樣在其后新增加一行:
unset LD_ASSUME_KERNEL
之后在rac2上執行vipca命令,按圖形一步步做。
注意:若是節點名稱是大寫,這一步很難成功。
cd /u01/app/oracle/product/10.2.0/crs/bin/ ./vipca
@彈出歡迎界面
@選擇網絡接口
@填寫IP,它會自動不全,如果失誤填寫錯誤,在“問題五“中有解決辦法。
@接上圖,會給出確認畫面,點擊”finish”彈出自動配置界面,結束后即完成。
問題五:
執行vipca時候,誤填寫錯誤ip,解決辦法
./srvctl modify nodeapps -n rac1 -A 10.0.40.111/255.255.255.0/eth0 ./srvctl modify nodeapps -n rac2 -A 10.0.40.112/255.255.255.0/eth0
問題六:
ora-12523 tns listener could not find instance appropriate for the client
./crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....SM1.asm application ONLINE ONLINE rac1
ora....C1.lsnr application ONLINE ONLINE rac1
ora.rac1.gsd application ONLINE ONLINE rac1
ora.rac1.ons application ONLINE ONLINE rac1
ora.rac1.vip application ONLINE ONLINE rac1
ora....SM2.asm application ONLINE ONLINE rac2
ora....C2.lsnr application ONLINE ONLINE rac2
ora.rac2.gsd application ONLINE ONLINE rac2
ora.rac2.ons application ONLINE ONLINE rac2
ora.rac2.vip application ONLINE ONLINE rac2
asm服務正常,但是連接被拒絕,但可能是網絡故障,在手工關閉防火牆后解決問題