RAC 19C 安装(Redhat7.6)
IP和存储规划
https://docs.oracle.com/en/database/oracle/oracle-database/19/cwlin/supported-red-hat-enterprise-linux-7-distributions-for-x86-64.html#GUID-2E11B561-6587-4789-A583-2E33D705E498
https://docs.oracle.com/en/database/oracle/oracle-database/19/cwlin/oracle-clusterware-storage-space-requirements.html#GUID-97FD5D40-A65B-4575-AD12-06C491AF3F41
操作系统配置部分
1、配置/etc/hosts 所有节点都要配置
10.64.29.111 portal01
10.64.29.112 portal02
10.64.29.113 portal01vip
10.64.29.114 portal02vip
10.10.10.111 portal01prv
10.10.10.112 portal02prv
10.64.29.115 racscan
2、关闭SELINIX、防火墙
sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
setenforce 0
systemctl stop firewalld.service
systemctl disable firewalld.service
3、禁止NTP
systemctl stop ntpd
systemctl disabled ntpd
systemctl stop chronyd.service
systemctl disable chronyd.service
rm -f /etc/chrony.conf
时区设置
# timedatectl set-timezone Asia/Shanghai
4、/dev/shm 配置
vim /etc/fstab
tmpfs /dev/shm tmpfs defaults,size=4G 0 0
mount -o remount /dev/shm #查看/dev/shm大小是否变化
5、添加NOZEROCONF=yes参数
vi /etc/sysconfig/network
NOZEROCONF=yes
6、停止avahi-daemon服务
systemctl disable avahi-daemon.socket
systemctl disable avahi-daemon.service
ps -ef|grep avahi-daemon
kill -9 pid avahi-daemon
7、yum配置
mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
cd /etc/yum.repos.d
echo "[EL]" >> /etc/yum.repos.d/rhel.repo
echo "name =Linux 7.x DVD" >> /etc/yum.repos.d/rhel.repo
echo "baseurl=file:///mnt/cdrom" >> /etc/yum.repos.d/rhel.repo
echo "gpgcheck=0" >> /etc/yum.repos.d/rhel.repo
echo "enabled=1" >> /etc/yum.repos.d/rhel.repo
cat /etc/yum.repos.d/rhel.repo
8、安装软件包
yum install bc gcc gcc-c++ binutils make gdb cmake glibc ksh \
elfutils-libelf elfutils-libelf-devel fontconfig-devel glibc-devel \
libaio libaio-devel libXrender libXrender-devel libX11 libXau sysstat \
libXi libXtst libgcc librdmacm-devel libstdc++ libstdc++-devel libxcb \
net-tools nfs-utils compat-libcap1 compat-libstdc++ smartmontools targetcli \
python python-configshell python-rtslib python-six unixODBC unixODBC-devel
这2个包要单独上传安装并安装
compat-libstdc++-33-3.2.3-69.el6.x86_64.rpm cvuqdisk-1.0.10-1
9、用户创建目录创建
groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper
groupadd -g 54324 backupdba
groupadd -g 54325 dgdba
groupadd -g 54326 kmdba
groupadd -g 54327 asmdba
groupadd -g 54328 asmoper
groupadd -g 54329 asmadmin
groupadd -g 54330 racdba
useradd -u 54321 -g oinstall -G dba,asmdba,backupdba,dgdba,kmdba,racdba,oper oracle
useradd -u 54322 -g oinstall -G asmadmin,asmdba,asmoper,dba grid
echo 'admin@123' | passwd --stdin oracle
echo 'admin@123' | passwd --stdin grid
mkdir -p /u01/app/19.0.0/grid
mkdir -p /u01/app/grid
mkdir -p /u01/app/oracle
mkdir -p /u01/app/oracle/product/19.0.0/db_1
chown -R grid:oinstall /u01
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/
10、修改20-nproc.conf
[root@rac1 ~]vi /etc/security/limits.d/20-nproc.conf
# Change this
#注释这行* soft nproc 1024
# To this增加下面一行
* - nproc 16384
11、修改limits.conf
root@rac1 ~]vi /etc/security/limits.conf
#ORACLE SETTING
grid soft nproc 16384
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
grid soft stack 10240
grid hard stack 32768
oracle soft nproc 16384
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
oracle hard memlock 3145728
oracle soft memlock 3145728
12、修改login
[root@rac1 ~]vi /etc/pam.d/login
#ORACLE SETTING
session required pam_limits.so
13、修改sysctl.conf
[root@rac1 ~]vi /etc/sysctl.conf
#ORACLE SETTING
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmax = 15461882265
kernel.shmall = 3774873
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
14、修改grid用户环境变量
[root@rac1 ~]# su - grid
[grid@rac1:/home/grid]$vi ~/.bash_profile
PS1="[`whoami`@`hostname`:"'$PWD]$'
export PS1
umask 022
export TMP=/tmp
export LANG=en_US
export TMPDIR=$TMP
ORACLE_SID=+ASM1; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
ORACLE_BASE=/u01/app/grid; export ORACLE_BASE
ORACLE_HOME=/u01/app/19.0.0/grid; export ORACLE_HOME
NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"; export NLS_DATE_FORMAT
PATH=.:$PATH:$HOME/bin:$ORACLE_HOME/bin; export PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
THREADS_FLAG=native; export THREADS_FLAG
if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
节点2 grid
[root@rac2 ~]# su - grid
[grid@rac2:/home/grid]$vi ~/.bash_profile
PS1="[`whoami`@`hostname`:"'$PWD]$'
export PS1
umask 022
export TMP=/tmp
export LANG=en_US
export TMPDIR=$TMP
ORACLE_SID=+ASM2; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
ORACLE_BASE=/u01/app/grid; export ORACLE_BASE
ORACLE_HOME=/u01/app/19.0.0/grid; export ORACLE_HOME
NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"; export NLS_DATE_FORMAT
PATH=.:$PATH:$HOME/bin:$ORACLE_HOME/bin; export PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
THREADS_FLAG=native; export THREADS_FLAG
if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
15、修改oracle用户环境变量
节点1 oracle
[root@rac1 ~]# su - oracle
[oracle@rac1:/home/oracle]$vi ~/.bash_profile
PS1="[`whoami`@`hostname`:"'$PWD]$'
export PS1
export TMP=/tmp
export LANG=en_US
export TMPDIR=$TMP
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/19.0.0/db_1; export ORACLE_HOME
ORACLE_UNQNAME=orcl; export UNQNAME
ORACLE_SID=orcl1; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"; export NLS_DATE_FORMAT
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK;export NLS_LANG
PATH=.:$PATH:$HOME/bin:$ORACLE_BASE/product/19.0.0/db_1/bin:$ORACLE_HOME/bin; export PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
THREADS_FLAG=native; export THREADS_FLAG
if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
节点2 oracle
[root@rac2 ~]# su - oracle
[oracle@rac2:/home/oracle]$vi ~/.bash_profile
PS1="[`whoami`@`hostname`:"'$PWD]$'
export PS1
export TMP=/tmp
export LANG=en_US
export TMPDIR=$TMP
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/19.0.0/db_1; export ORACLE_HOME
ORACLE_UNQNAME=orcl; export UNQNAME
ORACLE_SID=orcl2; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"; export NLS_DATE_FORMAT
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK;export NLS_LANG
PATH=.:$PATH:$HOME/bin:$ORACLE_BASE/product/19.0.0/db_1/bin:$ORACLE_HOME/bin; export PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
THREADS_FLAG=native; export THREADS_FLAG
if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
16、修改root环境变量
加入grid用户$ORACLE_HOME
[root@rac1 opt]# vi ~/.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:/u01/app/19.0.0/grid/bin:$HOME/bin
export PAT
17、禁用透明大页
修改grub文件
cp /etc/default/grub /etc/default/grub.bak
vi /etc/default/grub
增加一行transparent_hugepage=never到尾部
GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet transparent_hugepage=never
执行命令
grub2-mkconfig -o /boot/grub2/grub.cfg
不重启生效
[root@rac1 ~]#echo never > /sys/kernel/mm/transparent_hugepage/enabled
查看是否禁用透明大页
[root@rac1 ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
[root@rac1 ~]# grep AnonHugePages /proc/meminfo
AnonHugePages: 0 kB---------->>>返回值若是零,代表成功禁用THP
如未禁用可以重启再检查
18、共享存储UDEV绑定
查看共享存储LUN的ID
/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sda
[root@portal02 yum.repos.d]# for i in a b c d e f g ;
> do
> echo "emcpower$i" "`/lib/udev/scsi_id -g -u /dev/emcpower$i` ";
> done
emcpowera 368ccf098005955e91ffcf987845ad123
emcpowerb 368ccf09800c3564bf77452cc252c3a06
emcpowerc 368ccf09800cfa19d3c5d998279f7aafa
emcpowerd 368ccf09800ac53faacc3f0781f5c188c
emcpowere 368ccf0980025b16c18531f93571ad144
emcpowerf 368ccf09800638bd792982f1d3d11c803
emcpowerg 368ccf09800b5036110b6ad790113ff6e
# OWNER:="root", GROUP:="root", MODE:="660"
LABEL="dm_end"
ENV{DM_NAME}=="asmvote01", OWNER:="grid", GROUP:="asmadmin", MODE:="660"
ENV{DM_NAME}=="asmvote02", OWNER:="grid", GROUP:="asmadmin", MODE:="660"
ENV{DM_NAME}=="asmvote03", OWNER:="grid", GROUP:="asmadmin", MODE:="660"
ENV{DM_NAME}=="asmdata01", OWNER:="grid", GROUP:="asmadmin", MODE:="660"
ENV{DM_NAME}=="asmdata02", OWNER:="grid", GROUP:="asmadmin", MODE:="660"
ENV{DM_NAME}=="asmdata03", OWNER:="grid", GROUP:="asmadmin", MODE:="660"
ENV{DM_NAME}=="asmmgmt01", OWNER:="grid", GROUP:="asmadmin", MODE:="660"
ENV{DM_NAME}=="asmfra01", OWNER:="grid", GROUP:="asmadmin", MODE:="660"
配置UDEV映射文件
[root@portal01 rules.d]# vim 99-oracle-asmdevices.rules
KERNEL=="emcpower*", SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$parent",RESULT=="368ccf098005955e91ffcf987845ad123",SYMLINK+="asmdisks/asmdisk01",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="emcpower*", SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$parent",RESULT=="368ccf09800c3564bf77452cc252c3a06",SYMLINK+="asmdisks/asmdisk02",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="emcpower*", SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$parent",RESULT=="368ccf09800cfa19d3c5d998279f7aafa",SYMLINK+="asmdisks/asmdisk03",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="emcpower*", SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$parent",RESULT=="368ccf09800ac53faacc3f0781f5c188c",SYMLINK+="asmdisks/asmdisk04",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="emcpower*", SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$parent",RESULT=="368ccf0980025b16c18531f93571ad144",SYMLINK+="asmdisks/asmdisk05",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="emcpower*", SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$parent",RESULT=="368ccf09800638bd792982f1d3d11c803",SYMLINK+="asmdisks/asmdisk06",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="emcpower*", SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$parent",RESULT=="368ccf09800b5036110b6ad790113ff6e",SYMLINK+="asmdisks/asmdisk07",OWNER="grid",GROUP="asmadmin",MODE="0660"
partprobe
/sbin/partprobe /dev/emcpowera-g
udevadm trigger --type=devices --action=change
udevadm control --reload-rules
ll /dev/asmdisk/*
第二个节点
节点2拷贝节点1的udev规则文件
scp rac1:/etc/udev/rules.d/99-oracle-asmdevices.rules /etc/udev/rules.d/99-oracle-asmdevices.rules
partprobe
udevadm trigger --type=devices --action=change
udevadm control --reload-rules ll
/dev/asmdisk/*
19、rlwrap软件配置
rlwrap-0.37-1.el6.x86_64.rpm 该软件务必在ROOT用户下安装
如果你当前不是oracle用户的话请执行以下命令
su - oracle
vi /home/oracle/.bash_profile
将下面两行文字粘贴进该文件中即可
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
添加完内容后保存退出 并执行以下命令来生成环境变量
. /home/oracle/.bash_profile
20、grid 安装 软件一定要解压到$ORACLE_HOME目录
在节点1上传grid安装包
解压grid安装包
在19C中需要把grid包解压放到grid用户下ORACLE_HOME目录内
解压文件到/u01/app/19.0.0/grid
[grid@rac2 grid]$ cd /u01/app/19.0.0/grid
[grid@rac2 grid]$ unzip LINUX.X64_193000_grid_home.zip
进入grid集群软件目录执行安装
如果不进入用户界面,可以用MobaXterm_Portable连接ssh,然后在用户下设置export DISPLAY=本机地址:0.0
[grid@rac1 grid]$ ./gridSetup.sh
01 创建新的集群
配置集群名称以及scan名称 scan 名称要与/etc/hosts一样
节点互信 与/etc/hosts一样
公网、私网网段选择 私网心跳要选择ASM&Pivate
选择ASM存储
选择配置GIMR 19C RAC这里可以选择是否安装GIMR管理库,不装不影响,选择是的话(创建GIMR管理库),有一步是说是否为GIMR创建单独的存储,如果LUN是规划在一起的话,要选择NO.
下面这个是不安装GIMR管理库
下面这个是安装GIMR管理库
这里选择ocr、voting file与gimr放在一起
选择ASM磁盘 ChangeDiscovery Path /dev/asmdisks
正常情况下/dev/shm是没有警告的,只有single dns这2项的话可以忽略
运行脚本这里一定不能有报错,有报错就得重新配置,节点一执行完再执行节二
Grid 安装完成 最后安装完成有个报错提示,/u01/app/grid/diag/crs/db195/crs/trace
查看日志发现是因为使用了一个scan ip的提示,可以忽略 crsctl stat res -t查看集群资源状态信息
然后进入GIRD用户,asmca 配置数据磁盘组各归档磁盘组
21、oracle安装 软件一定要解压到$ORACLE_HOME目录
安装前检查下ORACLE用户的环境变量,和$ORACLE_HOME/bin/下的oracle用户的权限,要是oracle:asmadmin 7661权限
22、DBCA建库




