注意:此文档是本人结合网上资料整理而成
本次安装需要的软件:
1、10201_database_linux_x86_64.cpio.gz
2、10201_clusterware_linux_x86_64.cpio.gz
3、oracleasm-support-2.0.3-1.x86_64.rpm
4、oracleasmlib-2.0.2-1.x86_64.rpm
5、oracleasm-2.6.9-22.ELsmp-2.0.3-1.x86_64.rpm
6、binutils-2.15.92.0.2-13.0.0.0.2.x86_64.rpm
创建 oracle 用户。 以 root 用户身份执行
# groupadd oinstall
# groupadd dba
# mkdir -p /home/oracle /ocfs /u01
# useradd -d /home/oracle -g oinstall -G dba oracle
# chown oracle:dba /home/oracle /u01
# passwd oracle
vi /home/oracle/.profile
export PS1="`/bin/hostname -s`-> "
export EDITOR=vi
export ORACLE_SID=devdb1
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_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$ORACLE_HOME/bin:$ORA_CRS_HOME/bin:/bin:
/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin
umask 022
rac1-> mkdir p $ORACLE_BASE/admin
rac1-> mkdir p $ORACLE_HOME
rac1-> mkdir p $ORA_CRS_HOME
rac1-> mkdir -p /u01/oradata/devdb
vi /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
vi /etc/pam.d/login
session required /lib/security/pam_limits.so
vi /etc/profile
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
vi /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 = 1048576
net.core.rmem_max = 1048576
net.core.wmem_default = 262144
net.core.wmem_max = 262144
然后执行/sbin/sysctl –p
vi /etc/hosts
127.0.0.1 localhost
192.168.1.131 rac1
192.168.1.31 rac1-vip
10.10.10.31 rac1-priv
192.168.1.132 rac2
192.168.1.32 rac2-vip
10.10.10.32 rac2-priv
hangcheck-timer设置
vi /etc/rc.local
modprobe hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
要立即加载模块,执行“modprobe -v hangcheck-timer”。
为 OCFS2 和 Oracle ASM 创建磁盘分区。为 OCFS2 (/dev/sdb) 和 Oracle ASM(/dev/sdc、/dev/sdd、/dev/sde)准备一组原始磁盘。
在 rac1 上,以 root 用户身份执行
# fdisk /dev/sdb
[root@rac1 swdl]# rpm -qa | grep oracleasm
oracleasm-support-2.0.3-2
oracleasm-2.6.9-42.0.0.0.1.ELsmp-2.0.3-2
oracleasmlib-2.0.2-1
将以下行添加到 /etc/sysconfig/rawdevices 中。
/etc/sysconfig/rawdevices
/dev/raw/raw1 /dev/sdc1
/dev/raw/raw2 /dev/sdd1
/dev/raw/raw3 /dev/sde1
要使映射立即生效,以 root 用户身份执行以下命令:
# /sbin/service rawdevices restart
# chown oracle:dba /dev/raw/raw[1-3]
# chmod 660 /dev/raw/raw[1-3]
以 oracle 用户身份执行
rac1-> ln -sf /dev/raw/raw1 /u01/oradata/devdb/asmdisk1
rac1-> ln -sf /dev/raw/raw2 /u01/oradata/devdb/asmdisk2
rac1-> ln -sf /dev/raw/raw3 /u01/oradata/devdb/asmdisk3
vi /etc/udev/permissions.d/50-udev.permissions
# raw devices
ram*:root:disk:0660
#raw/*:root:disk:0660
raw/*:oracle:dba:0660
为用户等效性设置SSH
$ mkdir ~/.ssh
$ chmod 755 ~/.ssh
$ /usr/bin/ssh-keygen -t rsa
按回车选择默认
$ /usr/bin/ssh-keygen -t dsa
按回车选择默认
$ 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
在每个节点上测试连接。验证当您再次运行以下命令时,系统是否不提示您输入口令。
ssh rac1 date
ssh rac2 date
ssh rac1-priv date
ssh rac2-priv date
ASM配置共享磁盘
打上ASM包
oracleasm-2.6.9-42.ELsmp-2.0.3-1.i686.rpm
oracleasmlib-2.0.2-1.i386.rpm
oracleasm-support-2.0.3-1.i386.rpm
以上也需要64位
# /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
Fix permissions of Oracle ASM disks on boot (y/n) [y]:y
Writing Oracle ASM library driver configuration done
Creating /dev/oracleasm mount point done
Loading module "oracleasm" done
Mounting ASMlib driver filesystem done
Scanning system for ASM disks done
一定在集群的其他节点上,以 root 用户身份运行以下命令,扫描所配置的ASMLib磁盘:
# /etc/init.d/oracleasm scandisks
配置 Oracle 集群文件系统 (OCFS2)
rac1-> rpm -qa | grep ocfs
ocfs2-tools-1.2.2-2
ocfs2console-1.2.2-2
ocfs2-2.6.9-42.0.0.0.1.ELsmp-1.2.3-2
创建 OCFS2 配置文件。 在 rac1 上,以 root 用户身份执行
# ocfs2console
OCFS2 控制台:选择 Cluster,然后选择 Configure Nodes。
“集群堆栈已经启动”:单击 Close。
节点配置:单击 Add。
新增节点:添加以下节点,然后单击 Apply。
名称:rac1
IP 地址: 192.168.2.131
IP 端口: 7777
名称:rac2
IP 地址: 192.168.2.132
IP 端口: 7777
验证生成的配置文件。
# more /etc/ocfs2/cluster.conf
node:
ip_port = 7777
ip_address = 192.168.2.131
number = 0
name = rac1
cluster = ocfs2
node:
ip_port = 7777
ip_address = 192.168.2.132
number = 1
name = rac2
cluster = ocfs2
cluster:
node_count = 2
name = ocfs2
将配置文件传播到 rac2。您可以在 rac2 上重新运行上述步骤以生成配置文件,或者在 rac1 的 OCFS2 控制台上选择
Cluster 和 Propagate Configuration 以将配置文件传播到 rac2。
以 root 用户身份执行
# /etc/init.d/o2cb unload
# /etc/init.d/o2cb configure
# /etc/init.d/o2cb status
您只需在一个节点上格式化文件系统。在 rac1 上,以 root 用户身份执行
# ocfs2console
OCFS2 控制台:选择 Tasks、Format。
格式:
可用设备:/dev/sdb1
卷标:oracle
集群大小:Auto
节点插槽数量: 4
块大小:Auto
OCFS2 控制台:按 CTRL-Q 退出。
挂载文件系统。要挂载文件系统,在两个节点上执行以下命令。
# mount -t ocfs2 -o datavolume,nointr /dev/sdb1 /ocfs
要在引导时挂载文件系统,在两个节点的 /etc/fstab 中添加以下行。
/dev/sdb1 /ocfs ocfs2 _netdev,datavolume,nointr 0 0
# mkdir /ocfs/clusterware
# chown -R oracle:dba /ocfs
现在,您已经完成了 OCFS2 的设置。验证您可以在两个节点的共享集群文件系统上读写文件。
安装CRS
需要注意的问题:
1、脚本要一个节点一个节点的执行,切不可同时执行
在 rac1 上执行 /u01/app/oracle/oraInventory/orainstRoot.sh。
在 rac2 上执行 /u01/app/oracle/oraInventory/orainstRoot.sh。
在 rac1 上执行 /u01/app/oracle/product/10.2.0/crs_1/root.sh。
在 rac2 上执行 /u01/app/oracle/product/10.2.0/crs_1/root.sh。
2、如果安装过程中出现in future。。。之类错误,应为两台主机时间不一致导致,解决方法:
1〉用root执行net time –I TARGETIP命令同步
2〉如果net time同步仍然不成功,最好配置一台服务器
进入解压路径/home/oracle/cluterware执行(在集群的一个节点上执行):
$ ./runInstall
执行最后一个root.sh的时候,可能会报""eth0" is not public.Public interfaces should be used to configure virtual
IPs."这样的错误.这时候需要以root用户去执行$ORA_CRS_HOME/bin/vipca。起来图形界面——next——Network Interfaces
(只选择用于公共网络的接口,本示例中为eth0,集群中所有主机上的这个接口必须相同,即如果在安装主机上该接口是
eth0,则在集群中所有其他主机上都必须是eth0)。——Virtual IPs for cluster nodes 在vipca的提示框中输入/etc/hosts
中事先定义的虚拟ip地址,vipca会自动将虚拟ip对应的hostname显示出来。VIP 配置助手创建并启动 VIP、GSD 和 ONS
应用程序资源。配置完毕后,oracle会自动为public网卡绑定虚拟地址。
在vipca配置完毕后,最好做一下关于vip地址的用户等效性。如执行
# ssh rac2-vip
提示后,输入yes。
rac1-> /u01/app/oracle/product/10.2.0/crs_1/bin/cluvfy stage
-post crsinst -n rac1,rac2
从 $ORACLE_BASE/product/10.2.0/crs_1/bin 目录中运行 olsnodes 验证安装已成功;例如:
$ cd $ORACLE_BASE/product/10.2.0/crs_1/bin
$ olsnodes
安装 Oracle 数据库软件RAC
执行以下命令(在集群的一个节点上):
$ ./runInstall
启动图形界面
安装过程中可能遇到的问题:
1.异常错误字符串: 调用 makefile '/oracle/product/10.2.0/db_1/rdbms/lib/ins_rdbms.mk' 的目标
'all_no_orcl' 时出错。
需要binutils-2.15.92.0.2-13.0.0.0.2.x86_64.rpm补丁
2.创建DB过程中会报错,点击确定即可。随后dbca会自动启动各个节点的instance,这个错误是因为创建的ASM DiskGroup的时候,其他节点的ASM实例没有mount磁盘组。因此可以在其他节点上执行一下命令:
# srvctl stop asm –n hostname
# srvctl start asm –n hostname
# srvctl start instance –I instance_name on hostname–d database_name
最后用命令
# srvctl status database –d database_name
检查,是否所有节点的instance都已经running。
3.数据的删除并不影响asm实例,如果想删除与asm有关的内容,可以按如下做法:
# export ORACLE_SID=ASM_instance_name
# sqlplus / as sysdba
SQL> drop diskgroup diskgroup_name including contents;
SQL> quit
然后在各个节点上执行
# srvctl stop asm –n hostname
# srvctl remove asm –n hostname
这样,应该就可以删除的比较干净了。
4.安装问题
* /usr/bin/ld: crt1.o: No such file: No such file or directory
解决办法:安装glibc-devel-2.3.4-2.25.i386.rpm
5.安装问题
* /usr/bin/ld: /u01/app/oracle/oracle/product/10.2.0/db_1/lib//libirc.a(fast_memcpy.o):
relocation R_X86_64_PC32 against `_memcpy_mem_ops_method' can not be usedwhen making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Bad value
collect2: ld returned 1 exit status
解决办法:安装新的版本 binutils-2.15.92.0.2-15.0.0.0.2.x86_64.rpm
6.安装问题
* ORA-12547: TNS:lost contact
解决办法:安装libaio-0.3.103-3.x86_64.rpm
exec /usr/bin/ssh-agent $SHELL
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/50509/viewspace-174240/ ,如需转载,请注明出处,否则将追究法律责任。