Oracle11gR2 Rac集群搭建

前言

Oracle RAC是什么?

img

  • Oracle Real Application Clusters (RAC) 允许客户跨多台服务器运行单个 Oracle 数据库,以最大限度地提高可用性并实现水平可扩展性,同时访问共享存储。
  • 连接到 Oracle RAC 实例的用户会话可以在中断期间进行故障转移并安全地重放更改,而无需对最终用户应用程序进行任何更改,从而对最终用户隐藏了中断的影响。
  • Oracle RAC 运行于集群之上,为 Oracle 数据库提供了最高级别的可用性、可伸缩性和低成本计算能力。
  • 如果集群内的一个节点发生故障,Oracle 将可以继续在其余的节点上运行。
  • Oracle 的主要创新是一项称为高速缓存合并的技术。
  • 高速缓存合并使得集群中的节点可以通过高速集群互联高效地同步其内存高速缓存,从而最大限度地低降低磁盘 I/O。
  • 高速缓存最重要的优势在于它能够使集群中所有节点的磁盘共享对所有数据的访问,数据无需在节点间进行分区。

特点:

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

如何部署RAC数据库环境?

大致步骤如下:

  • 安装两台redhat7.6版本Linux系统
  • 网络配置(双网卡,准备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备份机制)

img

安装前配置

本文主机配置为RedHat 7.6 x86_64内存8G硬盘100G双网卡iscsi共享存储5G*6

节点 主机版本 主机名 实例名 Oracle版本 Public IP Private IP Virtual IP Scan IP
node1 RedHat 7.6 rac21 orcl1 11.2.0.4 192.168.145.11 10.10.10.11 192.168.145.13 192.168.145.15
node2 RedHat 7.6 rac22 orcl2 11.2.0.4 192.168.145.12 10.10.10.12 192.168.145.14 192.168.145.15

Linux系统安装

Linux系统安装不做详细演示,请参考 https://jonty.top/2021/10/27/vmware-install-linux/

配置yum源并安装依赖包

VMware Workstation挂载Linux镜像:

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

配置镜像源:

1
2
3
4
5
6
7
8
9
10
11
echo "export LANG=en_US" >> ~/.bash_profile

mount /dev/cdrom /mnt
##配置yum源
cat <<EOF>>/etc/yum.repos.d/local.repo
[local]
name=local
baseurl=file:///mnt
gpgcheck=0
enabled=1
EOF

安装依赖包:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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

手动上传并安装:

1
2
3
rpm -ivh compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
rpm -e ksh-20120801-139.el7.x86_64
rpm -ivh pdksh-5.2.14-37.el5.x86_64.rpm

检查安装情况:

1
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"

网络配置

rac41:

1
2
3
4
5
6
7
##配置Public IP
nmcli connection modify ens33 ipv4.addresses 192.168.145.21/24 ipv4.gateway 192.168.145.2 ipv4.method manual autoconnect yes
##配置Private IP
nmcli connection modify ens34 ipv4.addresses 10.10.10.21/24 ipv4.method manual autoconnect yes
##生效
nmcli connection up ens33
nmcli connection up ens34

rac42:

1
2
3
4
5
6
7
##配置Public IP
nmcli connection modify ens33 ipv4.addresses 192.168.145.22/24 ipv4.gateway 192.168.45.2 ipv4.method manual autoconnect yes
##配置Private IP
nmcli connection modify ens34 ipv4.addresses 10.10.10.22/24 ipv4.method manual autoconnect yes
##生效
nmcli connection up ens33
nmcli connection up ens34

image-20211223161839494

存储配置

使用ISCSI配置共享存储:https://luciferliu.blog.csdn.net/article/details/118087577

配置好共享存储后,在 Linux 主机连接共享存储:

1
2
3
4
5
6
7
8
9
10
11
12
##iscsi识别共享存储
yum install -y iscsi-initiator-utils*

systemctl enable iscsi
systemctl start iscsi

##输出targetname,10.211.55.18为iscsi共享存储设备IP地址
iscsiadm -m discovery -t st -p 192.168.145.1
##连接共享存储
iscsiadm -m node -T iqn.2008-08.com.starwindsoftware:192.168.1.21-jonty -p 192.168.145.1 -l

lsblk

安装 multipath 绑定多路径:

1
2
3
4
5
6
7
8
9
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盘!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
cat <<EOF>/etc/multipath.conf
defaults {
user_friendly_names yes
}

blacklist {
devnode "^sda"
}

multipaths {
multipath {
wwid "2b4a04d8579625dfe"
alias asm-ocr_1
}
multipath {
wwid "24a84046e7f3723ee"
alias asm-ocr_2
}
multipath {
wwid "22e5355507973a019"
alias asm-ocr_3
}
multipath {
wwid "267309a91b23cad07"
alias asm-data_1
}
multipath {
wwid "2101958d6779faa9a"
alias asm-data_2
}
multipath {
wwid "205af7fc0a95ea04b"
alias asm-data_3
}
}
EOF



