天天看点

手把手教你在 Linux 7 环境下部署 Oracle RAC!

前言

前面给大家分享了《手把手教你在 Linux 环境下部署 Oracle 数据库!》和《手把手教你 Oracle 数据库升级!》两篇文章。今天再来给大家分享一下在 Linux 7 环境下部署 Oracle RAC(11GR2版本)的详细步骤;

Oracle RAC 是什么?

Oracle Real Application Clusters (RAC) 允许客户跨多台服务器运行单个 Oracle 数据库,以最大限度地提高可用性并实现水平可扩展性,同时访问共享存储。连接到 Oracle RAC 实例的用户会话可以在中断期间进行故障转移并安全地重放更改,而无需对最终用户应用程序进行任何更改,从而对最终用户隐藏了中断的影响。

Oracle RAC 运行于集群之上,为 Oracle 数据库提供了最高级别的可用性、可伸缩性和低成本计算能力。如果集群内的一个节点发生故障,Oracle 将可以继续在其余的节点上运行。Oracle 的主要创新是一项称为高速缓存合并的技术。高速缓存合并使得集群中的节点可以通过高速集群互联高效地同步其内存高速缓存,从而最大限度地低降低磁盘 I/O。高速缓存最重要的优势在于它能够使集群中所有节点的磁盘共享对所有数据的访问,数据无需在节点间进行分区。

手把手教你在 Linux 7 环境下部署 Oracle RAC!

rac架构描述

特点:

  • 多台互连计算机组成,使用共享存储。
  • 用户无感知:对于最终用户和应用程序而言,它们似乎是一台服务器。
  • 高可用:只要有一个节点存活,就能正常对外提供服务,避免单点故障。
  • 高性能:多节点负载均衡。
  • 易伸缩:可以容易地添加、删除节点,以满足系统自身的调整。

如何部署一套 RAC 数据库环境?

大致步骤如下:

  • 安装两台redhat7.3版本Linux系统(物理内存至少2G)
  • 网络配置(双网卡,准备IP:Public IP,Virtual IP,Private IP,Scan IP)
  • 存储配置(6块5G共享盘做ASM盘,根目录留50G用于安装grid和oracle)
  • 预安装准备(系统参数/etc/sysctl.conf修改,防火墙selinux关闭,ntpd时钟定时同步,yum源配置安装、用户组及用户、目录新建,环境变量配置,用户资源限制/etc/security/limits.conf配置,/etc/pam.d/login修改pam_limits.so等等)
  • 安装Grid软件
  • 安装Oracle软件并建库
  • 修改数据库内存配置,密码不过期,开启归档,布置归档定时删除脚本,布置rman备份机制)
手把手教你在 Linux 7 环境下部署 Oracle RAC!

rac安装思维导图

本文主机配置为 Redhat 7.3 x86_64,内存2G,硬盘100G ,双网卡 ,iscsi共享存储盘5G*6。

手把手教你在 Linux 7 环境下部署 Oracle RAC!

注意:以下标题中(rac01&rac02)代表节点一和节点二都需要执行,(rac01)代表只需要节点一执行。

一、安装前的配置

1、Linux主机安装(rac01&rac02)

  • 安装Linux服务器可选择:Centos,Redhat,Oracle Linux。
  • RedHat下载:

    https://developers.redhat.com/products/rhel/download

  • OracleLinux下载:

    https://yum.oracle.com/oracle-linux-isos.html

  • Centos下载:

    https://vault.centos.org/

手把手教你在 Linux 7 环境下部署 Oracle RAC!

2、配置yum源并安装依赖包(rac01&rac02)

Linux远程连接工具、本文将使用XShell和Xftp工具,安装包可以在官网下载,其他工具也可以,比如:putty,SecureCRT 等等工具。

注意:需要提前挂载系统镜像iso。

Parallels Desktop挂载Linux主机镜像:

手把手教你在 Linux 7 环境下部署 Oracle RAC!

VMware Workstation挂载Linux镜像:

手把手教你在 Linux 7 环境下部署 Oracle RAC!

挂载镜像源

mount /dev/cdrom /mnt
           

复制

配置 yum 源

cat <<EOF>>/etc/yum.repos.d/local.repo
[local]
name=local
baseurl=file:///mnt
gpgcheck=0
enabled=1
EOF
           

复制

安装依赖包

