快10年,没有玩oracle了吧。没想到现在还有人用oracle。但是客户要求的oracle 版本比较老,所以文档也是老版本的centos。
网上找了一圈,发现大部分是粘贴复制,照着步骤做都是错的。所以我重新整理记录了一下,整个安装过程。图片太多,我的懒癌症又犯了,不想传,可以通过下面地址下载 https://download.csdn.net/download/robinhunan/12106084 。 照着文档的步骤 一步一步来 就可以了。
Centos6 + Oracle 11g r2 + nfs搭建RAC环境
环境要求:
1.3台系统为Centos6的机器,其中 1台做nfs,另外两台为oracle服务器
2. 每台机器至少2块网卡,网卡名字必须一样
3. 准备5个可用的IP地址(一个为scan,scan一个配置数据库会提示warning信息,二台配置各配置public和private地址)
4. 内存至少2G以下内存,建议使用4G或者更高
地址规划:
第一台主机:rac1
网卡eth0 IP地址:192.168.80.143/24 网卡eth1地址: 192.168.254.135/24
第二台主机:rac2
网卡eth0 IP地址:192.168.80.144/24 网卡eth1: 192.168.254.136/24
在两台rac服务器上都执行
安装依赖软件包
# yum install gcc* gcc-* gcc-c++-* glibc-devel-* glibc-headers-* compat-libstdc* libstdc* elfutils-libelf-devel* libaio-devel* sysstat* unixODBC-* rpcbind wget smartctl
另外一个rpm pdksh 在oracle或者其他网站下载,cvuqdisk 在oracle数据库的grid目录下面有。
配置host文件
#vim /etc/hosts 增加以下内容
#public
192.168.80.143 rac1
192.168.80.144 rac2
#priv
192.168.254.135 rac1-priv
192.168.254.136 rac2-priv
#vip
192.168.80.11 rac1-vip
192.168.80.12 rac2-vip
#scan
192.168.80.200 rac-scan rac-scan.localdomain
#NAS
192.168.80.139 nas1
修改 /etc/sysconfig/network , 增加
HOSTNAME=rac1
修改内核参数
#vim /etc/sysctl.conf 在最后面添加
fs.fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 1572608000
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 = 1048576
#sysctl -p
修改文件描述符的限制
#vi /etc/security/limits.conf
or* soft nproc 16384
* hard nproc 16384
* soft nofile 65536
* hard nofile 65536
添加pam_limits.so 模块
vim /etc/pam.d/login 最后增加
session required pam_limits.so
创建用户和组并创建相应的密码
/usr/sbin/groupadd -g 501 oinstall
/usr/sbin/groupadd -g 502 dba
/usr/sbin/groupadd -g 503 oper
/usr/sbin/groupadd -g 504 asmadmin
/usr/sbin/groupadd -g 505 asmoper
/usr/sbin/groupadd -g 506 asmdba
/usr/sbin/useradd -g oinstall -Gdba,asmdba,oper oracle
/usr/sbin/useradd -g oinstall -Gasmadmin,asmdba,asmoper,oper,dba grid
echo oracle | passwd --stdin oracle
echo oracle | passwd --stdin grid
创建目录并设置相应权限
mkdir -p /u01/app/oracle
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/app/oracle
mkdir -p /u01/app/oracle/product/11.2.0/db_1
chown -R oracle:oinstall /u01/app/oracle/product/11.2.0/db_1
chmod -R 775 /u01/app/oracle/product/11.2.0/db_1
mkdir -p /u01/app/grid
chown -R grid.oinstall /u01/app/grid
chmod -R 775 /u01/app/grid
mkdir -p /u01/app/11.2.0/grid
chown -R grid:oinstall /u01/app/11.2.0/grid
chmod -R 775 /u01/app/11.2.0/grid
mkdir -p /u01/app/oraInventory
chown -R grid:oinstall /u01/app/oraInventory
chmod -R 775 /u01/app/oraInventory
mkdir -p /u01/oradata
mkdir -p /u01/shared_config
chown -R oracle:oinstall /u01/oradata
chown -R grid:oinstall /u01/shared_config
chmod -R 775 /u01/oradata /u01/shared_config
修改grid用户环境变量(第二台rac2)
#su - grid
$ vim /home/grid/.bash_profile
alias df='df -h'
alias du='du -sh'
alias la='ls -lha'
ORACLE_SID=NFS1; export ORACLE_SID
JAVA_HOME=/usr/local/java; export JAVA_HOME
ORACLE_BASE=/u01/app/grid; export ORACLE_BASE
ORACLE_HOME=/u01/app/11.2.0/grid; export ORACLE_HOME
ORACLE_PATH=/u01/app/oracle/common/oracle/sql;export ORACLE_PATH
ORACLE_TERM=xterm; export ORACLE_TERM
NLS_DATE_FORMAT="DD-MON-YYYYHH24:MI:SS"; export NLS_DATE_FORMAT
TNS_ADMIN=$ORACLE_HOME/network/admin;export TNS_ADMIN
ORA_NLS11=$ORACLE_HOME/nls/data; export ORA_NLS11
PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin
PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
PATH=${PATH}:/u01/app/common/oracle/bin
export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export CLASSPATH
THREADS_FLAG=native; export THREADS_FLAG
export TEMP=/tmp
export TMPDIR=/tmp
umask 022
修改oracle用户环境变量
Vim /etc/oracle/.bash_profile
alias df='df -h'
alias du='du -sh'
alias la='ls -lha'
ORACLE_SID=racdb1; export ORACLE_SID
ORACLE_UNQNAME=racdb; export ORACLE_UNQNAME
JAVA_HOME=/usr/local/java; export JAVA_HOME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1;export ORACLE_HOME
ORACLE_PATH=/u01/app/common/oracle/sql;export ORACLE_PATH
ORACLE_TERM=xterm; export ORACLE_TERM
NLS_DATE_FORMAT="DD-MON-YYYYHH24:MI:SS"; export NLS_DATE_FORMAT
TNS_ADMIN=$ORACLE_HOME/network/admin;export TNS_ADMIN
ORA_NLS11=$ORACLE_HOME/nls/data; export ORA_NLS11
PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin
PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
PATH=${PATH}:/u01/app/common/oracle/bin
export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export CLASSPATH
THREADS_FLAG=native; export THREADS_FLAG
export TEMP=/tmp
export TMPDIR=/tmp
umask 022
配置ssh双机信任(gird,oracle用户下都要配置)以oracle为例子
$ ssh-keygen -t rsa
$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys
拷贝.ssh 目录到rac2 并修改文件权限 chmod 0600 ~/.ssh/*
在grid和oracle用户下,二台机器测试是否正常
ssh rac1 date
ssh rac2 date
以上操作需要在二台机器都要操作,注意本机也要执行,信任本机
在nfs服务器,配置nfs server
#mkdir -p /shared_config
#mkdir -p /shared_data
#vi /etc/exports 设置共享
/shared_config *(rw,sync,no_wdelay,insecure_locks,no_root_squash)
/shared_data *(rw,sync,no_wdelay,insecure_locks,no_root_squash)
#chkconfig nfs on开启nfs服务
#service nfs restart
在rac服务器执行shoumount -e nas1 看挂载点是否正常
配置rac和rac2 服务器
#vi /etc/fstab添加以下开机挂载共享目录
nas1:/shared_config /u01/shared_config nfs rw,bg,hard,nointr,noac,tcp,vers=3,timeo=600,rsize=32768,wsize=32768,actimeo=0 0 0
nas1:/shared_data /u01/oradata nfs rw,bg,hard,nointr,tcp,vers=3,timeo=600,rsize=32768,wsize=32768,actimeo=0 0 0
挂载相应的目录
chown grid:oinstall /u01/shared_config
chown oracle:oinstall /u01/oradata
chmod 775 /u01/oradata
chmod 775 /u01/app/11.2.0/grid
在rac1 安装grid软件
[]:/mnt/grid/runInstall
#su – grid
$
/mnt/grid/runcluvfy.sh stage -pre crsinst -n rac1,rac2 -fixup -verbose | grep -C 2 fail
如果最后提示:集群服务设置的预检查成功.可以开始去安装 grid 否则请查看失败在什么地方解决后再次执行该命令行来检查.
在rac1服务器,切换到grid 用户,开始安装grid
[grid@rac1 ~]$ /mnt/grid/runInstaller
选择安装类型
其余步骤使用默认配置,等待安装完成即可。
有两个错误可以跳过。
Grid安装完成,需要分别在rac1和rac执行root.sh ,注意必须是在rac1 执行完成后,这个 /u01/app/11.2.0/grid/root.sh 执行时间很长,再到rac2执行。
以下检查,最好在二台机器上都进行操作;
检查crs状态:
[grid@rac1 ~]$ crsctl check crs
CRS-4638: Oracle High Availability Servicesis online
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Servicesis online
CRS-4533: Event Manager is online
检查集群节点
[grid@rac1 ~]$ olsnodes -n
rac1 1
rac2 2
检查监听器进程
[grid@rac1 ~]$ srvctl status listener
监听程序 LISTENER 已启用
监听程序 LISTENER 正在节点上运行: rac1,rac2
检查Oracle ASM
[grid@rac1 ~]$ srvctl status asm -a
ASM 正在 rac1,rac2上运行
ASM 已启用。
检查OCR
[grid@rac1 ~]$ ocrcheck
Status of Oracle Cluster Registry is asfollows :
Version: 3
Total space (kbytes): 262120
Used space (kbytes): 2248
Available space (kbytes) : 259872
ID : 1968086688 Device/File Name: +OCR_VOTE
Device/File integrity check succeededDevice/File not configured Device/File not configured Device/File notconfigured Device/File not configured
Cluster registry integrity check succeeded
Logical corruption check bypassed due tonon-privileged user
检查表决磁盘
[grid@rac1 ~]$ crsctl query css votedisk
## STATE File Universal Id File Name Diskgroup
-- ----- ----------------- ------------------
ONLINE 433b29a662934f14bf5ce26f5c5f1bbf (ORCL:OCR_VOTE01) [OCR_VOTE]
以oracle用户身份登录RAC1主节点,对解压后的文件安装
[oracle@rac1 ~]$ unziplinux.x64_11gR2_database_1of2.zip
[oracle@rac1 ~]$ unziplinux.x64_11gR2_database_2of2.zip
[oracle@rac1 ~]$ cd database/
[oracle@rac1 database]$ ./runInstaller
至此,oracle 11gr2 rac安装完成,可以使用plsql进行连接测试即可
不选择复选框security updates checkbox,下一步.
选择"Create and configure a database" ,下一步.(选择创建数据库同时创建数据仓库,采用官方建议)
选择"Server Class" ,下一步.(如果单纯在linux下进行oracle,非集群环境下亦可)
选择所有节点,配置ssh,下一步.(ssh负责多节点间通信,即配置主节点所有子节点同步)
选择 "Typical install" ,下一步.(这个正常安装也常见,普通安装和高级安装)
输入 "/u01/app/oracle/product/11.2.0/db_1" 作为路径. 文件设置"/u01/oradata". 设定数据库用户名,密码。数据库自行命名"RAC.localdomain".(地址预先规划的,特别新手对linux不熟悉,很多路径难以管理)
等待安装,中间遇到问题忽略,下一步
看到如下界面,选择完成.
等待安装.
自动弹出创建数据仓库DBCA.(这个DBCA就是所谓狭义数据库,里面可以创建表空间,表,视图等)
完成数据仓库安装,选择OK,继续安装.
出现如下提示,在所有结点下以root身份登录,全部结点执行以下两句脚本.(这个上篇集群配置有介绍,不详述)
选择关闭,完成安装.
以上对整个数据库配置,本篇比较容易,包括集群安装也是。重点难点还是对安装前配置比较麻烦,步骤比较多,重点心细。
robinhunan 发布了67 篇原创文章 · 获赞 9 · 访问量 10万+ 私信 关注