Oracle-RAC1

Oracle RAC搭建步骤与流程

一、环境配置

1、系统环境

系统:Oracle Linux 6    2台,CentOS7  1台
ORACLE:12.1.0     DATABASE、GRID

2、IP地址分配

Public IP
rac1.example.com  rac1	  Public IP  192.168.10.31
rac2.example.com  rac2	  Public IP  192.168.10.32
Virtual IP
rac1-vip.example.com rac1	Virtual IP	192.168.10.33
rac2-vip.example.com rac2	Virtual IP	192.168.10.34
Private IP
rac1-priv.example.com rac1-priv  Private IP 192.168.20.31
rac2-priv.example.com rac2-priv  Private IP 192.168.20.32
SCAN IP
scan-cluster-example.com scan-cluster  SCAN IP  192.168.10.30
DNS
dns.example.com	dns	192.168.10.36

注意:
1、scanIP名不能有下划线,否则有可能在安装rac会报错
2、scanIP要与 Public IP 在同一网段。

3、RAC共享磁盘的分配

VOTE:	 GRIDDG   asm磁盘组  	50G 	设备节点:SCSI 0:1
OCR:	 GRIDDG   asm磁盘组		200G	设备节点:SCSI 0:2
FLASH:	 FLASH	  asm磁盘组		100G	设备节点:SCSI 0:3
DATA:	 DATA	  asm磁盘组		200G	设备节点:SCSI 0:4

注:实验环境均20G
关于如何在VMware配置共享磁盘查看 VMware RAC共享磁盘 笔记

4、oracle、grid环境变量配置

RAC1节点:
oracle用户:ORACLE_SID=orcl1  ORACLE_UNQNAME=orcl 
ORACLE_HOSTNAME=rac1.example.com
grid用户:ORACLE_SID=+ASM1
RAC2节点:
oracle用户:ORACLE_SID=orcl2  ORACLE_UNQNAME=orcl
ORACLE_HOSTNAME=rac2.example.com
grid用户:ORACLE_SID=+ASM2

5、oracle、grid等用户的创建

groupadd oinstall
groupadd dba
groupadd asmadmin
groupadd asmdba
groupadd asmoper
useradd -g oinstall -G asmadmin,asmdba,asmoper,dba grid
useradd -g oinstall -G dba,asmdba oracle
passwd grid
passwd oracle

以下为oracle脚本范例,请在各个节点下修改后并执行:注意:RAC双节点的ORACLE_UNQNAME是相同的

cat >> /home/oracle/.bash_profile << "EOF"  
export PS1="$LOGNAME@`/bin/hostname -s`->" 
export TMP=/tmp export TMPDIR=$TMP 
export ORACLE_HOSTNAME=rac1.example.com
export ORACLE_SID=orcl1 
export ORACLE_BASE=/u01/app/oracle 
export ORACLE_HOME=$ORACLE_BASE/product/12.1.0/db_1 
export ORACLE_UNQNAME=orcl
export TNS_ADMIN=$ORACLE_HOME/network/admin 
export ORACLE_TERM=xterm export PATH=/usr/sbin:$PATH 
export PATH=$ORACLE_HOME/bin:$PATH 
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib 
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib 
export EDITOR=vi 
export LANG=en_US 
export NLS_LANG=american_america.AL32UTF8 
export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss' 
umask 022 EOF

以下为grid脚本范例,请在各个节点下修改后并执行:

cat >> /home/grid/.bash_profile << "EOF"
export PS1="$LOGNAME@`/bin/hostname -s`->"
export TMP=/tmp export TMPDIR=$TMP 
export ORACLE_SID=+ASM1
export ORACLE_BASE=/u01/app/grid 
export ORACLE_HOME=/u01/app/12.1.0/grid 
export ORACLE_TERM=xterm 
export NLS_DATE_FORMAT='yyyy/mm/dd hh24:mi:ss'
export TNS_ADMIN=$ORACLE_HOME/network/admin 
export PATH=/usr/sbin:$PATH 
export PATH=$ORACLE_HOME/bin:$PATH 
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib 
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib 
export EDITOR=vi 
export LANG=en_US 
export NLS_LANG=american_america.AL32UTF8 
umask 022 EOF

rac1 oracle 环境变量

rac1 grid环境变量

rac2 oracle环境变量

rac2 grid环境变量

6、创建对用目录

mkdir -p /u01/app/grid 
mkdir -p /u01/app/12.1.0/grid 
mkdir -p /u01/app/oracle 
chown -R oracle:oinstall /u01 
chown -R grid:oinstall /u01/app/grid 
chown -R grid:oinstall /u01/app/12.1.0 
chmod -R 775 /u01

7、配置os级别的参数

/etc/sysctl.conf /etc/security/limits.conf,这边不详细列出与其他版本安装类似。
/etc/sysctl.conf 配置如下,由于是测试,我这边是4G内存所以在安装数据库时要将内存分配的少一些,否则数据库创建会失败.

cat>>/etc/sysctl.conf<< EOF 
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 419430
kernel.shmmax = 2147483648
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.panic_on_oops = 1
EOF

