目录
Oracle11gR2 On Asianux3 集群部署指南 ... 5
1 前言 ... 5
1.1 说明 ... 5
1.2 安装软件清单 ... 5
2 准备工作 ... 5
2.1 部署环境描述 ... 5
2.1.1 部署服务器环境描述 ... 5
2.1.2 RAC 体系结构 ... 5
2.1.3 RAC 网络分配 ... 6
2.2 检查网卡 ... 7
2.3 修改 IP .. 7
2.4 修改主机名 ... 8
2.5 修改 /etc/hosts 文件 ... 9
2.6 跳过 DNS 配置 ... 9
2.7 添加 oracle 和 grid 用户和用户组 ... 10
2.8 修改 oracle 和 grid 环境变量 ... 11
2.8.1 Grid 用户环境变量 ... 11
2.8.2 Oracle 用户环境变量 ... 11
2.9 创建路径和授权 ... 11
2.10 修改登录 oracle 和 gird 用户的资源数 ... 12
2.10.1 修改登录限制文件 ... 12
2.10.2 修改验证登录配置文件 ... 12
2.11 停止 NTP 服务 ... 12
2.12 配置 Oracle 和 Grid 用户 ssh 对等性 ... 13
2.12.1 验证 ssh 对等性 ... 13
2.13 磁盘规划 ... 13
2.13.1 创建共享磁盘 ... 13
2.13.2 共享磁盘授权 ... 13
2.14 解压安装介质 ... 14
3 安装 grid( 网格 ) 软件 ... 14
4 安装数据库软件 ... 26
5 创建数据库实例 ... 32
6 安装问题集 ... 39
Oracle11gR2 On Asianux3 集群部署指南
1 前言
1.1 说明
本文档内容讲述 Oracle 11.2.0.5 on Asianux 3.0 4.1.2-50 (64bit) 集群基本安装步骤和方法。文档内容已在实际环境中部署、验证。
使用本文档,需具备 ORACLE 和 LINUX 基础知识。
1.2 安装软件清单
本指南用到的软件清单:
Asianux 3.0 4.1.2-50
linux.x64_11gR2_database_1of2
linux.x64_11gR2_database_2of2
linux.x64_11gR2_grid
2 准备工作
若无特别说明,“ $ ”提示符均表示在 oracle 用户下执行,“ # ”提示符均表示在 root 用户下执行。
2.1 部署环境描述
2.1.1 部署服务器环境描述
服务器名
项目名称
服务器 1
服务器 2
主机名
rac1
rac2
物理内存
4GB
4GB
磁盘
30GB
30GB
共享磁盘
20GB
2.1.2 RAC 体系结构
两台服务器,划了一块共享磁盘,每台服务器需要三个 IP ,两台服务器通过心跳线通讯,共同访问共享磁盘的信息,对外提供虚拟 IP 给外部客户端访问者。
2.1.3 RAC 网络分配
公共 IP 是网卡的 IP 可以提供给远程连接,虚拟 IP 提供远程连接,还有可以实现漂移功能,当一个节点故障时虚拟 IP 会自动漂移到健康的节点,私有 IP 是内部通讯使用的心跳线, Scan IP 是 11g 开始出现的,相当于在客户端和数据库之间增加一层虚拟的网络服务层,需要安装配置 DNS 服务器,在后面安装 grid 软件会用到 Scan IP 所以必须规划好,但这个 Scan IP 不是必须要用到,主要作用是为了方便维护数据库客户端连接文件 tnsnames.ora 。
主机名
类型
IP
网络接口
说明
rac1
Public IP
192.168.13.120
eth0
公共
rac2
Public IP
192.168.13.122
eth0
公共
rac1-vip
Virtual IP
192.168.13.121
eth0:1
虚拟
rac2-vip
Virtual IP
192.168.13.123
eth0:1
虚拟
rac1-priv
Private IP
10.10.10.11
eth1
私有
rac2-priv
Private IP
10.10.10.12
eth1
私有
scan-rac
Scan IP
192.168.13.124
eh0
配置 DNS
2.2 检查网卡
在 两个节点 的 root 用户下,执行 ifconfig 查看是否有两个网卡,如果可以看到 eth0 和 eth1 ,则说明有两个网卡,如果只看到 eth0 则需要添加一个虚拟网卡,添加网卡在虚拟机上可以直接添加一个新的网卡或者可以在网上邻居上添加但前提是需要创建一个网卡文件在 root 用户下执行:
#cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth1
在虚拟机上添加选择以太网适配器,然后下一步即可添加虚拟网卡:
创建了 eth1 文件后,在网上邻居添加网卡:
2.3 修改 IP
在 两个节点 的 root 用户下,执行 vi /etc/sysconfig/network-scripts/ifcfg-eth0 修改网卡 1 的 IP ,执行 vi /etc/sysconfig/network-scripts/ifcfg-eth1 修改网卡 2 的 IP 或者直接进入两个节点服务器中通过网上邻居去修改 IP 和网关,子网掩码, 修改完成需要重启网络服务,在 两个节点 的 root 用户下执行命令: service network restart 。
节点 1 的网卡 1 :
节点 1 的网卡 2 :
2.4 修改主机名
在 两个节点 的 root 用户下,执行 vi /etc/sysconfig/network ,修改主机名
节点 1 主机名修改成 rac1 ,节点 2 主机名修改成 rac2 。修改完成,需要重启服务,在 两个节点 的 root 用户下执行命令: service network restart ,重启服务后,重新打开窗口即可看到修改的新的主机名。
节点 1 的主机名:
重启服务:
2.5 修改 /etc/hosts 文件
hosts 文件是 DNS 解析用的,后面的网格,数据库软件安装,实例安装过程中都会通过 hosts 文件获取 IP 和主机名,是必须要修改,在 两个节点 的 root 用户下,执行 vi /etc/hosts 。
2.6 跳过 DNS 配置
在 2.1.3 中有提到 SCAN IP ,要用到 SCAN IP 需要安装 DNS 服务器,这个功能并不是必须的,可以修改一些参数来跳过网格软件安装时候的 DNS 校验 , 如果不做这一步 , 装网格软件完成时候会提示一个错误信息“ [INS-20802] oracle cluster verification 实用程序失败”的错误信息,这个错误忽略,但为了不出现报错信息需要跳过 DNS 校验。需要先重命名 nslookup (它是二进制文件打开会乱码,必须先重命名),然后再新建一个 nslookup ,在 两个节点 的 root 用户下:
重命名: mv /usr/bin/nslookup /usr/bin/nslookup.original
新建: vi /usr/bin/nslookup ,加入代码:
#!/bin/bash
HOSTNAME=${1}
if [[ $HOSTNAME = "scan-rac" ]]; then
echo "Server: 192.168.13.125"
echo "Address: 192.168.13.125#53"
echo "Non-authoritative answer:"
echo "Name: scan-rac"
echo "Address: 192.168.13.124"
else
/usr/bin/nslookup.original $HOSTNAME
fi
网格安装在设置阶段提示的错误信息:
2.7 添加 oracle 和 grid 用户和用户组
在 两个节点 的 root 用户下,添加 oracle 和 grid 用户和用户组
groupadd -g 1000 oinstall
groupadd -g 1300 dba
groupadd -g 1301 oper
groupadd -g 1200 asmadmin
groupadd -g 1201 asmdba
groupadd -g 1202 asmoper
useradd -u 1101 -g oinstall -G asmadmin,asmdba,asmoper,dba grid
useradd -u 1100 -g oinstall -G dba,oper,asmdba oracle
passwd grid
passwd oracle
检查 oracle 和 grid 用户的组创建情况在 root 用户下输入 id oracle 即可查看 oracle 用户的建组情况, id grid 查看 grid 用户的建组情况。
2.8 修改 oracle 和 grid 环境变量
2.8.1 Grid 用户环境变量
在 两个节点 的 grid 用户下,执行 vi .bash_profile, 修改 grid 的环境变量,执行 source .bash_profile ,可载入刚刚设置的环境变量
添加代码 ( 节点 2 的 SID 修改成 +ASM2 ) :
export ORACLE_SID=+ASM1
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/grid
export PATH=$ORACLE_HOME/bin:$PATH
2.8.2 Oracle 用户环境变量
在 两个节点 的 oracle 用户下,执行 vi .bash_profile, 修改 oracle 的环境变量,执行 source .bash_profile ,可载入刚刚设置的环境变量
添加代码( 节点 2 把 SID 修改成 dw2 ):
export ORACLE_SID=dw1
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/11.2.0
export PATH=$ORACLE_HOME/bin:$PATH
2.9 创建路径和授权
在 两个节点 的 root 用户下,执行如下操作:
mkdir -p /u01/app/grid
mkdir -p /u01/app/oracle
mkdir -p /u01/grid
chown grid:oinstall /u01/app/grid
chown oracle:oinstall /u01/app/oracle
chown grid:oinstall /u01/app
chown grid:oinstall /u01/grid
chmod -R 755 /u01
chmod -R 775 /u01/app
2.10 修改登录 oracle 和 gird 用户的资源数
2.10.1 修改登录限制文件
在 两个节点 的 root 用户下,执行 vi /etc/security/limits.conf ,添加如下代码:
oracle soft nofile 65536
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
2.10.2 修改验证登录配置文件
在 两个节点 的 root 用户下,执行 vi /etc/pam.d/login ,添加如下代码:
session required pam_limits.so multiple open
2.11 停止 NTP 服务
停止 NTP 服务是在 Oracle11R2 中新增的检查项,在 11gR2 版本中, oracle 新推出了自己的时间同步服务( CTSS ),这只在一个集群所有节点中有效,与其他系统的时间并不同步,要使用 CTSS 同步时间,必须停止并清除 NTP 服务。
在 两个节点 的 root 用户下,执行如下命令:
[root@rac1 ~]# service ntpd status
ntpd is stopped
[root@rac1 ~]# chkconfig ntpd off
[root@rac1 ~]# cp /etc/ntp.conf /etc/ntp.conf.bak
[root@rac1 ~]# rm -rf /etc/ntp.conf
2.12 配置 Oracle 和 Grid 用户 ssh 对等性
在使用 linux 时候,有时候需要远程到一台主机的命令行窗口,通常我们都是用 ssh 的方式,但出于安全性考虑每次登陆都会被要求输入用户名和密码,为了避免麻烦,我们必须在两台主机建立 ssh 等效性,在后面的安装 grid 软件、数据库软件、数据库实例的时候,也会用到 scp 远程复制的功能,这个功能就需要做 ssh 对等性。从 11g 开始, ssh 对等性连接已经可以在 grid 网格安装的时候实现,具体操作看网格软件安装过程。
2.13 磁盘规划
2.13.1 创建共享磁盘
在 exsit5.5 上添加共享磁盘,在 rac1 中添加 20g 的磁盘,磁盘置备选择“厚置备为零”, scsi 控制器选择 1:1 , scsi 总线共享选择 “ 虚拟 ” 。
2.13.2 共享磁盘授权
创建完后,在 两个节点 的 root 用户下,执行 fdisk –l, 查看添加的共享磁盘,根据 oracle 规定,这个共享磁盘必须要有 660 以上的权限。
对新增的共享磁盘 /dev/sdb 授权: chmod -R 765 /dev/sdb ,但每次机器重启都会被系统回收权限,所以必须把授权加入到随机自启动文件中,在两个节点的 root 用户下执行 vi /etc/rc.local ,添加授权命令。
2.14 解压安装介质
在节点 1 把 Oracle Grid Infrastructure 软件上传到 /home/grid/software 目录。将 Oracle Database 软件上传到 /home/oracle/software 目录。
以 grid 用户身份解压缩 Oracle Grid Infrastructure 软件:
[grid@rac1 ~]$ mkdir -p /home/grid/software
[grid@rac1 ~]$ cd /home/grid/software
[grid@rac1 software]$ unzip linux.x64_11gR2_grid.zip
以 oracle 用户身份解压缩 Oracle Database 软件:
[oracle@rac1 ~]$ mkdir -p /home/oracle/software
[oracle@rac1 software]$ unzip linux.x64_11gR2_database_1of2.zip
[oracle@rac1 software]$ unzip linux.x64_11gR2_database_2of2.zip
3 安装 grid( 网格 ) 软件
① 在 rac1 的 grid 用户下,进入 grid 软件解压的根目录下,执行 ./runInstaller ,进入 OUI 界面。
② 安装选项
选择安装和配置集群的网格基础结构。
③ 安装类型
选择高级安装。
④ 产品语言
默认会选择简体中文和英语。
⑤ 网格即插即用
集群名称和 sacn 名称填写 scan-rac ,在 2.1.3RAC 网络分配 中有规划。
配置 GNS 不需要勾选。
⑥ 集群节点信息
这步需要做两个事情,一个是配置节点 2 的主机名和虚拟主机名,另一个是做 ssh 连接。
点击添加,加入 rac2 和 rac2-vip 。
点击 ssh 连接,需要输入 grid 的密码(创建 grid 用户时候的密码),点击设置后 grid 软件自动会建立 ssh 连接,连接完成会提示成功建立无口令 ssh 连接,但需要在各个节点的两个用户下做 ssh 对等性测试才算完成。
在 rac 1 , rac 2 两个节点上分别执行下述命令。
在 rac1 的 grid 用户下:
[grid@rac1~]$ ssh rac1 date
[grid@rac1~]$ ssh rac2 date
[grid@rac1~]$ ssh rac1-priv date
[grid@rac1~]$ ssh rac2-priv date
节点 1 :
节点 2 :
执行完成后,点击连接,如果成功,则可以继续下一步。
⑦ 网络接口使用情况
eth0 默认是公共的,无需选择, eth1 选择专用。需要注意:两个节点的两个网卡的四个子网掩码都需要一致,不然会提示错误。
⑧ 存储选项
选择自动存储管理( ASM )。
⑨ 创建 ASM 磁盘组
磁盘组名: OCRDG ,冗余选择“外部”,如果看不到刚刚前面添加的共享磁盘,需要在右下角的更改搜索路径中,输入 /dev/sdb (在 root 用户下,执行 fdisk -l 查看共享磁盘的磁盘路径)。
⑩ ASM 口令
选择对这些账户使用同一口令。
? 故障隔离
选择 IPMI 。
? 操作系统组
默认即可。
? 安装位置
这里的路径是在 2.8 修改 oracle 和 grid 环境变量 中设定的。
? 创建产品清单
该目录需要有有 775 以上的权限,如果前面设置了环境变量,这里的路径默认是 oracle 基目录的上一级目录, /ORACLE_BASE/ ,如果没有设置环境变量,这里默认的是 home 目录下面。
? 先决条件检查
这里看到内核参数检查失败,这里和单机版本的 oracle 安装一样,点击“修补并再次检查( F )”按照提示执行脚本,再点击重新检查即可通过。
? 概要
点击完成。
? 设置
根据提示在 两个节点 上的 root 用户下分别执行两个脚本。
执行 orainstRoot.sh ,
执行 root.sh ,这个过程会提示输入路径,直接 enter 键默认路径即可。
? 完成
安装完成后,检查集群的状态:
[root@rac1~]# su - grid
[grid@rac1~]$ crs_stat –t
4 安装数据库软件
在节点 1 的 oracle 用户下进入 oracle 解压根目录下,执行 ./runInstaller 。
① 配置安全更新
不勾选“我希望通过 MY ORACLE SUPPORT 接收安全更新”。
不填电子邮件。
② 安装选项
选择“仅安装数据库软件”。
③ 网格选项
选择集群安装,全选两个集群 ; 点击 ssh 连接 , 输入 oracle 的密码 , 点击设置 , 即可执行 ssh 等效性连接。
④ 产品语言
默认选择简体中文和英语。
⑤ 数据库版本
选择“企业版”。
⑥ 安装位置
这里会读取 oracle 环境变量设定的基目录和软件目录。
⑦ 概要
⑧ 安装产品
根据提示在 两个节点 的 root 用户下执行 root.sh 脚本。
⑨ 完成
5 创建数据库实例
在节点 1 的 oracle 用户下执行 dbca 创建数据库实例。
① 选择数据库类型
选择 RAC 数据库。
② 创建数据库
③ 选择一般用途或事务处理
④ 填写全局数据库名和选择节点
⑤ 配置企业管理器
这里不勾选,不需要安装 EM 。
⑥ 设置 sys 和 system 密码
⑦ 自动存储管理
⑧ 数据库恢复选项
不勾选,后续维护需要再开启。
⑨ 实例方案
不勾选,不需要用到。
⑩ 内存和字符集管理
内存默认物理内存的 40% 。
数据库字符集: AL32UTF8 ,国家字符集: AL16UTF16 ,默认语言:简体中文 (Simplified Chinese) ,默认地区:中国 (China) 。
? 数据库存储
有控制文件表空间数据文件重做日志的操作。这些后续可以再根据需要调整。
? 创建完成
此安装过程需要 30 分钟到 1 小时。
最后如果出现了数据库创建完成的界面,实例创建完成,点击退出即可。
6 安装问题集
① 问题: 网络接口使用情况 出现 ins-41107 错误;
解决:检查了 rac1 和 rac2 的 IP 设置和网关、子网掩码,发现 rac1 的子网掩码错误,修改后重启了网络服务重新即可进入。
② 问题: 在安装位置的时候提示“无法创建目录”;
解决:对节点 1 和节点 2 的基目录和软件安装目录授权,保持权限一致,都有 755 的权限。
③ 问题:多次安装集群和卸载会产生大量的日志;
解决:找到路径 /oracle/app/oraInventory/logs ,删除日志文件。
④ 问题: 集群安装执行 root.sh 文件的时候提示,磁盘组 ocrdg 无法创建;
解决:给 /dev/sdb 授权,但每次重启机器权限都会回收,所以在 linux 的自动启动脚本 /etc/rc.local 写了一个开机自动授权的语句,给磁盘组授予 660 以上的权限。
⑤ 常出现的问题的情况:
a. 执行用户出错 ,root 和 oracle 、 grid 经常混淆;
b. 编辑文件时候,空格、文件名出错;
c. 执行只在单节点执行,没有同步在两个节点执行。
6 、创建 ASM 磁盘标记出错或安装时能认到硬盘但是点击后磁盘的权限消失问题
[root@ora11g ~]# oracleasm createdisk -v VOL1 /dev/sdc1
Disk "VOL1" does not exist or is not instantiated
Writing disk header: done
Instantiating disk: oracleasm-instantiate-disk: Unable to create ASM disk "VOL1": Permission failed
Clearing disk header: done
原因: For pre-11.2.0.2 installations, SELinux must be disabled. For 11.2.0.2, SELinux is supported but the recommendation (if possible) is to run with SELinux disabled. See Bug 9746474.
上述告诉我们要关闭 SeLinux 设置。
查看更多关于Oracle11gR2OnAsianux3集群部署指南(64bit)的详细内容...