yum groupinstall -y "Server with GUI"
yum install -y bc \
binutils \
compat-libcap1 \
compat-libstdc++-33 \
gcc \
gcc-c++ \
elfutils-libelf \
elfutils-libelf-devel \
glibc \
glibc-devel \
ksh \
libaio \
libaio-devel \
libgcc \
libstdc++ \
libstdc++-devel \
libxcb \
libX11 \
libXau \
libXi \
libXtst \
libXrender \
libXrender-devel \
make \
net-tools \
nfs-utils \
smartmontools \
sysstat \
e2fsprogs \
e2fsprogs-libs \
fontconfig-devel \
expect \
unzip \
openssh-clients \
readline* \
tigervnc* \
psmisc --skip-broken
           

复制

手动上传并安装依赖包

rpm -ivh compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
rpm -e ksh-20120801-142.el7.x86_64
rpm -ivh pdksh-5.2.14-37.el5.x86_64.rpm
           

复制

检查依赖包安装情况

rpm -q bc binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ elfutils-libelf elfutils-libelf-devel glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libxcb libX11 libXau libXi libXtst libXrender libXrender-devel make net-tools nfs-utils smartmontools sysstat e2fsprogs e2fsprogs-libs fontconfig-devel expect unzip openssh-clients readline | grep "not installed"
           

复制

3、网络配置

rac01:

配置Public IP

nmcli connection modify eth0 ipv4.addresses 192.168.56.10/24 ipv4.gateway 192.168.56.1 ipv4.method manual autoconnect yes
           

复制

配置Private IP

nmcli connection modify eth1 ipv4.addresses 172.0.0.1/24 ipv4.method manual autoconnect yes
           

复制

生效

nmcli connection up eth0
nmcli connection up eth1
           

复制

rac02:

配置Public IP

nmcli connection modify eth0 ipv4.addresses 192.168.56.11/24 ipv4.gateway 192.168.56.1 ipv4.method manual autoconnect yes
           

复制

配置Private IP

nmcli connection modify eth1 ipv4.addresses 172.0.0.2/24 ipv4.method manual autoconnect yes
           

复制

生效

nmcli connection up eth0
nmcli connection up eth1
           

复制

4、存储配置(rac01&rac02)

iscsi识别共享存储

yum install -y iscsi-initiator-utils*
           

复制

输出targetname,10.211.55.18为iscsi共享存储设备IP地址

iscsiadm -m discovery -t st -p 10.211.55.18
           

复制

连接共享存储

iscsiadm -m node -T iqn.2008-08.com.starwindsoftware:10.211.55.18-lucifer -p 10.211.55.18 -l lsblk
           

复制

安装multipath

yum install -y device-mapper*
mpathconf --enable --with_multipathd y
           

复制

查看共享盘的scsi_id

/usr/lib/udev/scsi_id -g -u /dev/sdb
/usr/lib/udev/scsi_id -g -u /dev/sdc
/usr/lib/udev/scsi_id -g -u /dev/sdd
/usr/lib/udev/scsi_id -g -u /dev/sde
/usr/lib/udev/scsi_id -g -u /dev/sdf
/usr/lib/udev/scsi_id -g -u /dev/sdg
           

复制

配置multipath,wwid的值为上面获取的scsi_id,alias可自定义,这里配置3块OCR盘,3块DATA盘

cat <<EOF>/etc/multipath.conf
defaults {
    user_friendly_names yes
}

blacklist {
  devnode "^sda"
}

multipaths {
  multipath {
  wwid "27e2b3ddbd14752bb"
  alias ocr_1
  }
  multipath {
  wwid "27e2b3ddb87ff88ee"
  alias ocr_2
  }
  multipath {
  wwid "27e2b3ddb39fd2463"
  alias ocr_3
  }
  multipath {
  wwid "2852b96c1283206bf6"
  alias data_1
  }
  multipath {
  wwid "2852b96c12e8449cb9"
  alias data_2
  }
  multipath {
  wwid "2852b96c12fc938e95"
  alias data_3
  }
}
EOF
           

复制

激活multipath多路径

multipath -F
multipath -v2
multipath -ll
           

复制

配置UDEV绑盘

for i in ocr_* data_*; do
    printf "%s %s\n" "$i" "$(udevadm info --query=all --name=/dev/mapper/"$i" | grep -i dm_uuid)" >>/dev/mapper/udev_info
