rac安装
RAC安装
(一) 软硬件环境(系统准备)
(二) Grid Control安装
(三) Clusterware安装
(四) ASM安装
(五) RAC DB安装
(六) Agent安装
检测是否安装
for i in binutils pdksh sysstat setarch libaio libXp compat-db compat-libstdc++-296 control-center gcc gcc-c++ glibc glibc-common libstdc++ libstdc++-devel make compat-libstdc++-33;do rpm -q $i ;done
(一) 软硬件环境(系统准备)
A. 存储
1. 绑定裸设备 (rac1,rac2)
a) fdisk /dev/sdb
b) 创建2个150M(cluster rigistry:raw1,raw2)
创建3个30M (voting disk:raw3,raw4,raw5)
创建1个DATA (raw6)
创建1个FRA (raw7)
c) “w”保存
RH5: 在/etc/udev/rules.d/60-raw.rules添加:
ACTION=="add", KERNEL=="sdb1", RUN+="bin/raw /dev/raw/raw1 %N"
ACTION=="add", KERNEL=="sdb2", RUN+="bin/raw /dev/raw/raw2 %N"
ACTION=="add", KERNEL=="sdb3", RUN+="bin/raw /dev/raw/raw3 %N"
ACTION=="add", KERNEL=="sdb4", RUN+="bin/raw /dev/raw/raw4 %N"
ACTION=="add", KERNEL=="sdb5", RUN+="bin/raw /dev/raw/raw5 %N"
ACTION=="add", KERNEL=="sdb6", RUN+="bin/raw /dev/raw/raw6 %N"
ACTION=="add", KERNEL=="sdb7", RUN+="bin/raw /dev/raw/raw7 %N"
ACTION=="add", KERNEL=="sdb8", RUN+="bin/raw /dev/raw/raw8 %N"
KERNEL=="raw[1-8]*",OWNER="oracle",GROUP="oinstall",MODE="640"
重启生效,如果需要立即生效,可如下
raw /dev/raw/raw1 /dev/sdb1
raw /dev/raw/raw2 /dev/sdb2
raw /dev/raw/raw3 /dev/sdb3
raw /dev/raw/raw4 /dev/sdb4
raw /dev/raw/raw5 /dev/sdb5
raw /dev/raw/raw6 /dev/sdb6
raw /dev/raw/raw7 /dev/sdb7
raw /dev/raw/raw8 /dev/sdb8
chown oracle:oinstall /dev/raw/raw1
chown oracle:oinstall /dev/raw/raw2
chown oracle:oinstall /dev/raw/raw3
chown oracle:oinstall /dev/raw/raw4
chown oracle:oinstall /dev/raw/raw5
chown oracle:oinstall /dev/raw/raw6
chown oracle:oinstall /dev/raw/raw7
chown oracle:oinstall /dev/raw/raw8
chmod 640 /dev/raw/raw1
chmod 640 /dev/raw/raw2
chmod 640 /dev/raw/raw3
chmod 640 /dev/raw/raw4
chmod 640 /dev/raw/raw5
chmod 640 /dev/raw/raw6
chmod 640 /dev/raw/raw7
chmod 640 /dev/raw/raw8
检查:ls –l /dev/raw/
2. /u01挂载点创建 (rac1,rac2,gc)
lvcreate --size 50G -n u01 VolGroup_ID_29243
mkfs.ext3 /dev/VolGroup_ID_29243/u01
rm /etc/lvm/.cache
partprobe
mkdir /u01
echo "/dev/VolGroup_ID_29243/u01 /u01 ext3 defaults 0 0" >> /etc/fstab
mount -a
A. 网络 (rac1,rac2,gc)
1. IP设置(/etc/sysconfig/network.config/eth0 /eth1)
RAC节点设置public IP/private IP
注意:public IP与private IP分别同一网段
2. Hostname设置(/etc/sysconfig/network )
3. hosts设置
cat >> /etc/hosts << EOF
10.50.106.37 rac1.oracle.com rac1
10.50.106.40 rac1-vip.oracle.com rac1-vip
192.168.0.1 rac1-priv.oracle.com rac1-priv
10.50.106.38 rac2.oracle.com rac2
10.50.106.41 rac2-vip.oracle.com rac2-vip
192.168.0.2 rac2-priv.oracle.com rac2-priv
192.168.0.4 gc.oracle.com gc
EOF
cat >> /etc/hosts << EOF
10.50.106.37 rac1.oracle.com rac1
10.50.106.40 rac1-vip.oracle.com rac1-vip
192.168.0.1 rac1-priv.oracle.com rac1-priv
10.50.106.38 rac2.oracle.com rac2
10.50.106.41 rac2-vip.oracle.com rac2-vip
192.168.0.2 rac2-priv.oracle.com rac2-priv
10.50.106.43 rac3.oracle.com rac3
10.50.106.44 rac3-vip.oracle.com rac3-vip
192.168.0.3 rac3-priv.oracle.com rac3-priv
EOF
cat >> /etc/hosts << EOF
10.50.119.4 bestvwh01.bestv.com.cn bestvwh01
10.50.119.8 bestvwh01-vip.bestv.com.cn bestvwh01-vip
192.168.1.1 bestvwh01-priv.bestv.com.cn bestvwh01-priv
10.50.119.5 bestvwh02.bestv.com.cn bestvwh02
10.50.119.9 bestvwh02-vip.bestv.com.cn bestvwh02-vip
192.168.1.2 bestvwh02-priv.bestv.com.cn bestvwh02-priv
10.50.119.6 bestvwh03.bestv.com.cn bestvwh03
10.50.119.10 bestvwh03-vip.bestv.com.cn bestvwh03-vip
192.168.1.3 bestvwh03-priv.bestv.com.cn bestvwh03-priv
10.50.119.7 bestvwh04.bestv.com.cn bestvwh04
10.50.119.11 bestvwh04-vip.bestv.com.cn bestvwh04-vip
192.168.1.4 bestvwh04-priv.bestv.com.cn bestvwh04-priv
10.50.109.11 t1.bestv.com.cn t1
EOF
cat >> /etc/hosts << EOF
10.50.119.6 bestvwh03.bestv.com.cn bestvwh03
10.50.119.10 bestvwh03-vip.bestv.com.cn bestvwh03-vip
192.168.1.3 bestvwh03-priv.bestv.com.cn bestvwh03-priv
10.50.119.7 bestvwh04.bestv.com.cn bestvwh04
10.50.119.11 bestvwh04-vip.bestv.com.cn bestvwh04-vip
192.168.1.4 bestvwh04-priv.bestv.com.cn bestvwh04-priv
10.50.109.11 t1.bestv.com.cn t1
EOF
/etc/hosts中的127.0.0.1改为
127.0.0.1 localhost.localdomain localhost
B. 创建oracle用户/组,并创建相应的目录 (rac1,rac2,gc)
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle
验证id oracle
(注意此处一定要保证用户id和组id一致)
mkdir -p /u01/app/oracle/product/10.2.0/db_1
chown -R oracle:oinstall /u01
chmod -R 755 /u01
C. 软硬件环境 (rac1,rac2,gc)
1. 内存检查
grep MemTotal /proc/meminfo #(至少1G)
2. Swap检查
grep SwapTotal /proc/meminfo #(至少1G)
3. /tmp目录空间检查
df –k /tmp
4. Hangcheck计数器设置
cat >> /etc/rc.d/rc.local << EOF
insmod /lib/modules/2.6.18-92.el5/kernel/drivers/char/hangcheck-timer.ko hangcheck_tick=1
hangcheck_margin=10
EOF
5. 时钟同步(/etc/crontab)
*/10 * * * * root /usr/sbin/ntpdate 124.108.8.245 ; /sbin/hwclock -w
6. 修改内核参数(需重启)
cat >> /etc/sysctl.conf << EOF
kernel.shmall = 2097152
kernel.shmmax = 5368709120
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
EOF
7. 修改打开文件数据设置限制
cat >> /etc/security/limits.conf << EOF
* soft nproc 2047
* hard nproc 16384
* soft nofile 1024
* hard nofile 65536
EOF
8.
echo "session required /lib/security/pam_limits.so" >> /etc/pam.d/login
64位如下:
echo "session required /lib64/security/pam_limits.so" >> /etc/pam.d/login
9. 修改oracle的profile
cat >> /etc/profile <<EOF
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/OracleHomes/db10g
export ORACLE_HOME_LISTNER=/u01/app/oracle/product/10.2.0/db_1
export OMS_HOME=$ORACLE_BASE/OracleHomes/oms10g
export AGENT_HOME=$ORACLE_BASE/OracleHomes/agent10g
export ORACLE_SID=rac3
PATH=$ORACLE_HOME/bin:$PATH
EOF
10. 修改版本号(RH5)
echo " Red Hat Enterprise Linux Server release 4 (Tikanga)" > /etc/redhat-release
11. 链接lib库
ln -s /usr/lib/libgdbm.so.2.0.0 /usr/lib/libdb.so.2
chmod 755 /usr/lib/libgdbm.so.2.0.0
chmod 755 /usr/lib/libdb.so.2
64位如下:
ln -s /usr/lib64/libgdbm.so.2.0.0 /usr/lib64/libdb.so.2
chmod 755 /usr/lib64/libgdbm.so.2.0.0
chmod 755 /usr/lib64/libdb.so.2
E. 节点对等性 (rac1,rac2)(oracle)
[rac1]
一条命令依次打
/usr/bin/ssh-keygen -t rsa(三个回车)
#/usr/bin/ssh-keygen -t dsa(三个回车)
(私钥600,公钥644)
[rac2]
一条命令依次打
/usr/bin/ssh-keygen -t rsa(三个回车)
#/usr/bin/ssh-keygen -t dsa(三个回车)
[rac1]
ssh rac1 cat /home/oracle/.ssh/id_rsa.pub >> /home/oracle/.ssh/authorized_keys(yes、oracle)
#ssh rac1 cat /home/oracle/.ssh/id_dsa.pub >> /home/oracle/.ssh/authorized_keys(yes、oracle)
ssh rac2 cat /home/oracle/.ssh/id_rsa.pub >> /home/oracle/.ssh/authorized_keys(yes、oracle)
#ssh rac2 cat /home/oracle/.ssh/id_dsa.pub >> /home/oracle/.ssh/authorized_keys(yes、oracle)
scp ~/.ssh/authorized_keys oracle@rac2:/home/oracle/.ssh/
之后确认:
[rac1]
ssh rac1 hostname
ssh rac2 hostname
[rac2]
ssh rac1 hostname
ssh rac2 hostname
[rac3] su - oracle
/usr/bin/ssh-keygen -t rsa
/usr/bin/ssh-keygen -t dsa
scp rac1:~/.ssh/authorized_keys ~/.ssh/authorized_keys
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
scp ~/.ssh/authorized_keys rac1:~/.ssh/authorized_keys
scp ~/.ssh/authorized_keys rac2:~/.ssh/authorized_keys
如果ssh发生错误:
mv /home/oracle/.ssh/known_hosts /tmp
然后重新再来一遍。
F. 添加.bash_profile
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/OracleHomes/db10g
export OMS_HOME=$ORACLE_BASE/OracleHomes/oms10g
export AGENT_HOME=$ORACLE_BASE/OracleHomes/agent10g
export ORACLE_SID=rac1/rac2/emrep
export PATH=.:/usr/sbin:$ORACLE_HOME/bin:$ORACLE_HOME/jdk/bin:$PATH:$ORACLE_HOME/OPatch
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
---------------------------------------------------------------
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/OracleHomes/db10g
export OMS_HOME=$ORACLE_BASE/OracleHomes/oms10g
export AGENT_HOME=$ORACLE_BASE/OracleHomes/agent10g
export ORACLE_SID=rac3
export PATH=.:/usr/sbin:$ORACLE_HOME/bin:$ORACLE_HOME/jdk/bin:$PATH:$ORACLE_HOME/OPatch
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
export ORACLE_SID=bestvbi3
export PATH=.:/usr/sbin:$ORACLE_HOME/bin:$ORACLE_HOME/jdk/bin:$PATH:$ORACLE_HOME/OPatch
export LD_LIBRARY_PATH=/u01/app/oracle/product/10.2.0/db_1/hs/lib32:/u01/app/oracle/product/10.2.0/db_1/hs/lib:/u01/app/oracle/product/10.2.0/db_1/lib32:/u01/app/oracle/product/10.2.0/db_1/lib:/usr/lib64:/usr/lib
(二) Grid Control安装 (gc)
1. 解压gc软件
2. ./runInstaller
3. 选择创建新实例安装
(三) Clusterware安装 (rac1)
1. 修改ORACLE_HOME
export ORACLE_HOME=/u01/crs1020/
2. 解压clusterware软件
3. 预检
cluvfy/runcluvfy.sh stage -pre crsinst -n rac1,rac2
4. ./runInstaller
5. cluster_home:/u01/crs1020
6. cluster name:crs
7. 添加rac2节点
rac2.bestv.com.cn
rac2-priv.bestv.com.cn
rac2-vip.bestv.com.cn
8. 选择裸设备(一份冗余)
raw1,raw2(各150MB)作为Oracle Cluster Registry
raw3,raw4,raw5(各50MB)作为CRS Voting Disk
1. 按确定后,configuration 时候会报错,不用管它,然后直接升级
修改文件[root]
修改/u01/crs1020/bin/vipca文件
在124行加入 unset LD_ASSUME_KERNEL
修改/u01/crs1020/bin/srvctl文件
在168行加入 unset LD_ASSUME_KERNEL
启动vipca 配置vip
(两个节点。。。。。。不要忘记了。。。。。。)
9. 以root身份执行(一定串行!!!不可同时)
/u01/app/oracle/oraInventory/orainstRoot.sh
/u01/crs1020/root.sh
10. 按确定后,configuration 时候会报错,不用管它,然后直接升级
修改文件[root]
修改/u01/crs1020/bin/vipca文件
在124行加入 unset LD_ASSUME_KERNEL
修改/u01/crs1020/bin/srvctl文件
在168行加入 unset LD_ASSUME_KERNEL
启动vipca 配置vip
11. 检查
/u01/crs1020/bin/crs_stat –t (2对:gsd,ons,vip。共6个进程)
(四) ASM安装(rac1)
1. 修改ORACLE_HOME
export ORACLE_HOME=$ORACLE_BASE/OracleHomes/asm10g
export ORACLE_SID=+ASM1
2. ./runInstaller
3. Disk Group Name:DATA
Redundancy:External
4. 以root身份运行脚本
5. 检查
/u01/crs1020/bin/crs_stat –t (2对:gsd,ons,vip,asm,lsnr。共10个进程)
(五) RAC DB安装(rac1)
1. 修改ORACLE
export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
export ORACLE_SID=rac1
2. ./runInstaller
3. configure ASM
全选rac1,rac2
CREATE disk——>/dev/raw/raw7 FRA
4. ./runInstaller
5. create database
全选rac1,rac2
文件系统选ASM的DATA
Flash_recovery_area选FRA
6. 注意修改controlfile内的参数
7. dbca建库
8. 检查
/u01/crs1020/bin/crs_stat –t
(2对:gsd,ons,vip,asm,lsnr,inst;还有一个db进程,共13个。)
(六) Agent安装 (rac1)
1. 解压gc软件
2. ./runInstaller
3. 选择创建agent安装
加节点
0. 重复上述步骤
1. 安装Clusterware
在安装集群之前检查节点列表中的所有节点
./cluvfy stage -post hwos -n rac1,rac3
(First node/oracle用户)ORACLE_HOME=/u01/crs1020
Sh /u01/crs1020/oui/bin/addNode.sh
(root用户/first node)/u01/crs1020/install/rootaddnode.sh
(root用户/second node)/u01/crs1020/root.sh
此时可以 crs_stat –t 下,看到新节点的三个进程。
2. (First node/oracle用户) /u01/crs1020/bin/racgons add_config rac3:6200
3. (First node/oracle用户)$asm_home oui
(/u01/app/oracle/OracleHomes/asm10g/oui/bin)
sh addNode.sh
(root用户/second node)/u01/app/oracle/product/10.2.0/asm_1/root.sh
(just type "return" for all question ask)
4. (oracle用户/second node)ASM home 执行netca
(oracle_home 设置为asm_home)
完成后crs_stat –t
5. (First node/oracle用户) database_home/oui/bin sh addnode.sh
(second node/root用户) sh /u01/app/oracle/product/10.2.0/db_1/root.sh
6. (First node/oracle用户) export ORACLE_HOME = ……../asm_1
Cd $ORACLE_HOME/bin
./dbca
7.(first node/oracle 用户)
Database
Dbca
(select only the second node in the table)
Crs_stat –t
Remove the instance
1、first node/oracle DBCA to remove the second instance
2、cleanup ASM first node/oracle
/u01/crs1020/bin/srvctl stop asm -n rac2
/u01/crs1020/bin/srvctl remove asm -n rac2
/u01/crs1020/bin/crs_stat -t
Remove the initialization parameter file of that ASM instance on the second node.
3、remove listener.
Use NETCA
First node/oracle
/u01/crs1020/bin/crs_stat -t
4、remove the database software from the second node
export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
Seconde node / oracle
$ORACLE_HOME/oui/bin
./runInstaller -updateNodeList ORACLE_HOME=$ORACLE_HOME
"CLUSTER_NODES=<second node name>" -local
First node/oracle
export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
$ORACLE_HOME/oui/bin
./runInstaller -updateNodeList ORACLE_HOME=$ORACLE_HOME
"CLUSTER_NODES=<first node name>"
5、remove the ASM software
Second node/oracle
export ORACLE_HOME=/u01/app/oracle/product/10.2.0/asm_1
$ORACLE_HOME/oui/bin
./runInstaller -updateNodeList ORACLE_HOME=$ORACLE_HOME
"CLUSTER_NODES=<second node name>" -local
First node /oracle
export ORACLE_HOME=/u01/app/oracle/product/10.2.0/asm_1
$ORACLE_HOME/oui/bin
./runInstaller -updateNodeList ORACLE_HOME=$ORACLE_HOME
"CLUSTER_NODES=<first node name>"
6、remove second node from ons configuration
First node/oracle
Cat /u01/crs1020/opmn/conf/ons.config
/u01/crs1020/bin/racgons remove_config rac2:6200
7、remove oracle clusterware from the second node
Seconde node/root
<Oracle cluster home>/install/rootdelete.sh
First node /root
/u01/crs1020/bin/olsnodes
<Oracle Clusterware home>/install/rootdeletenode.sh <node
name to be deleted>,<node number to be deleted>
Second node/root
Export ORACLE_HOME =/u01/crs1020
/u01/crs1020/oui/bin/runInstaller -updateNodeList
ORACLE_HOME=/u01/crs1020 "CLUSTER_NODES=<second node name>"
CRS=TRUE -local
Second node
First node /root
/u01/crs1020/oui/bin/runInstaller -updateNodeList
ORACLE_HOME=/u01/crs1020 "CLUSTER_NODES=<first node name>"
CRS=TRUE
/u01/crs1020/bin/crs_stat -t
(一) 软硬件环境(系统准备)
(二) Grid Control安装
(三) Clusterware安装
(四) ASM安装
(五) RAC DB安装
(六) Agent安装
检测是否安装
for i in binutils pdksh sysstat setarch libaio libXp compat-db compat-libstdc++-296 control-center gcc gcc-c++ glibc glibc-common libstdc++ libstdc++-devel make compat-libstdc++-33;do rpm -q $i ;done
(一) 软硬件环境(系统准备)
A. 存储
1. 绑定裸设备 (rac1,rac2)
a) fdisk /dev/sdb
b) 创建2个150M(cluster rigistry:raw1,raw2)
创建3个30M (voting disk:raw3,raw4,raw5)
创建1个DATA (raw6)
创建1个FRA (raw7)
c) “w”保存
RH5: 在/etc/udev/rules.d/60-raw.rules添加:
ACTION=="add", KERNEL=="sdb1", RUN+="bin/raw /dev/raw/raw1 %N"
ACTION=="add", KERNEL=="sdb2", RUN+="bin/raw /dev/raw/raw2 %N"
ACTION=="add", KERNEL=="sdb3", RUN+="bin/raw /dev/raw/raw3 %N"
ACTION=="add", KERNEL=="sdb4", RUN+="bin/raw /dev/raw/raw4 %N"
ACTION=="add", KERNEL=="sdb5", RUN+="bin/raw /dev/raw/raw5 %N"
ACTION=="add", KERNEL=="sdb6", RUN+="bin/raw /dev/raw/raw6 %N"
ACTION=="add", KERNEL=="sdb7", RUN+="bin/raw /dev/raw/raw7 %N"
ACTION=="add", KERNEL=="sdb8", RUN+="bin/raw /dev/raw/raw8 %N"
KERNEL=="raw[1-8]*",OWNER="oracle",GROUP="oinstall",MODE="640"
重启生效,如果需要立即生效,可如下
raw /dev/raw/raw1 /dev/sdb1
raw /dev/raw/raw2 /dev/sdb2
raw /dev/raw/raw3 /dev/sdb3
raw /dev/raw/raw4 /dev/sdb4
raw /dev/raw/raw5 /dev/sdb5
raw /dev/raw/raw6 /dev/sdb6
raw /dev/raw/raw7 /dev/sdb7
raw /dev/raw/raw8 /dev/sdb8
chown oracle:oinstall /dev/raw/raw1
chown oracle:oinstall /dev/raw/raw2
chown oracle:oinstall /dev/raw/raw3
chown oracle:oinstall /dev/raw/raw4
chown oracle:oinstall /dev/raw/raw5
chown oracle:oinstall /dev/raw/raw6
chown oracle:oinstall /dev/raw/raw7
chown oracle:oinstall /dev/raw/raw8
chmod 640 /dev/raw/raw1
chmod 640 /dev/raw/raw2
chmod 640 /dev/raw/raw3
chmod 640 /dev/raw/raw4
chmod 640 /dev/raw/raw5
chmod 640 /dev/raw/raw6
chmod 640 /dev/raw/raw7
chmod 640 /dev/raw/raw8
检查:ls –l /dev/raw/
2. /u01挂载点创建 (rac1,rac2,gc)
lvcreate --size 50G -n u01 VolGroup_ID_29243
mkfs.ext3 /dev/VolGroup_ID_29243/u01
rm /etc/lvm/.cache
partprobe
mkdir /u01
echo "/dev/VolGroup_ID_29243/u01 /u01 ext3 defaults 0 0" >> /etc/fstab
mount -a
A. 网络 (rac1,rac2,gc)
1. IP设置(/etc/sysconfig/network.config/eth0 /eth1)
RAC节点设置public IP/private IP
注意:public IP与private IP分别同一网段
2. Hostname设置(/etc/sysconfig/network )
3. hosts设置
cat >> /etc/hosts << EOF
10.50.106.37 rac1.oracle.com rac1
10.50.106.40 rac1-vip.oracle.com rac1-vip
192.168.0.1 rac1-priv.oracle.com rac1-priv
10.50.106.38 rac2.oracle.com rac2
10.50.106.41 rac2-vip.oracle.com rac2-vip
192.168.0.2 rac2-priv.oracle.com rac2-priv
192.168.0.4 gc.oracle.com gc
EOF
cat >> /etc/hosts << EOF
10.50.106.37 rac1.oracle.com rac1
10.50.106.40 rac1-vip.oracle.com rac1-vip
192.168.0.1 rac1-priv.oracle.com rac1-priv
10.50.106.38 rac2.oracle.com rac2
10.50.106.41 rac2-vip.oracle.com rac2-vip
192.168.0.2 rac2-priv.oracle.com rac2-priv
10.50.106.43 rac3.oracle.com rac3
10.50.106.44 rac3-vip.oracle.com rac3-vip
192.168.0.3 rac3-priv.oracle.com rac3-priv
EOF
cat >> /etc/hosts << EOF
10.50.119.4 bestvwh01.bestv.com.cn bestvwh01
10.50.119.8 bestvwh01-vip.bestv.com.cn bestvwh01-vip
192.168.1.1 bestvwh01-priv.bestv.com.cn bestvwh01-priv
10.50.119.5 bestvwh02.bestv.com.cn bestvwh02
10.50.119.9 bestvwh02-vip.bestv.com.cn bestvwh02-vip
192.168.1.2 bestvwh02-priv.bestv.com.cn bestvwh02-priv
10.50.119.6 bestvwh03.bestv.com.cn bestvwh03
10.50.119.10 bestvwh03-vip.bestv.com.cn bestvwh03-vip
192.168.1.3 bestvwh03-priv.bestv.com.cn bestvwh03-priv
10.50.119.7 bestvwh04.bestv.com.cn bestvwh04
10.50.119.11 bestvwh04-vip.bestv.com.cn bestvwh04-vip
192.168.1.4 bestvwh04-priv.bestv.com.cn bestvwh04-priv
10.50.109.11 t1.bestv.com.cn t1
EOF
cat >> /etc/hosts << EOF
10.50.119.6 bestvwh03.bestv.com.cn bestvwh03
10.50.119.10 bestvwh03-vip.bestv.com.cn bestvwh03-vip
192.168.1.3 bestvwh03-priv.bestv.com.cn bestvwh03-priv
10.50.119.7 bestvwh04.bestv.com.cn bestvwh04
10.50.119.11 bestvwh04-vip.bestv.com.cn bestvwh04-vip
192.168.1.4 bestvwh04-priv.bestv.com.cn bestvwh04-priv
10.50.109.11 t1.bestv.com.cn t1
EOF
/etc/hosts中的127.0.0.1改为
127.0.0.1 localhost.localdomain localhost
B. 创建oracle用户/组,并创建相应的目录 (rac1,rac2,gc)
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle
验证id oracle
(注意此处一定要保证用户id和组id一致)
mkdir -p /u01/app/oracle/product/10.2.0/db_1
chown -R oracle:oinstall /u01
chmod -R 755 /u01
C. 软硬件环境 (rac1,rac2,gc)
1. 内存检查
grep MemTotal /proc/meminfo #(至少1G)
2. Swap检查
grep SwapTotal /proc/meminfo #(至少1G)
3. /tmp目录空间检查
df –k /tmp
4. Hangcheck计数器设置
cat >> /etc/rc.d/rc.local << EOF
insmod /lib/modules/2.6.18-92.el5/kernel/drivers/char/hangcheck-timer.ko hangcheck_tick=1
hangcheck_margin=10
EOF
5. 时钟同步(/etc/crontab)
*/10 * * * * root /usr/sbin/ntpdate 124.108.8.245 ; /sbin/hwclock -w
6. 修改内核参数(需重启)
cat >> /etc/sysctl.conf << EOF
kernel.shmall = 2097152
kernel.shmmax = 5368709120
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
EOF
7. 修改打开文件数据设置限制
cat >> /etc/security/limits.conf << EOF
* soft nproc 2047
* hard nproc 16384
* soft nofile 1024
* hard nofile 65536
EOF
8.
echo "session required /lib/security/pam_limits.so" >> /etc/pam.d/login
64位如下:
echo "session required /lib64/security/pam_limits.so" >> /etc/pam.d/login
9. 修改oracle的profile
cat >> /etc/profile <<EOF
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/OracleHomes/db10g
export ORACLE_HOME_LISTNER=/u01/app/oracle/product/10.2.0/db_1
export OMS_HOME=$ORACLE_BASE/OracleHomes/oms10g
export AGENT_HOME=$ORACLE_BASE/OracleHomes/agent10g
export ORACLE_SID=rac3
PATH=$ORACLE_HOME/bin:$PATH
EOF
10. 修改版本号(RH5)
echo " Red Hat Enterprise Linux Server release 4 (Tikanga)" > /etc/redhat-release
11. 链接lib库
ln -s /usr/lib/libgdbm.so.2.0.0 /usr/lib/libdb.so.2
chmod 755 /usr/lib/libgdbm.so.2.0.0
chmod 755 /usr/lib/libdb.so.2
64位如下:
ln -s /usr/lib64/libgdbm.so.2.0.0 /usr/lib64/libdb.so.2
chmod 755 /usr/lib64/libgdbm.so.2.0.0
chmod 755 /usr/lib64/libdb.so.2
E. 节点对等性 (rac1,rac2)(oracle)
[rac1]
一条命令依次打
/usr/bin/ssh-keygen -t rsa(三个回车)
#/usr/bin/ssh-keygen -t dsa(三个回车)
(私钥600,公钥644)
[rac2]
一条命令依次打
/usr/bin/ssh-keygen -t rsa(三个回车)
#/usr/bin/ssh-keygen -t dsa(三个回车)
[rac1]
ssh rac1 cat /home/oracle/.ssh/id_rsa.pub >> /home/oracle/.ssh/authorized_keys(yes、oracle)
#ssh rac1 cat /home/oracle/.ssh/id_dsa.pub >> /home/oracle/.ssh/authorized_keys(yes、oracle)
ssh rac2 cat /home/oracle/.ssh/id_rsa.pub >> /home/oracle/.ssh/authorized_keys(yes、oracle)
#ssh rac2 cat /home/oracle/.ssh/id_dsa.pub >> /home/oracle/.ssh/authorized_keys(yes、oracle)
scp ~/.ssh/authorized_keys oracle@rac2:/home/oracle/.ssh/
之后确认:
[rac1]
ssh rac1 hostname
ssh rac2 hostname
[rac2]
ssh rac1 hostname
ssh rac2 hostname
[rac3] su - oracle
/usr/bin/ssh-keygen -t rsa
/usr/bin/ssh-keygen -t dsa
scp rac1:~/.ssh/authorized_keys ~/.ssh/authorized_keys
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
scp ~/.ssh/authorized_keys rac1:~/.ssh/authorized_keys
scp ~/.ssh/authorized_keys rac2:~/.ssh/authorized_keys
如果ssh发生错误:
mv /home/oracle/.ssh/known_hosts /tmp
然后重新再来一遍。
F. 添加.bash_profile
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/OracleHomes/db10g
export OMS_HOME=$ORACLE_BASE/OracleHomes/oms10g
export AGENT_HOME=$ORACLE_BASE/OracleHomes/agent10g
export ORACLE_SID=rac1/rac2/emrep
export PATH=.:/usr/sbin:$ORACLE_HOME/bin:$ORACLE_HOME/jdk/bin:$PATH:$ORACLE_HOME/OPatch
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
---------------------------------------------------------------
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/OracleHomes/db10g
export OMS_HOME=$ORACLE_BASE/OracleHomes/oms10g
export AGENT_HOME=$ORACLE_BASE/OracleHomes/agent10g
export ORACLE_SID=rac3
export PATH=.:/usr/sbin:$ORACLE_HOME/bin:$ORACLE_HOME/jdk/bin:$PATH:$ORACLE_HOME/OPatch
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
export ORACLE_SID=bestvbi3
export PATH=.:/usr/sbin:$ORACLE_HOME/bin:$ORACLE_HOME/jdk/bin:$PATH:$ORACLE_HOME/OPatch
export LD_LIBRARY_PATH=/u01/app/oracle/product/10.2.0/db_1/hs/lib32:/u01/app/oracle/product/10.2.0/db_1/hs/lib:/u01/app/oracle/product/10.2.0/db_1/lib32:/u01/app/oracle/product/10.2.0/db_1/lib:/usr/lib64:/usr/lib
(二) Grid Control安装 (gc)
1. 解压gc软件
2. ./runInstaller
3. 选择创建新实例安装
(三) Clusterware安装 (rac1)
1. 修改ORACLE_HOME
export ORACLE_HOME=/u01/crs1020/
2. 解压clusterware软件
3. 预检
cluvfy/runcluvfy.sh stage -pre crsinst -n rac1,rac2
4. ./runInstaller
5. cluster_home:/u01/crs1020
6. cluster name:crs
7. 添加rac2节点
rac2.bestv.com.cn
rac2-priv.bestv.com.cn
rac2-vip.bestv.com.cn
8. 选择裸设备(一份冗余)
raw1,raw2(各150MB)作为Oracle Cluster Registry
raw3,raw4,raw5(各50MB)作为CRS Voting Disk
1. 按确定后,configuration 时候会报错,不用管它,然后直接升级
修改文件[root]
修改/u01/crs1020/bin/vipca文件
在124行加入 unset LD_ASSUME_KERNEL
修改/u01/crs1020/bin/srvctl文件
在168行加入 unset LD_ASSUME_KERNEL
启动vipca 配置vip
(两个节点。。。。。。不要忘记了。。。。。。)
9. 以root身份执行(一定串行!!!不可同时)
/u01/app/oracle/oraInventory/orainstRoot.sh
/u01/crs1020/root.sh
10. 按确定后,configuration 时候会报错,不用管它,然后直接升级
修改文件[root]
修改/u01/crs1020/bin/vipca文件
在124行加入 unset LD_ASSUME_KERNEL
修改/u01/crs1020/bin/srvctl文件
在168行加入 unset LD_ASSUME_KERNEL
启动vipca 配置vip
11. 检查
/u01/crs1020/bin/crs_stat –t (2对:gsd,ons,vip。共6个进程)
(四) ASM安装(rac1)
1. 修改ORACLE_HOME
export ORACLE_HOME=$ORACLE_BASE/OracleHomes/asm10g
export ORACLE_SID=+ASM1
2. ./runInstaller
3. Disk Group Name:DATA
Redundancy:External
4. 以root身份运行脚本
5. 检查
/u01/crs1020/bin/crs_stat –t (2对:gsd,ons,vip,asm,lsnr。共10个进程)
(五) RAC DB安装(rac1)
1. 修改ORACLE
export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
export ORACLE_SID=rac1
2. ./runInstaller
3. configure ASM
全选rac1,rac2
CREATE disk——>/dev/raw/raw7 FRA
4. ./runInstaller
5. create database
全选rac1,rac2
文件系统选ASM的DATA
Flash_recovery_area选FRA
6. 注意修改controlfile内的参数
7. dbca建库
8. 检查
/u01/crs1020/bin/crs_stat –t
(2对:gsd,ons,vip,asm,lsnr,inst;还有一个db进程,共13个。)
(六) Agent安装 (rac1)
1. 解压gc软件
2. ./runInstaller
3. 选择创建agent安装
加节点
0. 重复上述步骤
1. 安装Clusterware
在安装集群之前检查节点列表中的所有节点
./cluvfy stage -post hwos -n rac1,rac3
(First node/oracle用户)ORACLE_HOME=/u01/crs1020
Sh /u01/crs1020/oui/bin/addNode.sh
(root用户/first node)/u01/crs1020/install/rootaddnode.sh
(root用户/second node)/u01/crs1020/root.sh
此时可以 crs_stat –t 下,看到新节点的三个进程。
2. (First node/oracle用户) /u01/crs1020/bin/racgons add_config rac3:6200
3. (First node/oracle用户)$asm_home oui
(/u01/app/oracle/OracleHomes/asm10g/oui/bin)
sh addNode.sh
(root用户/second node)/u01/app/oracle/product/10.2.0/asm_1/root.sh
(just type "return" for all question ask)
4. (oracle用户/second node)ASM home 执行netca
(oracle_home 设置为asm_home)
完成后crs_stat –t
5. (First node/oracle用户) database_home/oui/bin sh addnode.sh
(second node/root用户) sh /u01/app/oracle/product/10.2.0/db_1/root.sh
6. (First node/oracle用户) export ORACLE_HOME = ……../asm_1
Cd $ORACLE_HOME/bin
./dbca
7.(first node/oracle 用户)
Database
Dbca
(select only the second node in the table)
Crs_stat –t
Remove the instance
1、first node/oracle DBCA to remove the second instance
2、cleanup ASM first node/oracle
/u01/crs1020/bin/srvctl stop asm -n rac2
/u01/crs1020/bin/srvctl remove asm -n rac2
/u01/crs1020/bin/crs_stat -t
Remove the initialization parameter file of that ASM instance on the second node.
3、remove listener.
Use NETCA
First node/oracle
/u01/crs1020/bin/crs_stat -t
4、remove the database software from the second node
export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
Seconde node / oracle
$ORACLE_HOME/oui/bin
./runInstaller -updateNodeList ORACLE_HOME=$ORACLE_HOME
"CLUSTER_NODES=<second node name>" -local
First node/oracle
export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
$ORACLE_HOME/oui/bin
./runInstaller -updateNodeList ORACLE_HOME=$ORACLE_HOME
"CLUSTER_NODES=<first node name>"
5、remove the ASM software
Second node/oracle
export ORACLE_HOME=/u01/app/oracle/product/10.2.0/asm_1
$ORACLE_HOME/oui/bin
./runInstaller -updateNodeList ORACLE_HOME=$ORACLE_HOME
"CLUSTER_NODES=<second node name>" -local
First node /oracle
export ORACLE_HOME=/u01/app/oracle/product/10.2.0/asm_1
$ORACLE_HOME/oui/bin
./runInstaller -updateNodeList ORACLE_HOME=$ORACLE_HOME
"CLUSTER_NODES=<first node name>"
6、remove second node from ons configuration
First node/oracle
Cat /u01/crs1020/opmn/conf/ons.config
/u01/crs1020/bin/racgons remove_config rac2:6200
7、remove oracle clusterware from the second node
Seconde node/root
<Oracle cluster home>/install/rootdelete.sh
First node /root
/u01/crs1020/bin/olsnodes
<Oracle Clusterware home>/install/rootdeletenode.sh <node
name to be deleted>,<node number to be deleted>
Second node/root
Export ORACLE_HOME =/u01/crs1020
/u01/crs1020/oui/bin/runInstaller -updateNodeList
ORACLE_HOME=/u01/crs1020 "CLUSTER_NODES=<second node name>"
CRS=TRUE -local
Second node
First node /root
/u01/crs1020/oui/bin/runInstaller -updateNodeList
ORACLE_HOME=/u01/crs1020 "CLUSTER_NODES=<first node name>"
CRS=TRUE
/u01/crs1020/bin/crs_stat -t