/etc/security/limits.conf配置如下
cat>>/etc/security/limits.conf<< EOF 
oracle         soft    nproc           2047 
oracle         hard    nproc           16384 
oracle         soft    nofile          1024 
oracle         hard    nofile          65536
oracle         soft    memlock         3145728
oracle         hard    memlock         3145728
grid           soft    nproc           2047 
grid           hard    nproc           16384 
grid           soft    nofile          1024 
grid           hard    nofile          65536 
EOF

/etc/sysconfig/network配置添加如下参数

echo "NOZEROCONF=yes"  >> /etc/sysconfig/network

8、安装oracle节点依赖包

yum install -y binutils* 
yum install -y compat-libstdc* 
yum install -y elfutils-libelf* 
yum install -y gcc* 
yum install -y glibc* 
yum install -y ksh* 
yum install -y libaio* 
yum install -y libgcc* 
yum install -y libstdc* 
yum install -y libXp* 
yum install -y make* 
yum install -y numactl-devel* 
yum install -y sysstat* 
yum install -y smartmontools* 

二、HOST及DNS服务器配置

1、修改每个节点下的/etc/hosts文件

2、修改每个节点 /etc/sysconfig/network-scripts/ifcfg-eth0文件,DNS1指向dns服务器,由于一些系统版本重启后resolv.conf文件内容会被清空

3、dns服务器安装及配置

yum install bind* -y

修改/etc/named.conf文件,将一些值修改成any

修改/etc/named.rfc1912.zones添加正反解析

修改完成后使用命令检查配置文件是否写错,若没有错误信息表示更改没有语法错误

在/var/named下创建正反解析文件,

注意:
1、属主属组为named
2、创建的解析文件要与file参数写的名字相同。
3、这边由于后期搭建了DG,为了方便添加了该信息,若只是搭建RAC,DG的dns不需要配置
正向解析文件example.com.zone如下:

反向解析文件 10.168.192.in-addr.arpa

反向解析文件 20.168.192.in-addr.arpa

重启dns服务

systemctl  restart named  或者是 service named restart

使用nslookup在各个服务器上做测试,上述添加的dns配置是否正确,这边就列出scan-cluster是否能够解析。

三、配置ssh证书认证

配置RAC双节点的ssh对等性 使其不用输入密码就能互相访问 oracle、grid用户都需要

ssh-keygen -t rsa
ssh-keygen -t dsa

参考之前写的SSH文档配置即可

四、安装cvuqdisk-1.0.9-1.rpm,两个rac节点都需要安装。解压grid安装包后,在rpm目录下。

五、ASM磁盘配置,使用以下脚本配置ASM磁盘(该脚本不支持CentOS7,主要是CentOS7没有scsi_id命令,需要将该段命令进行更改)

echo "options=--whitelisted --replace-whitespace"  >> /etc/scsi_id.config
for i in b c d e  ;
do
echo "KERNEL==\"sd*\", BUS==\"scsi\", PROGRAM==\"/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/\$name\", RESULT==\"`/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i`\", NAME=\"asm-disk$i\", OWNER=\"grid\", GROUP=\"asmadmin\", MODE=\"0660\""      >> /etc/udev/rules.d/99-oracle-asmdevices.rules
done

注:由于是虚拟机环境,若/sbin/scsi_id –whitelisted –replace-whitespace –device=/dev/sda 若该命令没有输出结构,需要修改你的vmx文件添加如下参数才能实现共享磁盘以及获取UUID

disk.EnableUUID = "TRUE"
disk.locking = "FALSE" 
diskLib.dataCacheMaxSize= "0" 
scsi2.sharedBus ="virtual"
diskLib.dataCacheMaxReadAheadSize = "0"
diskLib.DataCacheMinReadAheadSize = "0"
diskLib.dataCachePageSize = "4096"
diskLib.maxUnsyncedWrites = "0"

重启udev

/sbin/start_udev 
ll /dev|grep sd   --除sda外,其他sd*磁盘信息不见了
ll /dev|grep asm  --出现了asm磁盘

六、rac双节点关闭ntp服务器

service ntpd stop
chkconfig ntpd off
mv /etc/ntp .conf  /etc/ntp.conf.bak

七、su到grid用户,使用grid安装报下的检查脚本,检查安装前环境

./runcluvfy.sh stage -pre crsinst -n rac1,rac2 -fixup -verbose

当报错后oracle最后会生成一个脚本/tmp/CVU_12.1.0.2.0_grid/runfixup.sh,需要手工在每个节点下以root用户执行。

八、安装Grid

./runInstaller

确认网络接口,严格按照网络规划来

若是找不到磁盘以/dev/asm* 通配符来查找,由于前面的udev脚本设置的磁盘名称为 asm-disk

输入ASM磁盘组名,这里命名为GRIDDG,冗余策略选择External外部,AU 大小选择默认4M,ASM磁盘选择 ASM-DISKB,ASM-DISKC (该磁盘名字是由udev配置,实际是vote这块磁盘和OCR磁盘)

