RHEL4As RAC手记
两台机器情况如下
主机1
Hostname:RHEL4-1
OS software RHEL4 As(2.6.9.0.78 ELSmp版本)
memory:1024MB
主机1
Hostname:RHEL4-1
OS software RHEL4 As(2.6.9.0.78 ELSmp版本)
memory:1024MB
主机2
Hostname:RHEL4-2
OS software RHEL4 As(2.6.9.0.78 ELSmp版本)
memory:1024MB
Hostname:RHEL4-2
OS software RHEL4 As(2.6.9.0.78 ELSmp版本)
memory:1024MB
没有拿到生产环境,所以自己先在VMWare做了,既然是VMware就取巧了一下,安装好一个虚拟机,然后把准备工作都做好在clone一个到另一个系统下了。
第一步
首先当然是安装RHEL了,手头上有RHEL4 32bit的,就用这个了。
首先当然是安装RHEL了,手头上有RHEL4 32bit的,就用这个了。
第二步
设置网络配置了,需要两个网卡,配置public,private和virtual ip叻
这回就更仔细的研究了,没有按别人的步骤来,只添加了pri host和vip host。
real ip是192.168.2.206
hostname rhel4-1
设置网络配置了,需要两个网卡,配置public,private和virtual ip叻
这回就更仔细的研究了,没有按别人的步骤来,只添加了pri host和vip host。
real ip是192.168.2.206
hostname rhel4-1
192.168.3.206 rhel4-priv1
192.168.2.106 rhel4-vip1
vip必须和public在同一个Ip段上,vip是提供给oracle使用的,这里我们两个网卡分别对应着public和private
192.168.2.106 rhel4-vip1
vip必须和public在同一个Ip段上,vip是提供给oracle使用的,这里我们两个网卡分别对应着public和private
第三步
创建用户
#groupadd dba
#groupadd oinstall
#useradd -g oinstall -G dba oracle
#passwd oracle
#mkdir /u01/app/oracle/product/10.2.0.2/db_1 -p
mkdir -p /u01/app/oracle
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/app/oracle
创建用户
#groupadd dba
#groupadd oinstall
#useradd -g oinstall -G dba oracle
#passwd oracle
#mkdir /u01/app/oracle/product/10.2.0.2/db_1 -p
mkdir -p /u01/app/oracle
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/app/oracle
第四步
修改相关参数文件
环境变量参数/home/oracle/.bash_profile
修改相关参数文件
环境变量参数/home/oracle/.bash_profile
export PATH
unset USERNAME
export LANG=zh_CN.EUC
ORACLE_BASE=/u01/app/oracle;
export ORACLE_BASE
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0.2/db_1
export ORA_CRS_HOME=$ORACLE_BASE/product/10.2.0.2/crs_1
export ORACLE_SID=rac1
#export NLS_LANG=’SIMPLIFIED CHINESE_CHINA.ZHS16GBK’
PATH=$ORACLE_HOME/bin:/bin:/sbin:/usr/bin:/usr/ccs/bin:/usr/local/bin:/usr/ucb;
export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/network/lib:$ORACLE_HOME/oracm/lib:/usr/local/lib:/usr/lib;
export LD_LIBRARY_PATH
export ORACLE_TERM=xterm
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib
export THREADS_FLAG=native
export TEMP=/tmp
export TMPDIR=/tmp
unset USERNAME
export LANG=zh_CN.EUC
ORACLE_BASE=/u01/app/oracle;
export ORACLE_BASE
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0.2/db_1
export ORA_CRS_HOME=$ORACLE_BASE/product/10.2.0.2/crs_1
export ORACLE_SID=rac1
#export NLS_LANG=’SIMPLIFIED CHINESE_CHINA.ZHS16GBK’
PATH=$ORACLE_HOME/bin:/bin:/sbin:/usr/bin:/usr/ccs/bin:/usr/local/bin:/usr/ucb;
export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/network/lib:$ORACLE_HOME/oracm/lib:/usr/local/lib:/usr/lib;
export LD_LIBRARY_PATH
export ORACLE_TERM=xterm
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib
export THREADS_FLAG=native
export TEMP=/tmp
export TMPDIR=/tmp
配置内核参数/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.wmem_default=262144
net.core.rmem_max=262144
net.core.wmem_max=262144
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.wmem_default=262144
net.core.rmem_max=262144
net.core.wmem_max=262144
#/sbin/sysctl -p 生效
Linux 帐户可以使用的进程数量和打开文件的数量设置限制 /etc/security/limits.conf和/etc/pam.d/login
/etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
/etc/pam.d/login
session required /lib/security/pam_limits.so
/etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
/etc/pam.d/login
session required /lib/security/pam_limits.so
Disable SELinux /etc/grub.conf
在行kernel /vmlinuz-2.6.9-42.ELlargesmp ro root=LABEL=/ rhgb quiet后
加入
selinux=0
在行kernel /vmlinuz-2.6.9-42.ELlargesmp ro root=LABEL=/ rhgb quiet后
加入
selinux=0
第五步
加载hangcheck-timer
在/etc/rc.d/rc.local加入
modprobe hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
加载hangcheck-timer
在/etc/rc.d/rc.local加入
modprobe hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
第六步
等效性配置,用oracle用户登录
#ssh-keygen -t rsa
一路回车
#ssh-keygen -t dsa
一路回车
在`/.ssh下将生成密匙和公匙
#cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
其他机器安装好以后运行
ssh oracle@rhel4-2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
等效性配置,用oracle用户登录
#ssh-keygen -t rsa
一路回车
#ssh-keygen -t dsa
一路回车
在`/.ssh下将生成密匙和公匙
#cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
其他机器安装好以后运行
ssh oracle@rhel4-2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
第七步安装ocfs2和asm
下载ocfs2和asm软件,我这里的RAC规划是ocfs2加上Asm,asm相对于row device来说便于管理,相对于ocfs2来说性能更好,至于使用ocfs2主要是做crs和voting disk部分的storage,数据文件以及其他数据库的文件都在asm上做storage。
ocfs2可以从oss下载 注意是ocfs第二版的哟 http://oss.oracle.com/projects/ocfs2/files/RedHat/
asm可以从otn下载 http://www.oracle.com/technology/software/tech/linux/asmlib/rhel4.html
下载ocfs2和asm软件,我这里的RAC规划是ocfs2加上Asm,asm相对于row device来说便于管理,相对于ocfs2来说性能更好,至于使用ocfs2主要是做crs和voting disk部分的storage,数据文件以及其他数据库的文件都在asm上做storage。
ocfs2可以从oss下载 注意是ocfs第二版的哟 http://oss.oracle.com/projects/ocfs2/files/RedHat/
asm可以从otn下载 http://www.oracle.com/technology/software/tech/linux/asmlib/rhel4.html
现在前用uname -r查看自己的内核。找和自己内核一致的版本下载。
我这里下载的分别是
ocfs2
ocfs2-2.6.9-78.ELsmp-1.2.9-1.el4.i686.rpm
ocfs2console-1.2.7-1.el4.i386.rpm
ocfs2-tools-1.2.7-1.el4.i386.rpm
ocfs2
ocfs2-2.6.9-78.ELsmp-1.2.9-1.el4.i686.rpm
ocfs2console-1.2.7-1.el4.i386.rpm
ocfs2-tools-1.2.7-1.el4.i386.rpm
asm
oracleasm-2.6.9-78.ELsmp-2.0.5-1.el4.i686.rpm
oracleasmlib-2.0.4-1.el4.i386.rpm
oracleasm-support-2.1.3-1.el4.i386.rpm
oracleasm-2.6.9-78.ELsmp-2.0.5-1.el4.i686.rpm
oracleasmlib-2.0.4-1.el4.i386.rpm
oracleasm-support-2.1.3-1.el4.i386.rpm
安装
# rpm ‐ivh ocfs2-tools-1.2.7-1.el4.i386.rpm
# rpm ‐ivh ocfs2-2.6.9-78.ELsmp-1.2.9-1.el4.i686.rpm
# rpm ‐ivh ocfs2-tools-1.2.7-1.el4.i386.rpm
# rpm ‐ivh ocfs2-tools-1.2.7-1.el4.i386.rpm
# rpm ‐ivh ocfs2-2.6.9-78.ELsmp-1.2.9-1.el4.i686.rpm
# rpm ‐ivh ocfs2-tools-1.2.7-1.el4.i386.rpm
# rpm ‐ivh oracleasm-support-2.1.3-1.el4.i386.rpm
# rpm ‐ivh oracleasmlib-2.0.4-1.el4.i386.rpm
# rpm ‐ivh oracleasm-2.6.9-78.ELsmp-2.0.5-1.el4.i686.rpm
# rpm ‐ivh oracleasmlib-2.0.4-1.el4.i386.rpm
# rpm ‐ivh oracleasm-2.6.9-78.ELsmp-2.0.5-1.el4.i686.rpm
第八步
格式化硬盘
加一块硬盘10g上去,/dev/sdb
fdisk /dev/sdb
分两个区,一个作为ocfs管理的需要给600M就够了,crs和voting disk的,剩下的都个asm了
格式化硬盘
加一块硬盘10g上去,/dev/sdb
fdisk /dev/sdb
分两个区,一个作为ocfs管理的需要给600M就够了,crs和voting disk的,剩下的都个asm了
ocfs2的部署
#ocfs2console
<1>在OCFS2控制台中,点击“TASKS”下的“FORAMT”菜单对要格式化为OCFS2文件系统的分区进行格式化,在UI下,选择/dev/sdb1,
<2>在OCFS2控制台程序中选择“Cluster”菜单下的“Configure Nodes”菜单,配置使用OCFS2文件系统的集群节点,在“Node Configuration”对话框中,点击“Add”来连接集群节点
<3>Apply, 如果有错,删除/etc/ocfs2目录下的 cluster.conf文件,重新用UI创建。
最后的cluster.conf是
node:
ip_port = 7777
ip_address = 192.168.3.202
number = 0
name = rhel4-2
cluster = ocfs2
node:
ip_port = 7777
ip_address = 192.168.3.201
number = 1
name = rhel4-1
cluster = ocfs2
cluster:
node_count = 2
name = ocfs2
<4>在节点1 上利用界面上传配置文件到其它节点
# ocfs2console
然后选择 Cluster ‐> Propagate Configuration
所有都finished, 然后File‐>Quit
在节点2上可以看到一样的cluster.conf
#ocfs2console
<1>在OCFS2控制台中,点击“TASKS”下的“FORAMT”菜单对要格式化为OCFS2文件系统的分区进行格式化,在UI下,选择/dev/sdb1,
<2>在OCFS2控制台程序中选择“Cluster”菜单下的“Configure Nodes”菜单,配置使用OCFS2文件系统的集群节点,在“Node Configuration”对话框中,点击“Add”来连接集群节点
<3>Apply, 如果有错,删除/etc/ocfs2目录下的 cluster.conf文件,重新用UI创建。
最后的cluster.conf是
node:
ip_port = 7777
ip_address = 192.168.3.202
number = 0
name = rhel4-2
cluster = ocfs2
node:
ip_port = 7777
ip_address = 192.168.3.201
number = 1
name = rhel4-1
cluster = ocfs2
cluster:
node_count = 2
name = ocfs2
<4>在节点1 上利用界面上传配置文件到其它节点
# ocfs2console
然后选择 Cluster ‐> Propagate Configuration
所有都finished, 然后File‐>Quit
在节点2上可以看到一样的cluster.conf
<5>配置O2CB
[root@rhel4-2 crs]# /etc/init.d/o2cb enable
Writing O2CB configuration: OK
O2CB cluster ocfs2 already online
[root@rhel4-2 crs]# /etc/init.d/o2cb enable
Writing O2CB configuration: OK
O2CB cluster ocfs2 already online
[root@rhel4-1 crs]# /etc/init.d/o2cb enable
Writing O2CB configuration: OK
Starting O2CB cluster ocfs2: OK
Writing O2CB configuration: OK
Starting O2CB cluster ocfs2: OK
[root@rhel4-2 crs]# /etc/init.d/o2cb configure
Specify heartbeat dead threshold (>=7) [31]:61 根据自己的需要来设置
同样在节点2 上配置。
Specify heartbeat dead threshold (>=7) [31]:61 根据自己的需要来设置
同样在节点2 上配置。
[root@rhel4-2 crs]# /etc/init.d/o2cb start
[root@rhel4-2 crs]# /etc/init.d/o2cb status
Module “configfs”: Loaded
Filesystem “configfs”: Mounted
Module “ocfs2_nodemanager”: Loaded
Module “ocfs2_dlm”: Loaded
Module “ocfs2_dlmfs”: Loaded
Filesystem “ocfs2_dlmfs”: Mounted
Checking O2CB cluster ocfs2: Online
Heartbeat dead threshold: 61
Network idle timeout: 30000
Network keepalive delay: 2000
Network reconnect delay: 2000
Checking O2CB heartbeat: Active
Module “configfs”: Loaded
Filesystem “configfs”: Mounted
Module “ocfs2_nodemanager”: Loaded
Module “ocfs2_dlm”: Loaded
Module “ocfs2_dlmfs”: Loaded
Filesystem “ocfs2_dlmfs”: Mounted
Checking O2CB cluster ocfs2: Online
Heartbeat dead threshold: 61
Network idle timeout: 30000
Network keepalive delay: 2000
Network reconnect delay: 2000
Checking O2CB heartbeat: Active
加载OCFS2 文件系统
mount -t ocfs2 -o _netdev,datavolume,nointr /dev/sdb1 /crsdata
如果有问题先执行一下
mkfs.ocfs2 -b 4k -C 32k -N 4 -L ora_home /dev/sdb1 –fs-feature-level=max-compat
mount -t ocfs2 -o _netdev,datavolume,nointr /dev/sdb1 /crsdata
如果有问题先执行一下
mkfs.ocfs2 -b 4k -C 32k -N 4 -L ora_home /dev/sdb1 –fs-feature-level=max-compat
asm的部署
查看volumn
#/etc/init.d/oracleasm listdisks
查看volumn
#/etc/init.d/oracleasm listdisks
配置
#/etc/init.d/oracleasm configure
Default user to own the driver interface []: oracle
Default group to own the driver interface []: dba
其他默认值
#/etc/init.d/oracleasm configure
Default user to own the driver interface []: oracle
Default group to own the driver interface []: dba
其他默认值
据文件创建 ASM 磁盘
# /etc/init.d/oracleasm createdisk oradata /dev/sdb2 — oradata disk volumn
# /etc/init.d/oracleasm createdisk oradata /dev/sdb2 — oradata disk volumn
#/etc/init.d/oracleasm listdisks
ORADATA
ORADATA
#/etc/init.d/oracleasm status
Checking if ASM is loaded: yes
Checking if /dev/oracleasm is mounted: yes
Checking if ASM is loaded: yes
Checking if /dev/oracleasm is mounted: yes
#mount
oracleasmfs on /dev/oracleasm type oracleasmfs (rw)
oracleasmfs on /dev/oracleasm type oracleasmfs (rw)
接下来就可以安装clusterware了
常见故障排除
安装时到最后需要root执行CRS_HOME/root.sh,这时有错误
PROT-1: Failed to initialize ocrconfig
Failed to upgrade Oracle Cluster Registry configuration
PROT-1: Failed to initialize ocrconfig
Failed to upgrade Oracle Cluster Registry configuration
原因是没有mount好,对于ocfs2来说,可以store,datafile,control file,redo file,archive file和crs和voting disk,但是必须在mount时加上datavolume
#mount -t ocfs2 -o datavolume /dev/sdb1 /crsdata
#mount -t ocfs2 -o datavolume /dev/sdb1 /crsdata
在执行root.sh时有时会挂在那里,是crs和voting disk没有format好,重新format好,然后装载
#ocfs2conosole
先umount,然后format,接着用上面的方式装载。
#ocfs2conosole
先umount,然后format,接着用上面的方式装载。
在root.sh install deamon是有时会告知如下信息
Running vipca(silent) for configuring nodeapps
The given interface(s), “eth2″ is not public. Public interfaces should be used to
configure virtual IPs.
Running vipca(silent) for configuring nodeapps
The given interface(s), “eth2″ is not public. Public interfaces should be used to
configure virtual IPs.
重新用$CRS_HOME/bin/vipca执行,设置vip即可。
注意
有时RAC安装失败了,一定要把crs删除干净了才能安装,要不有些怪异的错误,ocr和votingdisk要格式化以后再重新mount才行。
有时RAC安装失败了,一定要把crs删除干净了才能安装,要不有些怪异的错误,ocr和votingdisk要格式化以后再重新mount才行。
本文转自 jxwpx 51CTO博客,原文链接:http://blog.51cto.com/jxwpx/208578,如需转载请自行联系原作者