Oracle RAC 19C OEL8.6 最佳实践
操作系统准备
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环境变量
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 服务端
- 修改
/etc/chrony.conf
server 192.168.10.206 prefer
allow 192.168.10.0/24
- 重启服务
systemctl start chronyd
systemctl status chronyd
systemctl enable chronyd
10.2 NTP 客户端
- 修改
/etc/chrony.conf
server 192.168.10.206 iburst
- 重启服务
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 磁盘组。
启动数据库安装
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