激活multipath多路径:

1
2
3
multipath -F
multipath -v2
multipath -ll

配置UDEV绑盘:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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

asm-ocr_3 (253:2)
asm-ocr_2 (253:1)
asm-ocr_1 (253:0)
asm-data_3 (253:5)
asm-data_2 (253:4)
asm-data_1 (253:3)

for i in asm-ocr_1 asm-ocr_2 asm-ocr_3 asm-data_1 asm-data_2 asm-data_3;
do
printf "%s %s\n" "$i" "$(udevadm info --query=all --name=/dev/mapper/$i |grep -i dm_uuid)";
done

asm-ocr_1 E: DM_UUID=mpath-2b4a04d8579625dfe
asm-ocr_2 E: DM_UUID=mpath-24a84046e7f3723ee
asm-ocr_3 E: DM_UUID=mpath-22e5355507973a019
asm-data_1 E: DM_UUID=mpath-267309a91b23cad07
asm-data_2 E: DM_UUID=mpath-2101958d6779faa9a
asm-data_3 E: DM_UUID=mpath-205af7fc0a95ea04b

vi /etc/udev/rules.d/99-oracle-asmdevices.rules

KERNEL=="dm-*",ENV{DM_UUID}=="mpath-2b4a04d8579625dfe",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="dm-*",ENV{DM_UUID}=="mpath-24a84046e7f3723ee",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="dm-*",ENV{DM_UUID}=="mpath-22e5355507973a019",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="dm-*",ENV{DM_UUID}=="mpath-267309a91b23cad07",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="dm-*",ENV{DM_UUID}=="mpath-2101958d6779faa9a",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="dm-*",ENV{DM_UUID}=="mpath-205af7fc0a95ea04b",OWNER="grid",GROUP="asmadmin",MODE="0660"

##重载udev
udevadm control --reload-rules
udevadm trigger --type=devices

