一、版本说明
发现网上相关文章很多但是不是很专,因此细化版本为了使文章更加实用。
这次搭建的是 Oracle 11g R2 11.2.0.4 的 RAC 环境,使用的操作系统版本为
Oracle Linux 6.4
点击(此处)折叠或打开
1. [root@node1 ~]# lsb_release -a
2. LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-
noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-
noarch
3. Distributor ID: OracleServer
4. Description: Oracle Linux Server release 6.4
5. Release: 6.4
6. Codename: n/a
内核版本:
点击(此处)折叠或打开
1. [root@node1 ~]# uname -r
2. 2.6.39-400.17.1.el6uek.x86_64
UEK 代表 Unbreakable Enterprise Kernel,是 Oracle 专门为 Oracle Linux 定
制的内核,可以提供在线支持和对数据库的支持,算是 OracleLinux 的卖点之
一。(本文中一些配置过程会因实用 UEK 版本而得到简化)
二、Oracle 11g R2 RAC 安装整体步骤
1.服务器准备 (system, storage, and network administration):
安装操作系统并升级到满足 Oracle 安装要求的版本。
创建安装所需要的组、用户以及软件的家目录。
设置 GNS 域名如果您打算部署 GNS,并且完成网络地址在 DNS 和服务器上的配置。
设置所要求的存储。
将所有安装文件拷贝到一个节点上。
2.安装 Oracle Grid 集群基础架构, 包括 Oracle Clusterware 和 Oracle ASM (system and
storage administration):
为集群安装 Oracle Grid 基础架构软件。在安装过程中,Fixup 脚本进行操作系统参数、
SSH 和用户环境变量等参数的附加调整。
升级 Oracle Clusterware 和 Oracle ASM 到最新补丁。
3.安装 Oracle RAC (database administration):
安装 Oracle RAC
打补丁到最新版本
完成安装后的调试
三、详细安装过程及说明(参考官方文档)
1.通过 SecureCRT 或 TerminalX 建立命令行连接。
2.在每一个节点上添加安装 Oracle Grid 的用户、组和家目录,并设置
权限。
点击(此处)折叠或打开
1. # /usr/sbin/groupadd -g 1000 oinstall
2. # /usr/sbin/groupadd -g 1020 asmadmin
3. # /usr/sbin/groupadd -g 1021 asmdba
4. # /usr/sbin/groupadd -g 1022 asmoper
5. # /usr/sbin/groupadd -g 1031 dba
6. # /usr/sbin/groupadd -g 1032 oper
7. # useradd -u 1100 -g oinstall -G asmadmin,asmdba,asmoper,oper,dba grid
8. # useradd -u 1101 -g oinstall -G dba,asmdba,oper oracle
9. # mkdir -p /u01/app/11.2.0/grid
10. # mkdir -p /u01/app/grid
11. # chown -R grid:oinstall /u01
12. # mkdir /u01/app/oracle
13. # chown oracle:oinstall /u01/app/oracle
14. # chmod -R 775 /u01/
参照官方文档,采用 GI 与 DB 分开安装和权限的策略,对于多实例管理有利。
3.检查服务器各个节点的配置是否符合安装要求
I.服务器硬盘空间要求
/tmp 目录大小至少:1GB
安装 Grid Infrastracture 所需空间:6.6GB
安装 Oracle Database 所需空间:4GB
此外安装过程中分析、收集、跟踪文件所需空间:10GB
建议总共至少 30GB,放心!(此处不包含 ASM 或 NFS 的空间需求)
II.服务器内存要求
内存大小:至少 2.5GB
Swap 大小:
当内存为 2.5GB-16GB 时,Swap 需要大于等于系统内存。
当内存大于 16GB 时,Swap 等于 16GB 即可。
III.检查和调试代码
查看内存及 Swap 大小的命令如下。
点击(此处)折叠或打开
1. # grep MemTotal /proc/meminfo
2. # grep SwapTotal /proc/meminfo
查看/tmp 目录以及配置单独 lv 的命令如下。
点击(此处)折叠或打开
1. # df -h /tmp
2. # lvcreate -L 2G -n lv_tmp vg_temp
3. # mount /dev/vg_temp/lv_tmp /tmp
4. # df -h /tmp
4.设置操作系统相关参数
这一项在非 Oracle Linux 的操作系统中算是一项比较繁琐的工作,然而我们这次安装的
版本是 Oracle Linux 6.4 with Unbreakable Enterprise Kernel,因此我们有了更简单的
办法,就是通过安装 Oracle Preinstallation RPM 来实现相关操作系统参数的调整和软件包
的安装。
这个安装包主要完成以下工作:
Automatically downloads and installs any additional RPM packages needed for installing
Oracle Grid Infrastructure and Oracle Database, and resolves any dependencies
Creates an oracle user, and creates the oraInventory (oinstall) and OSDBA (dba)
groups for that user
As needed, sets sysctl.conf settings, system startup parameters, and driver
parameters to values based on recommendations from the Oracle Preinstallation RPM
program
Sets hard and soft resource limits
Sets other recommended parameters, depending on your kernel version
此安装包位于操作系统安装盘的 Packages 目录下。
点击(此处)折叠或打开
1. # cd /mnt/install_DVD
2. # cd Packages
3. # ll | grep preinstall
4. -rw-r--r-- 1 root root 15524 Jan 16 2013 oracle-rdbms-server-11gR2-preinstall-1.0-
7.el6.x86_64.rpm
5. # rpm -ivh oracle-rdbms-server-11gR2-preinstall-1.0-7.el6.x86_64.rpm
安装包修改/etc/sysctl.conf 的内容如下:
其中标有 oracle-rdbms-server-11gR2-preinstall 字样注释的便是安装包所添加的参数。
点击(此处)折叠或打开
1. # cat /etc/sysctl.conf
2. # Kernel sysctl configuration file for Red Hat Linux
3. #
4. # For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and
5. # sysctl.conf(5) for more details.
6.
7. # Controls IP packet forwarding
8. net.ipv4.ip_forward = 0
9.
10. # Controls source route verification
11. net.ipv4.conf.default.rp_filter = 1
12.
13. # Do not accept source routing
14. net.ipv4.conf.default.accept_source_route = 0
15.
16. # Controls the System Request debugging functionality of the kernel
17. kernel.sysrq = 0
18.
19. # Controls whether core dumps will append the PID to the core filename.
20. # Useful for debugging multi-threaded applications.
21. kernel.core_uses_pid = 1
22.
23. # Controls the use of TCP syncookies
24. net.ipv4.tcp_syncookies = 1
25.
26. # Disable netfilter on bridges.
27. net.bridge.bridge-nf-call-ip6tables = 0
28. net.bridge.bridge-nf-call-iptables = 0
29. net.bridge.bridge-nf-call-arptables = 0
30.
31. # Controls the default maxmimum size of a mesage queue
32. kernel.msgmnb = 65536
33.
34. # Controls the maximum size of a message, in bytes
35. kernel.msgmax = 65536
36.
37. # Controls the maximum shared segment size, in bytes
38.
39. # Controls the maximum number of shared memory segments, in pages
40.
41. # oracle-rdbms-server-11gR2-preinstall setting for fs.file-max is 6815744
42. fs.file-max = 6815744
43.
44. # oracle-rdbms-server-11gR2-preinstall setting for kernel.sem is '250 32000 100
45. kernel.sem = 250 32000 100 128
46.
47. # oracle-rdbms-server-11gR2-preinstall setting for kernel.shmmni is 4096
48. kernel.shmmni = 4096
49.
50. # oracle-rdbms-server-11gR2-preinstall setting for kernel.shmall is 1073741824 on
51. # oracle-rdbms-server-11gR2-preinstall setting for kernel.shmall is 2097152 on
128'
x86_64
i386
on x86_64
i386
52. kernel.shmall = 1073741824
53.
54. # oracle-rdbms-server-11gR2-preinstall setting for kernel.shmmax is 4398046511104
55. # oracle-rdbms-server-11gR2-preinstall setting for kernel.shmmax is 4294967295 on
56. kernel.shmmax = 4398046511104
57.
58. # oracle-rdbms-server-11gR2-preinstall setting for net.core.rmem_default is 262144
59. net.core.rmem_default = 262144
60.
61. # oracle-rdbms-server-11gR2-preinstall setting for net.core.rmem_max is 4194304
62. net.core.rmem_max = 4194304
63.
64. # oracle-rdbms-server-11gR2-preinstall setting for net.core.wmem_default is 262144
65. net.core.wmem_default = 262144
66.
67. # oracle-rdbms-server-11gR2-preinstall setting for net.core.wmem_max is 1048576
68. net.core.wmem_max = 1048576
69.
70. # oracle-rdbms-server-11gR2-preinstall setting for fs.aio-max-nr is 1048576
71. fs.aio-max-nr = 1048576
72.
73. # oracle-rdbms-server-11gR2-preinstall setting for net.ipv4.ip_local_port_range is
9000 65500
74. net.ipv4.ip_local_port_range = 9000 65500
5.配置 Oracle 网络
I.硬件配置要求
每个服务器节点至少需要 2 块网卡,一块对外网络接口,一块私有网络接口
(心跳)。
如果你通过 OUI 安装 Oracle 集群软件,需要保证每个节点用于外网或私网接
口(网卡名)保证一致。比如,node1 使用 eth0 作为对外接口,node2 就不能
使用 eth1 作为对外接口。
II.IP 配置要求
存在为集群服务的 DHCP
DHCP 能为每个节点提供足够的 IP,一个虚拟 IP、3 个 SCAN IP
III.非 GNS 下手动配置 IP 实例
6.检查操作系统软件包
首先,根据操作系统版本到官方文档中找到安装包需求列表,如下图
可以通过 mount 安装盘或直接通过 yum 源检查和安装所需要的包:
点击(此处)折叠或打开
1. # rpm -qa packages_name
2. # rpm -ivh packages_name
3.
4. # yum list packages_name
5. # yum install packages_name
这里还要提一下:CVUdisk 这个包也可以在这个时候一起安装好,以备之后使
用 CVU 时会用到。
点击(此处)折叠或打开
1. # 检查是否已经安装
2. # rpm -qi cvuqdisk
3. # 如果已安装需要先卸载之前的版本
4. # rpm -e cvuqdisk
5. # 安装新版本
6. # CVUQDISK_GRP=oinstall; export CVUQDISK_GRP
7. # rpm -ivh cvuqdisk-1.0.9-1.rpm
7.关闭 NTP 及端口范围参数修改
点击(此处)折叠或打开
1. # Oracle 建议使用 Oracle Cluster Time Synchronization Service,因此关闭删除 NTP
2. # /sbin/service ntpd stop
3. # chkconfig ntpd off
4. # rm /etc/ntp.conf (mv /etc/ntp.conf /etc/ntp.conf.old)
5. # rm /var/run/ntpd.pid
6.
7. 检查 TCP/UDP 端口范围
8. # cat /proc/sys/net/ipv4/ip_local_port_range
9. 如果已经显示 9000 65500,就不用进行下面的步骤了
10. # echo 9000 65500 > /proc/sys/net/ipv4/ip_local_port_range
11. # vim /etc/sysctl.conf
12. # 添加此行:
13. # TCP/UDP port range
14. net.ipv4.ip_local_port_range = 9000 65500
15. # 重启网络
16. # /etc/rc.d/init.d/network restart
8.调整.bash_profile 内容并设置显示地址
点击(此处)折叠或打开
1. 设置参数:
2. $ su - root
3. # mkdir /mount_point/tmp
4. # chmod 775 /mount_point/tmp
5. # exit
6.
7. $ vi .bash_profile
8. 加入行:
9. TEMP=/mount_point/tmp
10. TMPDIR=/mount_point/tmp
11. export TEMP TMPDIR
12. 加入行:umask 022
13. 加入行:DISPLAY=local_IP:0.0 ; export DISPLAY
14. local_IP 为你要将安装视图所显示的桌面地址
15.
16. 检查设置参数
17. $ umask
18. $ env | more
19. $ echo $DISPLAY
20. $ echo $TEMP
21. $ echo $TMPDIR
9.配置 SSH 互信
这是很关键的一步,虽然官方文档中声称安装 GI 和 RAC 的时候 OUI 会自动配
置 SSH,但为了在安装之前使用 CVU 检查各项配置,还是手动配置互信更优。
点击(此处)折叠或打开
1. 配置过程如下:
2. 各节点生成 Keys:
3. [root@rac1 ~]# su - oracle
4. [oracle@rac1 ~]$ mkdir ~/.ssh
5. [oracle@rac1 ~]$ chmod 700 ~/.ssh
6. [oracle@rac1 ~]$ ssh-keygen -t rsa
7. [oracle@rac1 ~]$ ssh-keygen -t dsa
8. [root@rac2 ~]# su - oracle
9. [oracle@rac2 ~]$ mkdir ~/.ssh
10. [oracle@rac2 ~]$ chmod 700 ~/.ssh
11. [oracle@rac2 ~]$ ssh-keygen -t rsa
12. [oracle@rac2 ~]$ ssh-keygen -t dsa
13.
14. 在节点 1 上进行互信配置:
15. [oracle@rac1 ~]$ touch ~/.ssh/authorized_keys
16. [oracle@rac1 ~]$ cd ~/.ssh
17. [oracle@rac1 .ssh]$ ssh rac1 cat ~/.ssh/id_rsa.pub >> authorized_keys
18. [oracle@rac1 .ssh]$ ssh rac2 cat ~/.ssh/id_rsa.pub >> authorized_keys
19. [oracle@rac1 .ssh]$ ssh rac1 cat ~/.ssh/id_dsa.pub >> authorized_keys
20. [oracle@rac1 .ssh]$ ssh rac2 cat ~/.ssh/id_dsa.pub >> authorized_keys
21.
22. 在 rac1 把存储公钥信息的验证文件传送到 rac2 上
23. [oracle@rac1 .ssh]$ pwd
24. /home/oracle/.ssh
25. [oracle@rac1 .ssh]$ scp authorized_keys rac2:'pwd'
26. oracle@rac2's password:
27. authorized_keys 100% 1644 1.6KB/s 00:00
28.
29. 设置验证文件的权限
30. 在每一个节点执行:
31. $ chmod 600 ~/.ssh/authorized_keys
32.
33. 启用用户一致性
34. 在你要运行 OUI 的节点以 oracle 用户运行(这里选择 rac1):
35. [oracle@rac1 .ssh]$ exec /usr/bin/ssh-agent $SHELL
36. [oracle@rac1 .ssh]$ ssh-add
37. Identity added: /home/oracle/.ssh/id_rsa (/home/oracle/.ssh/id_rsa)
38. Identity added: /home/oracle/.ssh/id_dsa (/home/oracle/.ssh/id_dsa)
39.
40. 验证 ssh 配置是否正确
41. 以 oracle 用户在所有节点分别执行:
42. ssh rac1 date
43. ssh rac2 date
44. ssh rac1-priv date
45. ssh rac2-priv date
46.
47. 如果不需要输入密码就可以输出时间,说明 ssh 验证配置成功。必须把以上命令在两个节点都运行,每
一个命令在第一次执行的时候需要输入 yes。
48. 如果不运行这些命令,即使 ssh 验证已经配好,安装 clusterware 的时候也会出现错误:
49. The specified nodes are not clusterable
50. 因为,配好 ssh 后,还需要在第一次访问时输入 yes,才算是真正的无障碍访问其他服务器。
请谨记,SSH 互信需要实现的就是各个节点之间可以无密码进行 SSH 访问。
10.为 Grid 集群基础软件配置存储(使用 ASM)
Oracle 所允许的存储主要有 ASM、NFS 和 ACFS 等,这里仅介绍 ASM 的配置过程。
(1)安装 ASM 配置软件
点击(此处)折叠或打开
1. 依然是可以通过 yum 或者系统 DVD 光盘安装
2. # cd /mnt/install_DVD/Packages
3. # rpm -qi oracleasm
4. # rpm -qi oracleasm-support
5. # rpm -qi oracleasm-support-2.1.8-1.el6.x86_64.rpm