首页 > 数据库 > Oracle > ORACLE 11R2 RAC 环境安装教程
虚拟机环境:
VritrulBox 4.2.4
软件环境:
RedHat Enterprise Linux 5.2,Oracle DataBase 11gR2,Oracle Grid11g
这里列出Oracle Enterprise Linux 5.0, and Red Hat Enterprise Linux 5.0的要求,检查一下系统是否安装过这些包,没有的话在Redhat的光盘上都有
# rpm –qa |more
binutils-2.17.50.0.6
compat-libstdc++-33-3.2.3
elfutils-libelf-0.125
elfutils-libelf-devel-0.125
elfutils-libelf-devel-static-0.125
gcc-4.1.2
gcc-c++-4.1.2
glibc-2.5-24
glibc-common-2.5
glibc-devel-2.5
glibc-headers-2.5
kernel-headers-2.6.18
ksh-20060214
libaio-0.3.106
libaio-devel-0.3.106
libgcc-4.1.2
libgomp-4.1.2
libstdc++-4.1.2
libstdc++-devel-4.1.2
make-3.81
sysstat-7.0.2
unixODBC-2.2.11
unixODBC-devel-2.2.11
修改/etc/sysctl.conf文件,增加和修改一下内核参数
# vi /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
应用配置
# /sbin/sysctl -p
修改用户权限
修改/etc/security/limits.conf文件,加上下面的参数
# vi /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
修改/etc/pam.d/login文件加上如下参数
# vi /etc/pam.d/login
session required pam_limits.so
修改/etc/profile文件加入如下参数
# groupadd -g 501 oinstall
# groupadd -g 502 dba
# groupadd -g 503 oper
# groupadd -g 504 asmadmin
# groupadd -g 505 asmdba
# groupadd -g 506 asmoper
# useradd -u 501 -g oinstall -G dba,asmadmin,asmdba,asmoper grid
# useradd -u 502 -g oinstall -G dba,oper,asmadmin,asmdba oracle
# passwd grid
# passwd oracle
# id oracle
# id grid
修改oracle用户配置文件
# vi /home/oracle/.bash_profile
export TMP=/tmp
export TMPDIR=/tmp
export ORACLE_BASE=/oracle/database
export ORACLE_HOME=/oracle/database/product/11.2.0.3.0/db_1
export ORACLE_SID=inds1
export ORACLE_TERM=xterm
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
修改o用户配置文件
# vi /home/grid/.bash_profile
export TMP=/tmp
export TMPDIR=/tmp
export ORACLE_BASE=/oracle/grid/obase
export ORACLE_HOME=/oracle/grid/crs
export ORACLE_SID=+ASM1
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"
export THREADS_FLAG=native
export PATH=$ORACLE_HOME/bin:$PATH
if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
# mkdir -p /oracle/grid/obase
# mkdir -p /oracle/grid/crs
# chown -R grid:oinstall /oracle/grid/
# chmod 775 /oracle/grid
# mkdir -p /oracle/database/
# chown -R oracle:oinstall /oracle/database/
# chmod 775 /oracle/database/
磁盘分区
[root@inds-01 ~]# fdisk /dev/sdb
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-102, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-102, default 102):
Using default value 102
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
需要你输入的依次是"n/p/1/回车/回车/w"。
就本例而言,需要我们进行分区的有4个:sdb,sdc,sdd,sde
配置裸设备
由于RHEL5中取消了rawdevices,如果不想将映射命令放到rc.local中的话,我们就需要将其配置到/etc/udev/rules.d/文件夹中
修改文件
[root@node1 ~]# vi
/etc/udev/rules.d/60-raw.rules
增加如下内容:
ACTION=="add",
KERNEL=="/dev/sdb1",RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add",
ENV{MAJOR}=="8",ENV{MINOR}=="17",RUN+="/bin/raw
/dev/raw/raw1 %M %m"
ACTION=="add",
KERNEL=="/dev/sdc1",RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add",
ENV{MAJOR}=="8",ENV{MINOR}=="33",RUN+="/bin/raw
/dev/raw/raw2 %M %m"
ACTION=="add",
KERNEL=="/dev/sdd1",RUN+="/bin/raw /dev/raw/raw3 %N"
ACTION=="add",
ENV{MAJOR}=="8",ENV{MINOR}=="49",RUN+="/bin/raw
/dev/raw/raw3 %M %m"
ACTION=="add",
KERNEL=="/dev/sde1",RUN+="/bin/raw /dev/raw/raw4 %N"
ACTION=="add",
ENV{MAJOR}=="8",ENV{MINOR}=="65",RUN+="/bin/raw
/dev/raw/raw4 %M %m"
KERNEL=="raw[1-4]",
OWNER="oracle", GROUP="oinstall", MODE="640"
提示:要根据你的实际情况来配置
另外关于此处的配置有一点非常奇怪,我看到red hat官方文档中关于raw.rule的示例中说KERNEL==..或ENV{MAJOR}...只需要任意配置一个就可以,但我在具体配置过程中发现百试不爽,我尝试了各种组合发现都不生效,必须二者同时配置才可以,难道是俺用的linux内核版本太低了?百思不得其解,如有达人已深究其内幕,望助我解惑~~~~
重启下服务:
[root@node1 ~]# start_udev
Starting udev: [ OK ]
验证一下
[root@node1 ~]# ls /dev/raw/ -l
total 0
crw-r----- 1 oracle oinstall 162, 1
Jun 6 17:57 raw1
crw-r----- 1 oracle oinstall 162, 2
Jun 6 17:57 raw2
crw-r----- 1 oracle oinstall 162, 3
Jun 6 17:57 raw3
crw-r----- 1 oracle oinstall 162, 4
Jun 6 17:57 raw4
OK,前期设置完成。En,有点儿麻烦,但运气还算不错,在这些操作上你基本不会遇到什么问题。
# rpm -ivh oracleasm-support-2.1.7-1.el5.x86_64.rpm
# rpm -ivh oracleasm-2.6.18-308.el5-2.0.5-1.el5.x86_64.rpm
# rpm -ivh oracleasmlib-2.0.4-1.el5.x86_64.rpm
# /etc/init.d/oracleasm start
# /etc/init.d/oracleasm enable
# /etc/init.d/oracleasm configure –(sh /etc/init.d/oracleasm configure)
Default user to own the driver interface []: grid
Default group to own the driver interface []: asmadmin
Start Oracle ASM library driver on boot (y/n) [n]: y
Scan for Oracle ASM disks on boot (y/n) [y]: y
Writing Oracle ASM library driver configuration: done
Initializing the Oracle ASMLib driver: [ OK ]
Scanning the system for Oracle ASMLib disks: [ OK ]
[root@inds-02 ~]# /etc/init.d/oracleasm createdisk OCRVOT /dev/sdb
Marking disk "OCRVOT" as an ASM disk: [FAILED]
[root@inds-02 ~]# /etc/init.d/oracleasm createdisk OCRVOT /dev/sdb1
Marking disk "OCRVOT" as an ASM disk: [ OK ]
[root@inds-02 ~]# /etc/init.d/oracleasm createdisk ARCH /dev/sdc1
Marking disk "ARCH" as an ASM disk: [ OK ]
[root@inds-02 ~]# /etc/init.d/oracleasm createdisk DATA_BACK /dev/sdd1
Marking disk "DATA_BACK" as an ASM disk: [ OK ]
[root@inds-02 ~]# /etc/init.d/oracleasm createdisk DATA /dev/sde1
Marking disk "DATA" as an ASM disk: [ OK ]
[root@inds-02 ~]#
[root@inds-02 ~]# /etc/init.d/oracleasm listdisks
ARCH
DATA
DATA_BACK
OCRVOT
# vi /etc/hosts
# Public Address
192.168.2.101 inds-01
192.168.2.102 inds-02
# Virtural Address
192.168.2.201 inds-01-vip
192.168.2.202 inds-02-vip
# Private Address
10.10.17.201 inds-01-priv
10.10.17.202 inds-02-priv
#Scanip
192.168.2.140 inds-scan
建立用户等效性设置ssh
在clusterware (CRS) 和 Rac Database安装过程中,Oracle
Universal Installer (OUI) 必须能够以 oracle 的身份自动将软件复制到所有 RAC 节点。这里我们通过配置ssh 让oracle用户拥有不输入密码即可访问各节点的能力。
首先两个节点间互ping,要确保都是通的
[root@node1 ~]# ping 192.168.2.102
[root@node1 ~]# ping 10.10.17.202
要建立用户等效性,需要在两个节点上以 oracle 用户身份生成用户的公钥和私钥,首先在node1执行:
[root@node1 opt]# su - oracle
[oracle@node1 ~]$ mkdir ~/.ssh
[oracle@node1 ~]$ chmod 700 ~/.ssh
[oracle@node1 ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/oracle/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in
/home/oracle/.ssh/id_rsa.
Your public key has been saved in
/home/oracle/.ssh/id_rsa.pub.
The key fingerprint is:
d2:69:eb:ac:86:62:27:50:99:ff:e8:1e:a2:e6:5d:7f
oracle@node1
[oracle@node1 ~]$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key
(/home/oracle/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in
/home/oracle/.ssh/id_dsa.
Your public key has been saved in
/home/oracle/.ssh/id_dsa.pub.
The key fingerprint is:
0a:9a:20:46:a2:28:ec:72:23:82:f2:9d:f8:62:9b:d1
oracle@node1
然后换node2执行
[root@node2 ~]# ping 192.168.100.102
[root@node2 ~]# ping 10.10.17.222
[root@node2 opt]# su - oracle
[oracle@node2 ~]$ mkdir ~/.ssh
[oracle@node2 ~]$ chmod 700 ~/.ssh
[oracle@node2 ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key
(/home/oracle/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in
/home/oracle/.ssh/id_rsa.
Your public key has been saved in
/home/oracle/.ssh/id_rsa.pub.
The key fingerprint is:
dd:be:7a:37:e4:b5:f0:b2:24:95:50:61:ea:a1:61:07
oracle@node2
[oracle@node2 ~]$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key
(/home/oracle/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in
/home/oracle/.ssh/id_dsa.
Your public key has been saved in
/home/oracle/.ssh/id_dsa.pub.
The key fingerprint is:
bc:b5:cb:43:c7:19:53:d6:f7:16:69:85:12:7f:aa:be
oracle@node2
切换回node1,接着执行:
[oracle@node1 ~]$ cat ~/.ssh/id_rsa.pub
>> ~/.ssh/authorized_keys
[oracle@node1 ~]$ cat ~/.ssh/id_dsa.pub
>> ~/.ssh/authorized_keys
提示:下列命令会提示你输入node2的oracle密码,按照提示输入即可,如果失败可重新尝试执行命令。
[oracle@node1 ~]$ ssh node2 cat
~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
The authenticity of host 'node2
(192.168.100.102)' can't be established.
RSA key fingerprint is
92:d1:ce:5b:c8:a1:52:d5:ac:00:5f:48:5d:12:06:e4.
Are you sure you want to continue connecting
(yes/no)? yes
Warning: Permanently added
'node2,192.168.100.102' (RSA) to the list of known hosts.
oracle@node2's password:
[oracle@node1 ~]$ ssh node2 cat
~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
oracle@node2's password:
[oracle@node1 ~]$ scp ~/.ssh/authorized_keys
node2:~/.ssh/authorized_keys
oracle@node2's password:
authorized_keys
100% 1992
2.0KB/s 00:00
两机相互执行,看看是否还需要输入密码
[oracle@node1 ~]$ ssh inds-02 date
[oracle@node1 ~]$ ssh inds-02 date
[oracle@node1 ~]$ ssh inds-02-vip date
[oracle@node1 ~]$ ssh inds-02-vip date
切换至node2执行
[oracle@node2 ~]$ ssh inds-01 date
[oracle@node2 ~]$ ssh inds-01 date
[oracle@node2 ~]$ ssh inds-01-vip date
[oracle@node2 ~]$ ssh inds-01-vip date
提示:
注意命令的返回信息,由于rac对节点间时间较敏感,因此如果此处显示节点单时间不一至,建议同步(一般相隔超过20秒就需要同步时间了)。
1) 网格即插即用信息
输入scan名称,需和/etc/hosts里面匹配。
2)
集群节点信息
添加wpdb2的节点信息
3) 指定网络接口用法
指定公用网卡和心跳网卡
4) 存储选项信息
选择ASM模式
5) 创建ASM磁盘组
输入磁盘组名、磁盘冗余和磁盘路径,参照存储规划
6) 指定ASM口令
使用同一密码
7) 特权操作系统组
8) 指定安装位置
Oracle基目录和软件位置不能在同一个目录下面。
9) 创建产品清单
10) 执行先决条件检查
11) 概要
12) 设置
开始安装
13) 执行脚本
在两个节点分别执行orainstRoot.sh和root.sh脚本
执行完成后选在在界面上选择ok
14) 安装完成
15) 查看crs状态
在grid用户下面,使用crs_stat -t命令或者crsctl status resource -t命令查看。
在grid软件目录下面,以grid用户执行asmca启动asm管理界面
# su – grid
$ asmca
1) 查看ASM磁盘
l Asm实例状态
l ASM磁盘组
当前磁盘组显示ocr和voting使用的OCRVOTDG
2) 创建ASM磁盘
a) 创建新的ASM磁盘
所需要的ASM磁盘信息参考 存储规划 ,使用的冗余模式为外部。
b) 创建成功
c) 创建其他ASM磁盘
参考存储规划,创建完成后显示的disk groups信息如下。
# su - oracle
$ export DISPLAY=10.235.161.42:0.0
$ xhost +
$ export LANG=en_US
$ /software/unzip/database/runInstall
1) 配置安全更新
此次安装不接受安全更新
选择yes
2) 选择安装选项
此次安装选在仅安装数据库软件
3) 节点选择
4) 选择产品语言
5) 选择数据库版本
此次安装为企业版
6) 执行安装位置
7) 特权操作系统组
8) 执行先决条件检查
9) 安装产品
10) 执行脚本
wpdb1上执行root.sh脚本;wpdb2上执行root.sh脚本
11) 安装完成
# su – oracle
# dbca
1) 选择数据库类型
选择RAC数据库
2) 操作
选择创建数据库
3) 数据库模板
选择定制数据库
4) 数据库标识
输入SID,选择两个节点
5) 管理选项
选择配置EM
6) 数据库身份证明
输入密码
7) 数据文件所在位置
选择存储类型、数据文件存放位置
8) 输入ASM实例管理密码
输入管理密码
9) 恢复配置
启动归档
加载未识别的asm磁盘组
[grid@inds-02 ~]$ srvctl start diskgroup -g ARCH
10) 归档位置和归档日志文件格式
11) 数据库内容
参照数据库规划
12) 初始化参数
内存,参照数据库规划
块大小和进程数
参照数据库规划
字符集
参照数据库规划
连接模式
参照数据库规划
13) 数据库存储
添加重做日志组,参照数据库规划
14) 创建选项
选择创建数据库、模板、创建脚本
15) 创建概要
16) 模板创建成功
17) 创建脚本成功
18) 开始建库
19) 创建完成
20) 服务状态
用grid用户登录,查看数据库状态
用grid用户登录,查看服务资源
21) 数据库状态
以oracle用户登录,查看两实例状态。
Oracle 11gR2 RAC安装配置完成
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/27039319/viewspace-1733038/ ,如需转载,请注明出处,否则将追究法律责任。