ls -lsa /dev/dm*
ls -lsa /dev/mapper/*

确认配置完成后,分别在两个节点输入命令 ls /dev/dm* 查看是否已经成功绑定。

hosts文件配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
cat <<EOF>>/etc/hosts
#Public IP
192.168.145.21 rac21
192.168.145.22 rac22

#Private IP
10.10.10.21 rac21-priv
10.10.10.22 rac22-priv

#Vip IP
192.168.145.22 rac21-vip
192.168.145.23 rac22-vip

#Scan IP
192.168.145.25 rac-scan
EOF

防火墙配置

1
2
3
systemctl stop firewalld.service
systemctl disable firewalld.service ## 禁用防火墙
systemctl status firewalld.service

selinux 配置

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

注意: selinux 配置需要重启生效!

时间同步配置

首先需要禁用 chronyd 和 ntpd 服务:

1
2
3
4
5
6
7
##禁用chronyd
yum install -y chrony
timedatectl set-timezone Asia/Shanghai
systemctl stop chronyd.service
systemctl disable chronyd.service
##禁用ntpd
yum install -y ntpdate

配置计划任务,定时刷新系统时间

1
2
3
4
5
6
7
cat <<EOF>>/var/spool/cron/root
00 12 * * * /usr/sbin/ntpdate -u ntp.ntsc.ac.cn && /usr/sbin/hwclock -w
EOF
##查看计划任务
crontab -l
##手动执行
/usr/sbin/ntpdate -u 10.211.55.200 && /usr/sbin/hwclock -w

关闭透明大页和 NUMA

1
2
3
4
5
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

注意: 关闭 透明大页numa 的配置,需要重启主机生效

avahi-daemon 配置

有些主机安装选择最小化安装,没有安装 avahi-daemon 功能,建议安装之后禁用,防止以后误操作导致出问题:

1
2
3
4
yum install -y avahi*
systemctl stop avahi-daemon.socket
systemctl stop avahi-daemon.service
pgrep -f avahi-daemon | awk '{print "kill -9 "$2}'

配置 NOZEROCONF:

1
2
3
cat <<EOF>>/etc/sysconfig/network
NOZEROCONF=yes
EOF

系统参数配置

安装 Oracle 数据库需要配置系统参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
##配置参数文件
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.ens33.rp_filter = 1
net.ipv4.conf.ens34.rp_filter = 2
EOF

##生效
sysctl -p

系统资源限制

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
##配置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

用户及组、目录创建

创建安装 Oracle 数据库所需的用户、组以及安装目录:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
##组创建
/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

环境变量配置

node1

grid 用户:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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 用户:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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=rac11
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
node2

grid 用户

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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=+ASM2
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 用户:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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=rac12
export ORACLE_TERM=xterm
export TNS_ADMIN=\$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
export ORACLE_SID=orcl2
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

安装介质上传解压

只需要上传至一节点 /soft 目录下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
##创建安装介质存放目录
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_2of7.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 rac12:/tmp
rpm -ivh /tmp/cvuqdisk-1.0.9-1.rpm

安装Grid软件

1
2
3
4
5
6
## 安装vncserver
yum install -y tigervnc*
##root用户下切换到grid用户
su - grid
##执行vncserver,按提示输入密码即可
vncserver

开始安装:

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

跳过软件更新:

image-20220104095907830

选择集群模式安装:

image-20220104100037758

自定义安装:image-20220104100119417

配置集群名称和scan名称

需要和hosts配置一致

image-20220104100325637

配置节点互信:

image-20220104100434776

点击Add添加rac12节点,然后点击setup配置互信

点击Test测试互信:

image-20220104100607278

确认网络信息是否正确

image-20220104100645594

选择ASM模式安装

image-20220104100727480

配置OCR裁决盘信息:

image-20220104100848491

OCR裁决盘冗余模式External,Normal,High对应磁盘数量为1,3,5

配置ASM实例SYS密码:oracle

image-20220104100905957

不使用IPMI

image-20220104101122176

选择用户组,默认:

image-20220104101150351

选择安装目录,默认:

image-20220104101220287

image-20220104101249813

安装前检查:

image-20220104101424877

开始执行安装:

image-20220104102648525

注意:执行root.sh之前需要安装18370031补丁

rac11&rac12均需要执行:

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

image-20220104103121399

打好补丁后,开始执行root.sh脚本

先在节点1执行,执行成功后节点2加入群集

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

image-20220104104406468

image-20220104105124755

点击OK,继续安装

没有配置DNS解析,报错可忽略

image-20220104105427461GRID安装成功:

image-20220104105542972

image-20220104105649608

osh:

注意: 如果需要安装 PSU 补丁,建议在建库之前安装,可以省去数据字典升级的步骤

以 Grid PSU 补丁 31718723 为例,使用 root 用户执行补丁安装命令:(rac11&rac12)

1
2
3
4
5
6
7
8
9
##解压补丁包
cd /soft
unzip -q p31718723_112040_Linux-x86-64.zip

mv Opatch OPatch_old # 备份
cp -r /soft/Opatch . # 复制

##切换到root用户执行,需要拷贝到2节点也执行一次
opatch auto /soft/31718723 -oh $GRID_ORACLE_HOME

创建ASM数据盘DATA

DATA 磁盘组主要用于存放数据文件、日志文件等数据库文件

1
asmca

image-20220104112335347

点击create创建DATA

image-20220104112423523

image-20220104112429678

image-20220104112509247

重启,检查群集状态

安装Oracle软件

1
2
3
4
5
6
7
8
9
su - oracle
vncserver

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

不配置邮件发送:

image-20220104122206066

跳过软件更新

image-20220104122247144

选择仅安装Oracle软件:

image-20220104122305882

配置Oracle用户互信:

image-20220104122407750

image-20220104122359451

选择企业版安装:

安装位置,默认即可:

image-20220104130927245

用户组,默认

image-20220104130945700

安装前检查:

忽略

image-20220104131057647

开始安装:

image-20220104131128124

安装过程报错:

image-20220104132002754

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

1
[oracle@rac11:/home/oracle]$ sed -i 's/^\(\s*\$(MK_EMAGENT_NMECTL)\)\s*$/\1 -lnnz11/g' $ORACLE_HOME/sysman/lib/ins_emagent.mk

执行root.sh脚本

1
/u01/app/oracle/product/11.2.0/db/root.sh

image-20220104133753429

image-20220104134046080

image-20220104133928204

创建数据库实例

1
dbca

选择rac模式

image-20220104142637632

创建数据库

image-20220104142655532

选择自定义

image-20220104142722154

填写实例ID:

image-20220104142759183

EM:

image-20220104142834540

填写SYS密码:P@ssw0rd

image-20220104142927756

选择数据存放盘:

image-20220104142945676

暂不开启闪回,建库后可随时开启:

image-20220104143018740

选择自定义组件,默认:

image-20220104143037219

配置初始化参数:

内存:

1
2
SGA <= memory * 0.8 * 0.8
PGA <= memory * 0.8 * 0.2 (40% ~ 60%)

image-20220104143129101

进程数:

字符集:根据实际需求设置

image-20220104143306605

存储配置

控制文件:

image-20211230110158202

表空间设置:

每个数据文件设置为20G USERS:5G

自动扩展关闭

image-20211230110652517

重做日志文件:

2组 10个 每个2G (演示为200M)

image-20211230111057915

创建选项

image-20220104143603934

开始创建:

image-20220104143813380

创建成功:

image-20220104151937257

1
select instance_number,instance_name,startup_time,status from gv$Instance;

image-20220104154654400