Oracle RAC 19C OEL8.6 最佳实践

操作系统准备

1 操作系统优化

  1. 创建oracle ,grid 用户
bash optimize_system_conf_oracle.sh

2 设置hosts

cat >>  /etc/hosts << EOF

#127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

#::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

127.0.0.1  localhost 
#public ip
192.168.10.206 rac1
192.168.10.207 rac2
#vip
192.168.10.204 rac1-vip
192.168.10.205 rac2-vip
#private ip
192.168.122.11 rac1-priv
192.168.122.12 rac2-priv
#scanip
192.168.10.203 scan-ip
EOF

3 建立 ORACLE_HOME 和 GRID_HOME

mkdir -p /u01/app/grid/product/19.0.0/grid
mkdir -p /u01/app/oracle/product/19.0.0/db_1
mkdir -p /u01/app/grid
chown -R oracle:dba /u01/app/oracle
chown -R grid:dba /u01/app/grid
chmod -R 775 /u01/app/oracle
chmod -R 775 /u01/app/grid

4 安装依赖包

4.1 Linux 系统依赖包

yum install oracle-database-preinstall-19c -y
yum install chrony  -y
Note

其他版本linux:
yum install bind-libs bind-utils compat-libcap1 compat-libstdc++-33 gssproxy keyutils ksh
libICE libSM libX11 libX11-common libXau libXext libXi libXinerama libXmu
libXrandr libXrender libXt libXtst libXv libXxf86dga libXxf86misc libXxf86vm
libaio-devel libbasicobjects libcollection libdmx libevent libini_config
libnfsidmap libpath_utils libref_array libstdc++-devel libtirpc libverto-libevent
libxcb lm_sensors-libs mailx nfs-utils psmisc quota quota-nls rpcbind
smartmontools sysstat tcp_wrappers unzip xorg-x11-utils xorg-x11-xauth -y

4.2 打开ol8_addons yum 源

[ol8_addons]
name=Oracle Linux 8 Addons ($basearch)
baseurl=https://yum$ociregion.$ocidomain/repo/OracleLinux/OL8/addons/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=1

4.3 安装oracleasm工具包

yum install oracleasm* -y

5 设置Oracle环境变量

Note

5.1 rac1

su - oracle
cat >> ~/.bash_profile << EOF
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=\$ORACLE_BASE/product/19.0.0/db_1
export ORACLE_SID=citdb1
export ORACLE_UNQNAME=citdb1
export PATH=\$ORACLE_HOME/bin:\$PATH
export LANG=C
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:
export DISPLAY=192.168.10.102:0.0
export CVUQDISK_GRP=dba
EOF

5.2 rac2

su - oracle
cat >> ~/.bash_profile << EOF
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=\$ORACLE_BASE/product/19.0.0/db_1
export ORACLE_SID=citdb2
export ORACLE_UNQNAME=citdb2
export PATH=\$ORACLE_HOME/bin:\$PATH
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:
export DISPLAY=192.168.10.102:0.0
export CVUQDISK_GRP=dba
export LANG=C
EOF

6 设置GRID 环境变量

6.1 rac1

su - grid
cat >> ~/.bash_profile << EOF
export ORACLE_BASE=/u01/app/grid/base
export ORACLE_HOME=/u01/app/grid/product/19.0.0/grid
export ORACLE_SID=+ASM1
export PATH=\$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:
export DISPLAY=192.168.10.102:0.0
export CVUQDISK_GRP=dba
export LANG=C
EOF

6.2 rac2

su - grid
cat >> ~/.bash_profile << EOF
export ORACLE_BASE=/u01/app/grid/base
export ORACLE_HOME=/u01/app/grid/product/19.0.0/grid
export ORACLE_SID=+ASM2
export PATH=\$ORACLE_HOME/bin:\$PATH
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:
export DISPLAY=192.168.10.102:0.0
export CVUQDISK_GRP=dba
export LANG=C
EOF

7 ROOT 的环境变量

cat >> ~/.bash_profile << EOF
export PATH=/u01/app/grid/product/19.0.0/grid/bin:\$PATH
export LANG=C
EOF