done
while read -r line; do
    dm_uuid=$(echo "$line" | awk -F'=' '{print $2}')
    disk_name=$(echo "$line" | awk '{print $1}')
    echo "KERNEL==\"dm-*\",ENV{DM_UUID}==\"${dm_uuid}\",SYMLINK+=\"asm_${disk_name}\",OWNER=\"grid\",GROUP=\"asmadmin\",MODE=\"0660\"" >>/etc/udev/rules.d/99-oracle-asmdevices.rules
done </dev/mapper/udev_info
           

复制

重载udev

udevadm control --reload-rules
udevadm trigger --type=devices
           

复制

5、hosts文件配置(rac01&rac02)

cat <<EOF>>/etc/hosts
#Public IP
192.168.56.10 rac01
192.168.56.11 rac02

#Private IP
172.0.0.1 rac01-priv
172.0.0.2 rac02-priv

#Vip IP
192.168.56.20 rac01-vip
192.168.56.21 rac02-vip

#Scan IP
192.168.56.110 rac-scan
EOF
           

复制

6、防火墙配置(rac01&rac02)

systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl status firewalld.service
           

复制

手把手教你在 Linux 7 环境下部署 Oracle RAC!

7、SELinux配置(rac01&rac02)

##重启后生效
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
##重启后检查
getenforce
           

复制

手把手教你在 Linux 7 环境下部署 Oracle RAC!

8、时间同步配置(rac01&rac02)

##禁用chronyd
yum install -y chrony
timedatectl set-timezone Asia/Shanghai
systemctl stop chronyd.service
systemctl disable chronyd.service

##禁用ntpd
yum install -y ntpdate

##10.211.55.200为时间服务器IP,每天12点同步系统时间
cat <<EOF>>/var/spool/cron/root
00 12 * * * /usr/sbin/ntpdate -u 10.211.55.200 && /usr/sbin/hwclock -w
EOF

##查看计划任务
crontab -l

##手动执行
/usr/sbin/ntpdate -u 10.211.55.200 && /usr/sbin/hwclock -w
           

复制

手把手教你在 Linux 7 环境下部署 Oracle RAC!

9、关闭透明大页和NUMA(rac01&rac02)

##关闭透明大页和numa,重启生效
sed -i 's/quiet/quiet transparent_hugepage=never numa=off/' /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg

##重启后检查是否生效
cat /sys/kernel/mm/transparent_hugepage/enabled
cat /proc/cmdline
           

复制

手把手教你在 Linux 7 环境下部署 Oracle RAC!

10、avahi-daemon配置(rac01&rac02)

yum install -y avahi*
systemctl stop avahi-daemon.socket
systemctl stop avahi-daemon.service
pgrep -f avahi-daemon | awk '{print "kill -9 "$2}'
##配置NOZEROCONF=yes
cat <<EOF>>/etc/sysconfig/network
NOZEROCONF=yes
EOF
           

复制

手把手教你在 Linux 7 环境下部署 Oracle RAC!

11、系统参数配置(rac01&rac02)

##配置参数文件
memTotal=$(grep MemTotal /proc/meminfo | awk '{print $2}')
totalMemory=$((memTotal / 2048))
shmall=$((memTotal / 4))
if [ $shmall -lt 2097152 ]; then
    shmall=2097152
fi
shmmax=$((memTotal * 1024 - 1))
if [ "$shmmax" -lt 4294967295 ]; then
    shmmax=4294967295
fi
cat <<EOF>>/etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = $shmall
kernel.shmmax = $shmmax
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
net.ipv4.conf.eth0.rp_filter = 1
net.ipv4.conf.eth1.rp_filter = 2
EOF

##生效
sysctl -p
           

复制

手把手教你在 Linux 7 环境下部署 Oracle RAC!

12、系统资源限制配置(rac01&rac02)

##配置limits.conf
cat <<EOF>>/etc/security/limits.conf
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
oracle soft nproc 2047
oracle hard nproc 16384
oracle hard memlock 134217728
oracle soft memlock 134217728

grid soft nofile 1024
grid hard nofile 65536
grid soft stack 10240
grid hard stack 32768
grid soft nproc 2047
grid hard nproc 16384
EOF

##配置pam.d/login
cat <<EOF>>/etc/pam.d/login
session required pam_limits.so 
session required /lib64/security/pam_limits.so
EOF
           

