目录
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集群部署指南
本文档内容讲述Oracle 11.2.0.5 on Asianux 3.0 4.1.2-50 (64bit)集群基本安装步骤和方法。文档内容已在实际环境中部署、验证。
使用本文档,需具备ORACLE和LINUX基础知识。
本指南用到的软件清单:
Asianux 3.0 4.1.2-50
linux.x64_11gR2_database_1of2
linux.x64_11gR2_database_2of2
linux.x64_11gR2_grid
若无特别说明,“$”提示符均表示在oracle用户下执行,“#”提示符均表示在root用户下执行。
服务器名 项目名称 |
服务器1 |
服务器2 |
主机名 |
rac1 |
rac2 |
物理内存 |
4GB |
4GB |
磁盘 |
30GB |
30GB |
共享磁盘 |
20GB |
两台服务器,划了一块共享磁盘,每台服务器需要三个IP,两台服务器通过心跳线通讯,共同访问共享磁盘的信息,对外提供虚拟IP给外部客户端访问者。
公共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 |
在两个节点的root用户下,执行ifconfig查看是否有两个网卡,如果可以看到eth0和eth1,则说明有两个网卡,如果只看到eth0则需要添加一个虚拟网卡,添加网卡在虚拟机上可以直接添加一个新的网卡或者可以在网上邻居上添加但前提是需要创建一个网卡文件在root用户下执行:
#cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth1
在虚拟机上添加选择以太网适配器,然后下一步即可添加虚拟网卡:
创建了eth1文件后,在网上邻居添加网卡:
在两个节点的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:
在两个节点的root用户下,执行vi /etc/sysconfig/network,修改主机名
节点1主机名修改成rac1,节点2主机名修改成rac2。修改完成,需要重启服务,在两个节点的root用户下执行命令:service network restart,重启服务后,重新打开窗口即可看到修改的新的主机名。
节点1的主机名:
重启服务:
hosts文件是DNS解析用的,后面的网格,数据库软件安装,实例安装过程中都会通过hosts文件获取IP和主机名,是必须要修改,在两个节点的root用户下,执行vi /etc/hosts。
在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
网格安装在设置阶段提示的错误信息:
在两个节点的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用户的建组情况。
在两个节点的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
在两个节点的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
在两个节点的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
在两个节点的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
在两个节点的root用户下,执行vi /etc/pam.d/login,添加如下代码:
session required pam_limits.so multiple open
停止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
在使用linux时候,有时候需要远程到一台主机的命令行窗口,通常我们都是用ssh的方式,但出于安全性考虑每次登陆都会被要求输入用户名和密码,为了避免麻烦,我们必须在两台主机建立ssh等效性,在后面的安装grid软件、数据库软件、数据库实例的时候,也会用到scp远程复制的功能,这个功能就需要做ssh对等性。从 11g开始,ssh对等性连接已经可以在grid网格安装的时候实现,具体操作看网格软件安装过程。
在exsit5.5上添加共享磁盘,在rac1中添加20g的磁盘,磁盘置备选择“厚置备为零”,scsi控制器选择1:1,scsi总线共享选择“虚拟”。
创建完后,在两个节点的root用户下,执行fdisk –l,查看添加的共享磁盘,根据oracle规定,这个共享磁盘必须要有660以上的权限。
对新增的共享磁盘/dev/sdb授权:chmod -R 765 /dev/sdb,但每次机器重启都会被系统回收权限,所以必须把授权加入到随机自启动文件中,在两个节点的root用户下执行vi /etc/rc.local,添加授权命令。
在节点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
①在rac1的grid用户下,进入grid软件解压的根目录下,执行./runInstaller,进入OUI界面。
②安装选项
选择安装和配置集群的网格基础结构。
③安装类型
选择高级安装。
④产品语言
默认会选择简体中文和英语。
⑤网格即插即用
集群名称和sacn名称填写scan-rac,在2.1.3RAC网络分配中有规划。
配置GNS不需要勾选。
⑥集群节点信息
这步需要做两个事情,一个是配置节点2的主机名和虚拟主机名,另一个是做ssh连接。
点击添加,加入rac2和rac2-vip。
点击ssh连接,需要输入grid的密码(创建grid用户时候的密码),点击设置后grid软件自动会建立ssh连接,连接完成会提示成功建立无口令ssh连接,但需要在各个节点的两个用户下做ssh对等性测试才算完成。
在rac1,rac2两个节点上分别执行下述命令。
在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
在节点1的oracle用户下进入oracle解压根目录下,执行./runInstaller。
①配置安全更新
不勾选“我希望通过MY ORACLE SUPPORT接收安全更新”。
不填电子邮件。
②安装选项
选择“仅安装数据库软件”。
③网格选项
选择集群安装,全选两个集群;点击ssh连接,输入oracle的密码,点击设置,即可执行ssh等效性连接。
④产品语言
默认选择简体中文和英语。
⑤数据库版本
选择“企业版”。
⑥安装位置
这里会读取oracle环境变量设定的基目录和软件目录。
⑦概要
⑧安装产品
根据提示在两个节点的root用户下执行root.sh脚本。
⑨完成
在节点1的oracle用户下执行dbca创建数据库实例。
①选择数据库类型
选择RAC数据库。
②创建数据库
③选择一般用途或事务处理
④填写全局数据库名和选择节点
⑤配置企业管理器
这里不勾选,不需要安装EM。
⑥设置sys和system密码
⑦自动存储管理
⑧数据库恢复选项
不勾选,后续维护需要再开启。
⑨实例方案
不勾选,不需要用到。
⑩内存和字符集管理
内存默认物理内存的40%。
数据库字符集:AL32UTF8,国家字符集:AL16UTF16,默认语言:简体中文(Simplified Chinese),默认地区:中国(China)。
⑪数据库存储
有控制文件表空间数据文件重做日志的操作。这些后续可以再根据需要调整。
⑫创建完成
此安装过程需要30分钟到1小时。
最后如果出现了数据库创建完成的界面,实例创建完成,点击退出即可。
①问题:网络接口使用情况 出现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设置。