注:ASM在分配空间时,以 AU 为单位进行,AU 即 Allocation units,是组成ASM disk的基本单元。在 Oracle 10gR2 中,ASM AU 的缺省单位大小是 1M,相应的条带大小是 128K,11g建议AU为4M。在ASM中,可以通过调整 _asm_ausize 隐含参数的大小来进行调整,_asm_stripesize 控制相应的条带化参数

设置oracle sys等用户的账号密码

选择不使用IPMI,Next

EM生产环境不建议安装

选择GRID软件的安装路径,其中ORACLE_BASE,ORACLE_HOME均选择之前已经配置好的。这里需要注意GRID软件的ORACLE_HOME不能是ORACLE_BASE的子目录。

配置了这个后,可以使软件自动跑安装过程中的脚本,不需要人工干预

由于我只给了4G内存一台机器会报出这个警告,可以跳过。

需要在两个节点上使用root用户执行该脚本,注意:第一个节点执行成功后才能够执行第二个节点,这个执行过程时间比较长需要耐心等待。

九、安装Database软件

./runInstaller

执行脚本

十、ASMCA创建磁盘组

asmca命令

进入ASMCA配置界面后,单击Create,创建新的磁盘组:

1、配置DATA磁盘,前面的规划使/dev/asm-diske为DATA磁盘

输入磁盘组名 DATA,冗余策略选择External,磁盘选择/dev/asm-diske,单击OK

2、配置FLASH磁盘,前面的规划使/dev/asm-disk为FLASH磁盘

十一、配置ORACLE RAC 数据库

dbca命令

Configuration type 选择 Admin-Managed

选择所有rac节点。

分别选择数据文件和闪回区存储位置。

oracle11g 版本中自动化内存管理(Automatic Memory Management,AMM) . 如果 DBA 真的想偷懒的话,只需要设 定两个参数就可以把烦心的事情都交给 Oracle 折腾了(只要 DBA 足够心宽)。PGA 与 SGA 一起搞定。这两个参数分别是: ➢ MEMORY_TARGET–操作系统的角度上 Oracle 所能使用的最大内存值。动态参数 ➢ MEMORY_MAX_TARGET–MEMORY_TARGET所能设定的最大值。非动态可调

“Processes”默认值150修改为1000,点“Character Sets” 继续设定初始化参数 BTW:根据ORACLE官方文档提示Processes=普通后台进程+最大共享服务器的进程数(max_shared_servers) + 最 大Dispatcher进程数(max_dispatchers)。计算公式一般为SESSIONS = PROCESSES X 1.1 + 5 6

至此,我们完成创建RAC数据库(注意:由于内存不足,最后只能启动一个节点。环境搭建建议单台虚拟机使用8G)

十二、tnsname客户端的配置。

1、查看服务端的local_listener和remote_listener参数

节点1 Oracle用户登录 sqlplus / as sysdba

节点2 Oracle用户登录 sqlplus / as sysdba

2、tnsname配置,创建三个tnsname客户端配置

ORCL为scanip连接,ORCL1和ORCL2分别是节点1和节点2的固定连接。

Contents
  1. 1. Oracle RAC搭建步骤与流程
  2. 2. 一、环境配置
    1. 2.1. 1、系统环境
    2. 2.2. 2、IP地址分配
    3. 2.3. 3、RAC共享磁盘的分配
    4. 2.4. 4、oracle、grid环境变量配置
    5. 2.5. 5、oracle、grid等用户的创建
    6. 2.6. 6、创建对用目录
    7. 2.7. 7、配置os级别的参数
    8. 2.8. 8、安装oracle节点依赖包
  3. 3. 二、HOST及DNS服务器配置
    1. 3.1. 1、修改每个节点下的/etc/hosts文件
    2. 3.2. 2、修改每个节点 /etc/sysconfig/network-scripts/ifcfg-eth0文件,DNS1指向dns服务器,由于一些系统版本重启后resolv.conf文件内容会被清空
    3. 3.3. 3、dns服务器安装及配置
  4. 4. 三、配置ssh证书认证
  5. 5. 四、安装cvuqdisk-1.0.9-1.rpm,两个rac节点都需要安装。解压grid安装包后,在rpm目录下。
  6. 6. 五、ASM磁盘配置,使用以下脚本配置ASM磁盘(该脚本不支持CentOS7,主要是CentOS7没有scsi_id命令,需要将该段命令进行更改)
  7. 7. 六、rac双节点关闭ntp服务器
  8. 8. 七、su到grid用户,使用grid安装报下的检查脚本,检查安装前环境
  9. 9. 八、安装Grid
  10. 10. 九、安装Database软件
  11. 11. 十、ASMCA创建磁盘组
    1. 11.1. 1、配置DATA磁盘,前面的规划使/dev/asm-diske为DATA磁盘
    2. 11.2. 2、配置FLASH磁盘,前面的规划使/dev/asm-disk为FLASH磁盘
  12. 12. 十一、配置ORACLE RAC 数据库
  13. 13. 十二、tnsname客户端的配置。
    1. 13.1. 1、查看服务端的local_listener和remote_listener参数
    2. 13.2. 2、tnsname配置,创建三个tnsname客户端配置
|