复制

手把手教你在 Linux 7 环境下部署 Oracle RAC!
手把手教你在 Linux 7 环境下部署 Oracle RAC!

13、用户及组、目录创建(rac01&rac02)

##组创建
/usr/sbin/groupadd -g 54321 oinstall
/usr/sbin/groupadd -g 54322 dba
/usr/sbin/groupadd -g 54323 oper
/usr/sbin/groupadd -g 54324 backupdba
/usr/sbin/groupadd -g 54325 dgdba
/usr/sbin/groupadd -g 54326 kmdba
/usr/sbin/groupadd -g 54327 asmdba
/usr/sbin/groupadd -g 54328 asmoper
/usr/sbin/groupadd -g 54329 asmadmin
/usr/sbin/groupadd -g 54330 racdba

##用户创建
/usr/sbin/useradd -u 11012 -g oinstall -G asmadmin,asmdba,asmoper,dba,racdba,oper grid
/usr/sbin/useradd -u 54321 -g oinstall -G asmdba,dba,backupdba,dgdba,kmdba,racdba,oper oracle

##修改用户密码为oracle
echo "oracle" |passwd oracle --stdin
echo "oracle" |passwd grid --stdin

##创建软件目录
mkdir -p /u01/app/11.2.0/grid
mkdir -p /u01/app/grid
mkdir -p /u01/app/oracle/product/11.2.0/db
mkdir -p /u01/app/oraInventory
mkdir -p /backup
mkdir -p /home/oracle/scripts
chown -R oracle:oinstall /backup
chown -R oracle:oinstall /home/oracle/scripts
chown -R grid:oinstall /u01
chown -R grid:oinstall /u01/app/grid
chown -R grid:oinstall /u01/app/11.2.0/grid
chown -R grid:oinstall /u01/app/oraInventory
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01
           

复制

手把手教你在 Linux 7 环境下部署 Oracle RAC!

14、环境变量配置(rac01&rac02)

grid用户:

注意:每个节点的ORACLE_SID不一样(+ASM1/+ASM2),自行修改。

cat <<EOF>>/home/grid/.bash_profile
################OracleBegin#########################
umask 022
export TMP=/tmp
export TMPDIR=\$TMP
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/11.2.0/grid
export ORACLE_TERM=xterm
export TNS_ADMIN=\$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
export ORACLE_SID=+ASM1
export PATH=/usr/sbin:\$PATH
export PATH=\$ORACLE_HOME/bin:\$ORACLE_HOME/OPatch:\$PATH
alias sas='sqlplus / as sysasm'
export PS1="[\`whoami\`@\`hostname\`:"'\$PWD]\$ '
EOF
           

复制

oracle用户:

注意:每个节点的ORACLE_HOSTNAME(rac01/rac02)和ORACLE_SID(orcl1/orcl2)不一样,自行修改。

cat <<EOF>>/home/oracle/.bash_profile
################OracleBegin#########################
umask 022
export TMP=/tmp
export TMPDIR=\$TMP
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=\$ORACLE_BASE/product/11.2.0/db
export ORACLE_HOSTNAME=rac01
export ORACLE_TERM=xterm
export TNS_ADMIN=\$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
export ORACLE_SID=orcl1
export PATH=/usr/sbin:\$PATH
export PATH=\$ORACLE_HOME/bin:\$ORACLE_HOME/OPatch:\$PATH
alias sas='sqlplus / as sysdba'
export PS1="[\`whoami\`@\`hostname\`:"'\$PWD]\$ '
################OracleEnd#########################
EOF
           

复制

15、安装介质上传解压(rac01)

注意:只需要在节点一上传解压即可。

##创建安装介质存放目录
mkdir /soft

##上传安装介质到/soft目录
p13390677_112040_Linux-x86-64_1of7.zip
p13390677_112040_Linux-x86-64_2of7.zip
p13390677_112040_Linux-x86-64_3of7.zip

##解压安装介质
cd /soft
unzip -q p13390677_112040_Linux-x86-64_1of7.zip
unzip -q p13390677_112040_Linux-x86-64_1of7.zip
unzip -q p13390677_112040_Linux-x86-64_3of7.zip

##授权目录
chown -R oracle:oinstall /soft/database
chown -R grid:oinstall /soft/grid

