暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle19c RAC安装部署

DBA技术栈 2021-04-21
1383

一、安装规划

1、数据库服务2台

数据库服务

操作系统

Oracle linux7.7

内存

15G

硬盘

100G(Oracle目录)

2、存储

ASM磁盘组

大小

冗余

用途

MGMT

30G

NORMAL

ocr、voting file、19c grid管理库

DATA

100G

NORMAL

数据文件

RECOVERY

50G

NORMAL

归档、闪回

3、IP 规划

网络规划

节点1

节点2

hostname

rac1

rac2

public ip

192.168.42.82

192.168.42.83

private ip

10.10.10.10

10.10.10.20

vip

192.168.42.90

192.168.42.93

scan ip

192.168.42.86

4、其他软件

Xshell 工具

vnc 工具

PL/SQL 工具

二、安装环境配置

1、两个节点安装rac需要的依赖包

可以配置本地yum源

mount -o loop -t iso9660 /soft/V834394-01.iso /mnt/
cd /etc/yum.repos.d
/mkdir bk
mv public-yum-ol7.repo ./bk
[EL]
name =Linux 7.6
baseurl=file:///mnt
gpgcheck=0
enabled=1

安装依赖

yum install -y binutils
yum install -y compat-libcap1
yum install -y compat-libstdc++-33
yum install -y compat-libstdc++-33.i686
yum install -y gcc
yum install -y gcc-c++
yum install -y glibc
yum install -y glibc.i686
yum install -y glibc-devel
yum install -y glibc-devel.i686
yum install -y ksh
yum install -y libgcc
yum install -y libgcc.i686
yum install -y libstdc++
yum install -y libstdc++.i686
yum install -y libstdc++-devel
yum install -y libstdc++-devel.i686
yum install -y libaio
yum install -y libaio.i686
yum install -y libaio-devel
yum install -y libaio-devel.i686
yum install -y libXext
yum install -y libXext.i686
yum install -y libXtst
yum install -y libXtst.i686
yum install -y libX11
yum install -y libX11.i686
yum install -y libXau
yum install -y libXau.i686
yum install -y libxcb
yum install -y libxcb.i686
yum install -y libXi
yum install -y libXi.i686
yum install -y make
yum install -y sysstat
yum install -y unixODBC
yum install -y unixODBC-devel
yum install -y readline
yum install -y libtermcap-devel
yum install -y bc
yum install -y compat-libstdc++
yum install -y elfutils-libelf
yum install -y elfutils-libelf-devel
yum install -y fontconfig-devel
yum install -y libXi
yum install -y libXtst
yum install -y libXrender
yum install -y libXrender-devel
yum install -y libgcc
yum install -y librdmacm-devel
yum install -y libstdc++
yum install -y libstdc++-devel
yum install -y net-tools
yum install -y nfs-utils
yum install -y python
yum install -y python-configshell
yum install -y python-rtslib
yum install -y python-six
yum install -y targetcli
yum install -y smartmontools


2、\etc\hosts配置

#public ip
192.168.42.82  rac1
192.168.42.83  rac2
#priv ip
10.10.10.10  rac1prv
10.10.10.20  rac2prv
#vip ip
192.168.42.90  rac1vip
192.168.42.93  rac2vip
#scan ip
192.168.42.86  racscan
#stronge
192.168.42.84 dbstronge


3、修改主机名

hostnamectl set-hostname rac1/rac2

4、在两个节点关闭防火墙

systemctl stop firewalld
systemctl disabled firewalld


5、关闭时间同步ntpd服务

systemctl disable ntpd.service
systemctl stop ntpd.service
mv /etc/ntp.conf /etc/ntp.conf.old


6、/etc/security/limits.conf

#ORACLE SETTING
grid soft nproc 16384
grid hard nproc 16384
grid soft nofile 16384
grid hard nofile 65536
grid soft stack 1638
grid hard stack 32768
grid hard memlock 8192000
grid soft memlock 8192000
oracle soft nproc 16384
oracle hard nproc 16384
oracle soft nofile 16384
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
oracle hard memlock 8192000
oracle soft memlock 8192000
ulimit -a


7、vi etc/security/limits.d/20-nproc.conf

- nproc 16384

8、vi etc/pam.d/login

session required pam_limits.so

9、修改内核参数

vi /etc/sysctl.conf
#ORACLE SETTING
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmax = 8719476736
kernel.shmall = 2128778
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
kernel.panic_on_oops = 1
vm.nr_hugepages = 2500
sysctl -p


10、关闭透明页

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 
#不重启生效
echo never > /sys/kernel/mm/transparent_hugepage/enabled


11、关闭selinix

vi /etc/selinux/config
SELINIX=disabled
setenforce 0


12、 配置 NOZEOCONF

vi /etc/sysconfig/network
NOZEROCONF=yes


13、停止avahi-daemon服务

systemctl disable avahi-daemon.socket
systemctl disable avahi-daemon.service
ps -ef|grep avahi-daemon
kill -9 pid avahi-daemon


14、在两个节点创建oracle,grid用户组

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
#设置grid、oracle密码
passwd oracle
passwd grid
#查看
id oracle
id grid


15、在两个节点创建grid、oracle文件目录

mkdir -p /u01/app/19.0/grid
mkdir -p /u01/app/grid
mkdir -p /u01/app/oracle
mkdir -p /u01/app/oracle/product/19.0/db_1
chown -R grid:oinstall /u01
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/


16、修改grid、oracle用户环境变量

#节点1 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/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
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/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
#节点1 oracle
su - 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/db_1; export ORACLE_HOME
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/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
su - 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/db_1; export ORACLE_HOME
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/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


修改root环境变量

vi ~/.bash_profile
PATH=$PATH:/u01/app/19.0.0/grid/bin:$HOME/bin
export PATH


17、共享存储

#编写 udev rules 文件,生成文件内容的脚本如下:

for i in b c d;
do
echo "KERNEL==\"sd?\",SUBSYSTEM==\"block\", PROGRAM==\"/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/\$name\",RESULT==\"`/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i`\", SYMLINK+=\"asm-disk$i\",OWNER=\"grid\", GROUP=\"asmadmin\",MODE=\"0660\""
done
#生成的文件 拷贝到 /etc/udev/rules.d/99-oracle-asmdevices.rules中。
#重启 udev 设备
/sbin/udevadm trigger --type=devices --action=change
#检查 udev 设备
ls -lsa /dev/asm*
ls -lsa /dev/sd*


三、安装GRID

#信任关系
cd /oracle/app/12.2/grid/oui/prov/resources/scripts/
./sshUserSetup.sh -user grid -hosts "rac1 rac2" -advanced -exverify -confirm
./sshUserSetup.sh -user oracle -hosts "rac1 rac2" -advanced -exverify -confirm
ssh rac1 date && ssh rac2 date && ssh rac1prv date && ssh rac2prv date
#在节点1
su - grid
cd $ORACLE_HOME
unzip /soft/V982068-01.zip
./gridSetup.sh



完整的安装文档请移步百度网盘免费下载:

注:链接失效请联系作者获取

链接:https://pan.baidu.com/s/1htcKW4vCYq9fhXSpiDg6DQ 

提取码:v90c






推荐阅读






文章转载自DBA技术栈,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论