1、RAC环境设计
1.服务器配置
操作系统 | 主机名 | 内存 | 网卡 |
Linux 5.8 | rac1 | 2G | eth0(Public) |
eth1(Prive) | |||
Linux 5.8 | rac2 | 2G | eth0(Public) |
eth1(Prive) |
GroupName | GroupID | 说明 | HOST |
oinstall | 501 | Oracle清单和软件所有者 | rac1,rac2 |
asmadmin | 504 | Oracle自动存储管理组 | rac1,rac2 |
asmdba | 506 | ASM数据库管理员组 | rac1,rac2 |
asmopen | 507 | ASM操作员组 | rac1,rac2 |
dba | 502 | 数据库管理员 | rac1,rac2 |
UserID | UserName | Group | 说明 | HOST | 口令 |
501 | grid | oinstall dba asmadmin asmdba asmoper | Oracle Cluster 用户 | rac1 rac2 | oracle |
502 | oracle | oinstall dba asmdba | Oracle数据库管理员 | rac1 rac2 | oracle |
主机名 | 公有IP | 私有IP | 虚拟IP |
rac1 | 139.0.0.10 | 10.10.10.211 | 139.0.0.12 |
rac2 | 139.0.0.11 | 10.10.10.212 | 139.0.0.13 |
scanIP | 139.0.0.100 |
存储组件 | Block Device | ASMlib Name | Size |
OCR | /dev/sdb | DISK01 | 1G |
/dev/sdc | DISK02 | 1G | |
/dev/sdd | DISK03 | 1G | |
数据文件 | /dev/sde | DISK04 | 10G |
/dev/sdf | DISK05 | 10G | |
文件备份 | /dev/sdg | DISK06 | 10G |
1.安装依赖包
配置好yum源,挂载好磁盘镜像,所有节点都执行安装
yum install -y expect* iscsi* binutils* compat-libstdc++* expat* elfutils-libelf* gcc* glibc* ksh* libgcc*
yum install -y pdksh* libgomp* compat-db* libXp* libaio* cpp* setarch* sysstat* libstdc++* make-3*
yum install -y unixODBC
yum install -y unixODBC-devel
2.网络配置
(1)使用setup直接修改ip或者vi编辑/etc/sysconfig/network里面的eth0和eth1文件
(2)修改rac1和rac2的hosts
vi /etc/hosts
###eth0-Public IP###
139.0.0.10 rac1
139.0.0.11 rac2
###eth1–PRIVATE IP###
10.10.10.211 rac1-priv
10.10.10.212 rac2-priv
###VIP###
139.0.0.12 rac1-vip
139.0.0.13 rac2-vip
###SCAN###
139.0.0.100 rac-cluster-scan
(3)重启rac1和rac2的网络服务
service network restart
3.配置NTPD服务
(1)修改NTPD参数文件(rac1,rac2)
vi /etc/sysconfig/ntpd
SYNC_HWCLOCK=yes
OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid"
(2)修改rac1的ntpd.conf文件,删除原有内容录入以下内容
cp /etc/ntp.conf /etc/ntp.conf.bak
vi /etc/ntp.conf
restrict 0.0.0.0 mask 0.0.0.0 nomodify
server 127.127.1.0
fudge 127.127.1.0 stratum 10
restrict 127.127.1.0
driftfile /var/lib/ntp/drift
broadcastdelay 0.008
authenticate no
keys /etc/ntp/keys
(3)清空rac1的ntpservers原有内容
cp /etc/ntp/ntpservers /etc/ntp/ntpservers.bak
vi /etc/ntp/ntpservers
(4)编辑rac1的step-tickers,添加一行
cp /etc/ntp/step-tickers /etc/ntp/step-tickers.bak
vi /etc/ntp/step-tickers
127.127.1.0
(5)修改rac2的ntpd.conf文件,删除原有内容录入以下内容
cp /etc/ntp.conf /etc/ntp.conf.bak
vi /etc/ntp.conf
restrict 0.0.0.0 mask 0.0.0.0 nomodify
server 127.127.1.0
server 172.16.1.211
fudge 127.127.1.0 stratum 10
driftfile /var/lib/ntp/drift
broadcastdelay 0.008
authenticate no
keys /etc/ntp/keys
(6)清空rac2的ntpservers原有内容
cp /etc/ntp/ntpservers /etc/ntp/ntpservers.bak
vi /etc/ntp/ntpservers
(7)编辑rac2的step-tickers,添加一行
cp /etc/ntp/step-tickers /etc/ntp/step-tickers.bak
vi /etc/ntp/step-tickers
139.0.0.10 #rac1的ip地址
(8)rac1节点重启NTPD服务
service ntpd restart
(9)rac2节点停止NTPD服务,rac1重启NTPD服务后5、6分钟再执行
service ntpd stop
ntpdate rac1
service ntpd start
(10)NTPD启用自动加载(rac1,rac2)
chkconfig ntpd on
4.用户、用户组
(1)创建用户和用户组
groupadd -g 501 oinstall
groupadd -g 502 dba
groupadd -g 504 asmadmin
groupadd -g 506 asmdba
groupadd -g 507 asmoper
useradd -u 501 -g oinstall -G dba,asmadmin,asmdba,asmoper grid
useradd -u 502 -g oinstall -G dba,asmdba oracle
id oracle
id grid
(2)修改用户密码
passwd grid
passwd oracle
5.文件夹及权限
mkdir -p /u01/app/grid/
mkdir -p /u01/app/11.2.0/grid/product/db_1
mkdir -p /u01/app/oraInventory
chown -R grid:oinstall /u01/app
mkdir -p /u01/app/oracle/product/11.2.0/db_1
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01
6.修改系统参数
(1)修改rac1和rac2的limits.conf
vi /etc/security/limits.conf
###ORACLE SETTING
grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536 131072
(2)修改rac1和rac2的/etc/pam.d/login
vi /etc/pam.d/login
###ORACLE SETTING
session required pam_limits.so
(3)修改rac1和rac2的/etc/sysctl.conf
vi /etc/sysctl.conf
###ORACLE SETTING
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
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
kernel.shmmax=17179869184
kernel.shmall=4194304
kernel.shmmni=4096
kernel.sem=250 32000 100 128
net.ipv4.ip_local_port_range=9000 65500
net.core.rmem_default=4194304
net.core.wmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_max=1048576
fs.aio-max-nr=1048576
fs.file-max=6815744
net.ipv4.conf.all.arp_ignore=1
(4)执行命令(rac1、rac2)
sysctl -p
(5)修改rac1和rac2的profile,在末尾添加
vi /etc/profile
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
(6)执行命令(rac1、rac2)
source /etc/profile
(7)修改rac1和rac2的/etc/csh.login
vi /etc/csh.login
if ( $USER = "oracle" || $USER = "grid" ) then
limit maxproc 16384
limit descriptors 65536
endif
EOFCSH
(8)修改grid用户的环境变量
rac1
su - grid
vi .bash_profile
export ORACLE_SID=+ASM1
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/11.2.0/grid/product/db_1
export PATH=$PATH:$ORACLE_HOME/bin
rac2
su - grid
vi .bash_profile
export ORACLE_SID=+ASM2
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/11.2.0/grid/product/db_1
export PATH=$PATH:$ORACLE_HOME/bin
(9)执行命令(rac1、rac2)
source .bash_profile
(10)修改oracle用户的环境变量
rac1
su - oracle
vi .bash_profile
export ORACLE_SID=PROD1
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export PATH=$PATH:$ORACLE_HOME/bin
rac2
su - oracle
vi .bash_profile
export ORACLE_SID=PROD2
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export PATH=$PATH:$ORACLE_HOME/bin
(11)执行命令(rac1、rac2)
source .bash_profile
7.配置SSH互信
(1)使用oracle用户,在所有节点执行
su –oracle
mkdir ~/.ssh
cd .ssh
ssh-keygen -t rsa
ssh-keygen -t dsa
在rac1上:
touch authorized_keys
ssh rac1 cat /home/oracle/.ssh/id_rsa.pub >> authorized_keys
ssh rac2 cat /home/oracle/.ssh/id_rsa.pub >> authorized_keys
ssh rac1 cat /home/oracle/.ssh/id_dsa.pub >> authorized_keys
ssh rac2 cat /home/oracle/.ssh/id_dsa.pub >> authorized_keys
ssh rac1-priv cat /home/oracle/.ssh/id_rsa.pub >> authorized_keys
ssh rac2-priv cat /home/oracle/.ssh/id_rsa.pub >> authorized_keys
ssh rac1-priv cat /home/oracle/.ssh/id_dsa.pub >> authorized_keys
ssh rac2-priv cat /home/oracle/.ssh/id_dsa.pub >> authorized_keys
scp authorized_keys rac2:/home/oracle/.ssh/
分别在rac1,rac2测试ssh互信
rac1
ssh ssh rac1 date
ssh rac2 date
ssh rac1-priv date
ssh rac2-priv date
rac2
ssh rac1 date
ssh rac2 date
ssh rac1-priv date
ssh rac2-priv date
(2)使用grid用户,在所有节点执行
su –grid
mkdir ~/.ssh
cd .ssh
ssh-keygen -t rsa
ssh-keygen -t dsa
在rac1上:
touch authorized_keys
ssh rac1 cat /home/grid/.ssh/id_rsa.pub >> authorized_keys
ssh rac2 cat /home/grid/.ssh/id_rsa.pub >> authorized_keys
ssh rac1 cat /home/grid/.ssh/id_dsa.pub >> authorized_keys
ssh rac2 cat /home/grid/.ssh/id_dsa.pub >> authorized_keys
ssh rac1-priv cat /home/grid/.ssh/id_rsa.pub >> authorized_keys
ssh rac2-priv cat /home/grid/.ssh/id_rsa.pub >> authorized_keys
ssh rac1-priv cat /home/grid/.ssh/id_dsa.pub >> authorized_keys
ssh rac2-priv cat /home/grid/.ssh/id_dsa.pub >> authorized_keys
scp authorized_keys rac2:/home/grid/.ssh/
分别在rac1,rac2测试ssh互信
rac1
ssh ssh rac1 date
ssh rac2 date
ssh rac1-priv date
ssh rac2-priv date
rac2
ssh rac1 date
ssh rac2 date
ssh rac1-priv date
ssh rac2-priv date
8.安装ASM
(1)检查系统及内核版本
uname -a
(2)下载与系统及内核版本对应的ASM,并安装
下载地址:
http://www.oracle.com/technetwork/server-storage/linux/downloads/index.html
例如:
rpm -ivh --nodeps oracleasmlib-2.0.4-1.el5.x86_.rpm
rpm -ivh --nodeps oracleasm-support-2.1.8-1.el5.x86_.rpm
rpm -ivh --nodeps oracleasm-2.6.18-1.el5-2.0.5-1.el5.x86_.rpm
rpm -ivh --nodeps oracleasm-2.6.18-1.el5-debuginfo-2.0.5-1.el5.x86_.rpm
rpm -ivh --nodeps oracleasm-2.6.18-1.el5debug-2.0.5-1.el5.x86_.rpm
rpm -ivh --nodeps oracleasm-2.6.18-1.el5xen-2.0.5-1.el5.x86_.rpm
如果操作系统为oracle版本的linux,直接使用yum安装即可
yum install -y oracleasm*
(3)初始化asmlib,在所有节点执行
oracleasm configure -i
[root@rac01 ~]# oracleasm configure -i
Configuring the Oracle ASM library driver.
This will configure the on-boot properties of the Oracle ASM library driver. The following questions will determine whether the driver is loaded on boot and what permissions it will have. The current values will be shown in brackets ('[]'). Hitting 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 (4)ASMlib加载到内核,在所有节点执行 /usr/sbin/oracleasm init (5)创建asm磁盘,在节点rac1执行 /usr/sbin/oracleasm createdisk DISK01 /dev/sdb /usr/sbin/oracleasm createdisk DISK02 /dev/sdc /usr/sbin/oracleasm createdisk DISK03 /dev/sdd /usr/sbin/oracleasm createdisk DISK04 /dev/sde /usr/sbin/oracleasm createdisk DISK05 /dev/sdf /usr/sbin/oracleasm createdisk DISK06 /dev/sdg oracleasm listdisks (6)rac2节点执行 /usr/sbin/oracleasm scandisks /usr/sbin/oracleasm listdisks 9.安装grid 前提条件是关闭selinux和iptables (1)以grid用户登录节点1,开始安装 cd /home/grid ./runInstaller 选择"Skip software updates" (2)选择第一个 (3)选择"Advanced installion" (4)添加中文语言 (5)将SCAN name修改为/etc/hosts中设置的SCAN的名称,其余按下图设置 (6)点击ADD,增加一个rac2和rac2-vip (7)输入grid用户的密码,然后选择test,出现如下提示即可点击"OK",然后选择"next" (8)如下图所示,默认即可 (9)选择asm,然后选择"next" (10)创建ASM磁盘组OCR (11)指定ASM口令 (12)默认,直接"Next" (13)默认,直接下一步 (14)指定安装路径 (15)创建产品清单 (16)安装检测完成后,发现有如下问题,选择"Fix & Check Again" (17)出现如下报错,在rac2和rac1上以root用户顺序执行"/tmp/CVU_11.2.0.3.0_grid/runfixup.sh" (18)执行完成后,点击ok,重新检测,勾选"Ingore ALL",然后选择"Next" (19)直接点击"Install"开始安装 (20)按照提示,在rac2和rac1上以root用户分别执行脚本,完成后点击ok,会继续安装 (21)即将完成的时候报如下错误,直接忽略,直接ok后点击next (22)出现如下截图,选择"Yes" (23)自此,Grid已经安装完成 10.配置ASM磁盘组 (1)输入asmca命令,创建DATADG,选择"Create" (2)创建DATA磁盘组 (3)创建BAKE磁盘组 (4)创建完成 11.安装ORACLE 11G (1)启动ORACLE安装程序,不勾选"I wish to receive security updates via My Oracle Support" su - oracle cd /database #安装包目录 ./runInstall (2)选择"skip software updates" (3)选择"Install database software only" (4)选择2个节点 (5)语音再多选一个简体中文 (6)选择"Enterprise Edition" (7)默认安装目录 (8)默认用户分配 (9)如果只出现如下截图的3个报错,可以忽略,如果有这3个报错之外的报错,需要处理 (10)选择"Install" (11)出现如下提示,按照提示依次以root用户在两个节点执行脚本 (12)至此,数据库软件已经安装完成 12.DBCA建库 (1)Oracle 用户登录rac1,直接输入dbca命令,选择"Oracle Real Application Clusters(RAC) database" (2)选择"Create a Database" (3)选择"Custom Database" (4)点击select all,选中rac1和rac2 (5)不勾选"Configure Enterprise Manager" (6)不勾选"Enable automatic mantienance tasks" (7)选择"Use the Same Administrator Password for All Accounts (8)选择+DATA作为数据文件存储路径 (9)输入ASM口令 (10)选择归档模式,添加归档参数+BACK (11)使用默认设置 (12)设置数据库参数SGA (13)根据需求选择字符集 (14)安装概述 (15)设置temp和undo表空间为不自动扩展,UNDOTBS1和UNDOTBS2设置方法同temp表空间设置的方法,空间大小自己依实际情况而定 (16)设置完成后,直接点击Finish,然后点击ok,开始 (17)开始安装数据库 (18)点击exit,自此,oracle rac已经安装完成