##root用户下,cvuqdisk安装(rac01&rac02)
cd /soft/grid/rpm
rpm -ivh cvuqdisk-1.0.9-1.rpm 

##传输到节点二安装
scp cvuqdisk-1.0.9-1.rpm rac2:/tmp
rpm -ivh /tmp/cvuqdisk-1.0.9-1.rpm 
           

复制

至此,准备工作已经完成。

二、安装Grid软件(rac01)

配置grid用户vnc图形界面

##root用户下切换到grid用户
su - grid

##执行vncserver,按提示输入密码即可
vncserver

##在vnc客户端界面输入192.168.56.10:1,输入刚才输入的密码即可连接。
           

复制

手把手教你在 Linux 7 环境下部署 Oracle RAC!

grid vnc

手把手教你在 Linux 7 环境下部署 Oracle RAC!

vncclient

手把手教你在 Linux 7 环境下部署 Oracle RAC!

输入密码

右键打开终端:

手把手教你在 Linux 7 环境下部署 Oracle RAC!

打开终端

开始安装:

##应用环境变量
source ~/.bash_profile##进入安装目录
cd /soft/grid##执行安装程序开始安装,加上jar包防止弹窗不显示问题
./runInstaller -jreLoc /etc/alternatives/jre_1.8.0
           

复制

手把手教你在 Linux 7 环境下部署 Oracle RAC!

开始安装

跳过版本更新:

手把手教你在 Linux 7 环境下部署 Oracle RAC!

跳过更新

选择集群模式安装:

手把手教你在 Linux 7 环境下部署 Oracle RAC!

选择集群模式安装

自定义模式安装:

手把手教你在 Linux 7 环境下部署 Oracle RAC!

自定义模式安装

选择语言:

手把手教你在 Linux 7 环境下部署 Oracle RAC!

选择语言

修改集群名称和scan名称:

注意:scan名称必须与/etc/hosts中配置的scan名称保持一致。

手把手教你在 Linux 7 环境下部署 Oracle RAC!

修改cluster名称

配置grid用户节点间互信:

注意:点击Add添加节点二,pubile hostname为rac02, virtual hostname为rac02-vip,输入密码:oracle,点击setup开始互信。

手把手教你在 Linux 7 环境下部署 Oracle RAC!

执行互信

点击Test测试互信:

手把手教你在 Linux 7 环境下部署 Oracle RAC!

测试互信

确认网络信息是否正确:

手把手教你在 Linux 7 环境下部署 Oracle RAC!

确认网络信息是否正确

选择ASM模式安装:

手把手教你在 Linux 7 环境下部署 Oracle RAC!

ASM模式

填写OCR裁决盘信息:

注意:OCR裁决盘这里冗余模式External,Normal,High对应磁盘数量为1,3,5。

手把手教你在 Linux 7 环境下部署 Oracle RAC!

OCR裁决盘

填写ASM实例SYS用户密码:

手把手教你在 Linux 7 环境下部署 Oracle RAC!

ASM SYS密码

不使用IPMI:

手把手教你在 Linux 7 环境下部署 Oracle RAC!

不使用IPMI

选择用户组,默认即可:

手把手教你在 Linux 7 环境下部署 Oracle RAC!

用户组选择

选择grid安装目录,默认即可:

手把手教你在 Linux 7 环境下部署 Oracle RAC!

安装目录

手把手教你在 Linux 7 环境下部署 Oracle RAC!

oraInventory

安装前预检查:

手把手教你在 Linux 7 环境下部署 Oracle RAC!

安装前预检查

开始执行安装:

手把手教你在 Linux 7 环境下部署 Oracle RAC!

执行安装

手把手教你在 Linux 7 环境下部署 Oracle RAC!

安装过程

执行root脚本:(rac01&rac02)

手把手教你在 Linux 7 环境下部署 Oracle RAC!

执行root脚本

注意:Linux7安装11204版本,执行root.sh时存在BUG,需要在执行root.sh之前安装补丁18370031来修复。

手把手教你在 Linux 7 环境下部署 Oracle RAC!

buf报错

18370031补丁安装:(rac01&rac02)

##上传补丁包
p18370031_112040_Linux-x86-64.zip
##解压补丁包
cd /soft
unzip -q p18370031_112040_Linux-x86-64.zip
##授权补丁包
chown -R grid:oinstall /soft/18370031
##开始安装补丁,两个节点都需要执行
opatch napply -oh $ORACLE_HOME -local /soft/18370031 -silent
           