8 创建ASM 磁盘

8.1 初始化oracleasm 组件

oracleasm  init
oracleasm configure -i
grid
dba
y
y

8.2 磁盘分区

for i in {b..m}; 
do  fdisk /dev/sd$i << eof
n
p
1



w
eof
done

8.3 创建ASM 磁盘

8.3.1 创建OCR 磁盘

count=1; 
for i in {b..d};
do  oracleasm createdisk OCR$count /dev/sd$i'1';
let count+=1;
done

8.3.2 创建DATA 磁盘

count=1; 
for i in {e..g};
do  oracleasm createdisk DATA$count /dev/sd$i'1';
let count+=1;
done

8.3.3 创建快速恢复目录

count=1;
for i in {h..j};
do  oracleasm createdisk FRA$count /dev/sd$i'1'; 
let count+=1;
done

8.3.4 MGT

count=1;
for i in {k..m};
do  oracleasm createdisk MGT$count /dev/sd$i'1'; 
let count+=1;
done

8.3.5 检查磁盘是否创建成功

oracleasm listdisks
Warning

磁盘路径为:
/dev/oracleasm/disks

8.4 另一个节点

oracleasm  scandisks

9   调整/dev/shm

9.1 增大tmpfs 文件系统大小

cat >> /etc/fstab << EOF
tmpfs                   /dev/shm                tmpfs   defaults,size=8192M        0 0
EOF

9.2 重新挂载

mount -o remount /dev/shm

10 NTP 服务

10.1 NTP 服务端

  1. 修改/etc/chrony.conf
server 192.168.10.206 prefer
allow 192.168.10.0/24
  1. 重启服务
systemctl  start chronyd
systemctl  status chronyd
systemctl enable chronyd

10.2 NTP 客户端

  1. 修改/etc/chrony.conf
server 192.168.10.206 iburst
  1. 重启服务
systemctl  start chronyd
systemctl  status chronyd

10.3 验证时间同步.

chronyc sources
chronyc sourcestats

11 准备安装介质

11.1 更改磁盘权限

cd /app
mkdir setup
mkdir db
mkdir grid
chown -R grid:dba grid/
chown -R oracle:dba db/

11.2 解压软件

 unzip Oracle\ Database\ Grid\ Infrastructure\ 19.3.0.0.0\ for\ Linux\ x86-64V982068-01.zip -d /u01/app/grid/product/19.0.0/db_1/
unzip Oracle\ Database\ 19.3.0.0.0\ for\ Linux\ x86-64V982063-01.zip  -d /u01/app/oracle/product/19.0.0/db_1/

启动grid 安装

export DISPLAY=192.168.10.124:0.0
export CV_ASSUME_DISTID=RHEL7.6

启动asmca 创建ASM 磁盘组。

!Oracle RAC 创建ASM 磁盘.png

启动数据库安装

export DISPLAY=192.168.10.124:1.0
export CV_ASSUME_DISTID=RHEL7.6

FAQ

1 互信问题

Warning

报错信息:passwordless ssh connectivity is not setup from the local node node1 to the following nodes node2

1.1 解决方案

1)Rename the original scp.

mv /usr/bin/scp /usr/bin/scp.orig

2)Create a new file .

vi /usr/bin/scp

3)Add the below line to the new created file .

/usr/bin/scp.orig -T $*

4)Change the file permission.

chmod 555 /usr/bin/scp

After installation:

mv /usr/bin/scp.orig /usr/bin/scp

1.2 删除磁盘组

count=1;
for i in {b..m};
do  oracleasm deletedisk FRA$count;
let count+=1;
done
count=1;
for i in {b..m};
do  oracleasm deletedisk DATA$count;
let count+=1;
done
count=1;
for i in {b..m};
do oracleasm deletedisk OCR$count;
let count+=1;
done
for i in {b..m};
do  oracleasm deletedisk MGT$count;
let count+=1;
done

1.3 删除磁盘分区

for i in {b..m}; 
do  fdisk /dev/sd$i << eof
d
w
eof
done