复制

手把手教你在 Linux 7 环境下部署 Oracle RAC!

补丁安装成功

开始执行root脚本:(rac01&rac02)

##root用户下执行
/u01/app/oraInventory/orainstRoot.sh
/u01/app/11.2.0/grid/root.sh
           

复制

手把手教你在 Linux 7 环境下部署 Oracle RAC!

执行root.sh

执行过程太长,选择性忽略;

继续安装:

没有配置DNS解析,忽略即可。

手把手教你在 Linux 7 环境下部署 Oracle RAC!

DNS报错

手把手教你在 Linux 7 环境下部署 Oracle RAC!

DNS解析问题

Grid集群软件安装成功:

手把手教你在 Linux 7 环境下部署 Oracle RAC!

检查集群运行状态

添加ASM DATA数据盘:

1、静默创建

asmca -silent -sysAsmPassword oracle -asmsnmpPassword oracle -oui_internal -configureASM -diskString '/dev/asm*' -diskGroupName DATA -diskList /dev/asm_data_1,/dev/asm_data_2,/dev/asm_data_3 -redundancy NORMAL -au_size 1
           

复制

2、图形化创建

asmca
           

复制

手把手教你在 Linux 7 环境下部署 Oracle RAC!

asmca

点击create创建DATA:

手把手教你在 Linux 7 环境下部署 Oracle RAC!

选择盘

点击OK创建DATA:

手把手教你在 Linux 7 环境下部署 Oracle RAC!

成功创建

手把手教你在 Linux 7 环境下部署 Oracle RAC!

检查ASM磁盘

建议重启两台主机,检查重启后Grid集群是否正常运行。

三、安装Oracle软件

配置oracle用户vnc图形界面

##root用户下切换到grid用户
su - oracle
##执行vncserver,按提示输入密码即可
vncserver
##在vnc客户端界面输入192.168.56.10:2,输入刚才输入的密码即可连接。
           

复制

手把手教你在 Linux 7 环境下部署 Oracle RAC!

oracle vnc

手把手教你在 Linux 7 环境下部署 Oracle RAC!

oracle vncclient

手把手教你在 Linux 7 环境下部署 Oracle RAC!

输入密码

右键打开终端:

手把手教你在 Linux 7 环境下部署 Oracle RAC!

打开终端

开始安装:

##应用环境变量
source ~/.bash_profile##进入安装目录
cd /soft/database##执行安装程序开始安装,加上jar包防止弹窗不显示问题
./runInstaller -jreLoc /etc/alternatives/jre_1.8.0
           

复制

手把手教你在 Linux 7 环境下部署 Oracle RAC!

oracle install

不接受Oracle更新邮件:

手把手教你在 Linux 7 环境下部署 Oracle RAC!

不配置邮件

跳过软件更新:

手把手教你在 Linux 7 环境下部署 Oracle RAC!

在这里插入图片描述

选择仅安装oracle软件:

手把手教你在 Linux 7 环境下部署 Oracle RAC!

仅安装软件

配置oracle用户互信:

输入密码,点击setup开始,成功之后点击Test。

手把手教你在 Linux 7 环境下部署 Oracle RAC!

oracle用户互信

手把手教你在 Linux 7 环境下部署 Oracle RAC!

互信配置成功

选择语言:

手把手教你在 Linux 7 环境下部署 Oracle RAC!

选择语言

选择企业版安装:

手把手教你在 Linux 7 环境下部署 Oracle RAC!

安装企业版

检查用户组,默认即可:

手把手教你在 Linux 7 环境下部署 Oracle RAC!

用户组检查

安装前预检查:

手把手教你在 Linux 7 环境下部署 Oracle RAC!

安装前预检查

开始安装Oracle软件:

手把手教你在 Linux 7 环境下部署 Oracle RAC!

开始安装Oracle软件

手把手教你在 Linux 7 环境下部署 Oracle RAC!

安装过程

报错解决:

手把手教你在 Linux 7 环境下部署 Oracle RAC!

bug报错

注意:Linux7安装11204版本,oracle软件安装过程中报错:ins_emagent.mk,需要修改文件/sysman/lib/ins_emagent.mk来修复。

两个节点都执行以下命令,然后点击继续:(rac01&rac02)

sed -i 's/^\(\s*\$(MK_EMAGENT_NMECTL)\)\s*$/\1 -lnnz11/g' "$ORACLE_HOME/sysman/lib/ins_emagent.mk
           

复制

执行root.sh脚本:(rac01&rac02)

手把手教你在 Linux 7 环境下部署 Oracle RAC!

oracle root.sh

点击下一步,安装成功:

手把手教你在 Linux 7 环境下部署 Oracle RAC!

详细信息

至此,Oracle软件已成功安装。

注意:如果需要安装PSU补丁,建议在建库之前安装。

安装补丁语法如下:(rac01&rac02)

opatch auto /soft/31718723 -oh $ORACLE_HOME
           

复制

四、创建数据库实例

dbca
           

复制

选择rac模式:

手把手教你在 Linux 7 环境下部署 Oracle RAC!

选择创建数据库:

手把手教你在 Linux 7 环境下部署 Oracle RAC!

选择自定义模板:

手把手教你在 Linux 7 环境下部署 Oracle RAC!

填写数据库实例ID:

手把手教你在 Linux 7 环境下部署 Oracle RAC!

关闭EM,保留自动化系统JOB:

手把手教你在 Linux 7 环境下部署 Oracle RAC!

填写SYS密码,需要记住:

手把手教你在 Linux 7 环境下部署 Oracle RAC!

选择存放数据的ASM盘:DATA

手把手教你在 Linux 7 环境下部署 Oracle RAC!

关闭闪回区,建库可随时开启:

手把手教你在 Linux 7 环境下部署 Oracle RAC!

选择自定义组件,默认即可:

手把手教你在 Linux 7 环境下部署 Oracle RAC!

配置初始化参数:

如果使用自动管理内存,建议使用70%物理内存,前提是/etc/shm要和物理内存一样大。

手把手教你在 Linux 7 环境下部署 Oracle RAC!

block默认8K,进程数增加到1500:

手把手教你在 Linux 7 环境下部署 Oracle RAC!

选择数据库字符集,默认AL32UTF8:

手把手教你在 Linux 7 环境下部署 Oracle RAC!

开始建库:

手把手教你在 Linux 7 环境下部署 Oracle RAC!

建库

手把手教你在 Linux 7 环境下部署 Oracle RAC!

保存模板

手把手教你在 Linux 7 环境下部署 Oracle RAC!

安装过程

数据库创建成功:

手把手教你在 Linux 7 环境下部署 Oracle RAC!

至此,数据库实例创建完成。

手把手教你在 Linux 7 环境下部署 Oracle RAC!

数据库运行情况

五、数据库优化配置(rac01)

1、开启数据库归档模式

##关闭数据库实例
srvctl stop database -d orcl##开启单个节点到mount模式
srvctl start instance -d orcl -i orcl1 -o mount##开启归档
alter database archivelog;##设置归档路径
ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=+DATA';##重启数据库实例
srvctl stop instance -d orcl -i orcl1
srvctl start database -d orcl##检查归档
archive log list
           

复制

2、配置定期删除归档计划任务

##进入oracle用户
su - oracle##写入脚本
{
    echo '#!/bin/bash'
    echo 'source ~/.bash_profile'
    echo 'deltime=`date +"20%y%m%d%H%M%S"`'
    echo "rman target / nocatalog msglog /home/oracle/scripts/del_arch_\${deltime}.log<<EOF"
    echo 'crosscheck archivelog all;'
    echo "delete noprompt archivelog until time 'sysdate-7';"
    echo "delete noprompt force archivelog until time 'SYSDATE-10';"
    echo 'EOF'
} >>/home/oracle/scripts/del_arch.sh
##写入计划任务
cat <<EOF>>/var/spool/cron/oracle
12 00 * * * /home/oracle/scripts/del_arch.sh
EOF
##手动执行测试
/home/oracle/scripts/del_arch.sh
           

复制

3、设置密码永不过期

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
           

复制

更多参考

Windows主机如何玩转虚拟机Linux安装

https://blog.csdn.net/m0_50546016/article/details/117415206

教你三步在MacOS上安装Linux系统

https://blog.csdn.net/m0_50546016/article/details/117414290

Oracle设置用户密码永不过期

https://blog.csdn.net/m0_50546016/article/details/109007370