在CentOS7.6下搭建Oracle19c RAC集群

在CentOS7.6下搭建Oracle19c RAC集群

  • 1.准备阶段
    • 1.1 虚拟环境准备
    • 1.2 Oracle版本包准备
  • 2.服务器配置阶段
    • 2.1.配置IP
    • 2.2.停止不相关服务
    • 2.3.配置服务器
    • 2.4.配置系统参数
    • 2.5.配置环境变量
    • 2.6.配置ASM共享磁盘
    • 2.7.配置用户互信
  • 3.grid图形界面安装
  • 4.database图形界面安装
  • 5.自定义创建和安装数据库
  • 卸载RAC集群

(所有步骤,标黄并注明仅在oracle01节点执行的,oracle02不用执行,其他步骤2个节点都要执行;图形化安装仅在oracle01节点执行)

1.准备阶段

1.1 虚拟环境准备

Oracle RAC集群至少需要2台服务器,hostname设置为oracle01和oracle02。
步骤1:创建oracle01节点,本次的配置CPU(15)、内存(16GB)、硬盘(300GB)、虚拟网卡(2张)。
在CentOS7.6下搭建Oracle19c RAC集群_第1张图片
在CentOS7.6下搭建Oracle19c RAC集群_第2张图片
步骤1.1:本次安装操作系统版本选择的是:CentOS-7-x86_64-DVD-1804.iso;
时区选择上海;
软件选择:“Server with GUI”(因为后面会用到界面安装,所以直接选择了带GUI的服务器);
hostname配置为oracle01;
操作系统盘选择自己划分区(swap分区根据oracle节点数来确定,所以我直接选择了40GB作为swap分区,其他分区自定义,大于50GB肯定没问题)
在CentOS7.6下搭建Oracle19c RAC集群_第3张图片

在CentOS7.6下搭建Oracle19c RAC集群_第4张图片
步骤1.2:安装完操作系统并重启后,根据引导自行配置即可。
步骤2:创建oracle02节点(按照步骤1创建相同配置的虚拟服务器即可),为了避免虚拟机各种冲突,尽量不要克隆。

1.2 Oracle版本包准备

进入Oracle官网:https://www.oracle.com/downloads/,选择下载19C版本
在CentOS7.6下搭建Oracle19c RAC集群_第5张图片
在Linux x86-64,选择see all
在CentOS7.6下搭建Oracle19c RAC集群_第6张图片
下载LINUX.X64_193000_db_home.zip和LINUX.X64_193000_grid_home.zip即可
在CentOS7.6下搭建Oracle19c RAC集群_第7张图片

2.服务器配置阶段

2.1.配置IP

Oracle需要2个网段,先将每台服务器的2张虚拟网卡配置好Oracle所需的Public IP和Pirvate IP(网段自定义,确保同网段2台服务器能通信,公网我选择的192网段,私网选择的10网段)

2.2.停止不相关服务

步骤1:删除GUI Server创建的虚拟网卡

//不删除也不会影响,但也没有什么用。
ifconfig virbr0 down
brctl delbr virbr0
nmcli device delete virbr0-nic
systemctl mask libvirtd.service
systemctl disable libvirtd.service

步骤2:关闭防火墙

//防火墙会影响Oracle的通信,内网测试可以关闭
systemctl stop firewalld
systemctl disable firewalld
sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
setenforce 0
getenforce

步骤3:停止avahi-daemon服务

//我的机器没有无线设备,只作为文件服务器、下载服务器使用,所以应该关闭avahi-daemon
systemctl stop avahi-daemon.socket
systemctl stop avahi-daemon.service
systemctl disable avahi-daemon.socket
systemctl disable avahi-daemon.service

步骤4:停止时间同步服务

//停止其他时间同步,用Oracle自带的Ctss服务
rm -rf /var/run/chronyd.pid
rm -rf /etc/chrony.conf
rm -rf /etc/ntp.conf
systemctl stop ntpd.service
systemctl disable ntpd
systemctl stop chronyd.service
systemctl disable chronyd.service

2.3.配置服务器

步骤1:配置host

//将Oracle所需的2个公网ip,2个公网虚拟ip,2个私网ip,1个扫描ip和对应解析名新增到/etc/hosts文件中
cat >> /etc/hosts << EOF
#public ip 
192.168.225.20 oracle01
192.168.225.21 oracle02
#vip
192.168.225.22 oracle01-vip
192.168.225.23 oracle02-vip
#private ip
10.0.100.20 oracle01-priv
10.0.100.21 oracle02-priv
#scan ip
192.168.225.24 oracle-scan
EOF

步骤2:挂载本地镜像源(如果没有则使用公网也可以,本地安装效率快)

//挂载本地iso到mnt
mount CentOS-7-x86_64-DVD-1804.iso -o loop /mnt

步骤2.1:配置yum

//修改yum配置/etc/yum.repos.d/CentOS-Base.repo和其他yum配置文件中,关闭所有的源,加上enabled=0
在vi /etc/yum.repos.d/CentOS-Media.repo中,改为:
[c7-media]
name=CentOS-$releasever - Media
baseurl=file:///mnt/
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

步骤2.2:清理yum和cache文件

//清理yum和chache文件
yum clean all
rm -rf /var/cache/yum/

步骤2.3:重新生成yum cache

//生成yum的cache,成功会返回Metadata Cache Created。
yum makecache

步骤3:安装Oracle依赖包

//生成yum的cache,成功会返回Metadata Cache Created。
yum -y 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 iscsi-initiator-utils device-mapper device-mapper-multipath unbound bind-utils

步骤3.1:

//步骤3中,会有1个包安装失败,No package compat-libstdc++ available,需要单独下载,并手动安装
rpm -ivh compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm

步骤4:创建用户组和oracle、grid用户

//用户组和用户的编号可以自定义,确保全流程配置一致即可,用户名为Oracle默认用户,建议不要改
groupadd -g 11001 oinstall  
groupadd -g 11002 dba  
groupadd -g 11003 oper  
groupadd -g 11004 backupdba  
groupadd -g 11005 dgdba  
groupadd -g 11006 kmdba  
groupadd -g 11007 asmdba  
groupadd -g 11008 asmoper  
groupadd -g 11009 asmadmin  
groupadd -g 11010 racdba  
useradd -u 11011 -g oinstall -G dba,asmdba,backupdba,dgdba,kmdba,racdba,oper oracle  
useradd -u 11012 -g oinstall -G asmadmin,asmdba,asmoper,dba grid
//创建完成后,修改grid和oracle用户密码,
passwd grid
passwd oracle

步骤5:创建安装目录

//安装目录可以自定义名字,确保后后面的环境变量一致即可。
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
mkdir -p /u01/app/oraInventory

步骤6:上传Oracel grid和db包(仅oracle01节点执行)

//上传并解压grid安装包到/u01/app/19.0.0/grid
cd /u01/app/19.0.0/grid
unzip LINUX.X64_193000_grid_home.zip
//上传并解压db安装包到/u01/app/oracle/product/19.0.0/db_1
cd /u01/app/oracle/product/19.0.0/db_1
unzip LINUX.X64_193000_db_home.zip

步骤7:修改目录所属用户和权限

chown -R grid:oinstall /u01/app/grid
chown -R grid:oinstall /u01/app/19.0.0/grid
chown -R oracle:oinstall /u01/app/oracle
chown -R grid:oinstall /u01/app/oraInventory
chmod -R 775 /u01/

步骤8:安装依赖包

//oracle01节点安装依赖包
cd /u01/app/19.0.0/grid/cv/rpm
rpm -ivh cvuqdisk-1.0.10-1.rpm
//拷贝安装包到oracle002节点,然后安装
scp cvuqdisk-1.0.10-1.rpm oracle02:~/
rpm -ivh cvuqdisk-1.0.10-1.rpm

2.4.配置系统参数

步骤1:修改系统限制

//修改系统限制
vi /etc/security/limits.d/20-nproc.conf
//修改如下,注释第一行,新增第二行
#*          soft    nproc     4096
* - nproc 16384

步骤2:新增用户限制

//系统用户限制,在最后新增
vi /etc/security/limits.conf 
//系统用户限制,在最后新增如下配置
# End of file
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 4194304
oracle soft memlock 4194304

步骤3:新增登录要求

//修改登录要求
vi /etc/pam.d/login
//新增以下配置
session required pam_limits.so

步骤4:修改系统参数

//修改系统参数
vi /etc/sysctl.conf 
//新增以下参数
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 18446744073692774399
kernel.shmmax = 18446744073692774399
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
//生效配置
sysctl -p

步骤5:修改shm参数并重新挂载

//修改shm挂载
cat>>/etc/fstab<<EOF
tmpfs /dev/shm tmpfs defaults,size=8G 0 0
EOF
//重新挂载
mount -o remount /dev/shm

步骤6:新增网络参数

//新增网络参数
cat >>/etc/sysconfig/network<<EOF
NOZEROCONF=yes
EOF

2.5.配置环境变量

步骤1:配置oracel01节点grid和oracle用户的环境变量(仅在oracel01节点执行)

//使用root用户添加grid用户的环境变量
cat>>/home/grid/.bash_profile<<EOF
export ORACLE_SID=+ASM1; 
export ORACLE_BASE=/u01/app/grid; 
export ORACLE_HOME=/u01/app/19.0.0/grid; 
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"; 
export PATH=.:\$PATH:\$HOME/bin:\$ORACLE_HOME/bin
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=\$ORACLE_HOME/JRE:\$ORACLE_HOME/jlib:\$ORACLE_HOME/rdbms/jlib
EOF
//使用root用户添加oracel用户的环境变量
cat>>/home/oracle/.bash_profile<<EOF
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=\$ORACLE_BASE/product/19.0.0/db_1
export ORACLE_SID=orcl1
export PATH=\$ORACLE_HOME/bin:\$PATH
export LD_LIBRARY_PATH=\$ORACLE_HOME/bin:/bin:/usr/bin:/usr/local/bin
export CLASSPATH=\$ORACLE_HOME/JRE:\$ORACLE_HOME/jlib:\$ORACLE_HOME/rdbms/jlib
EOF

步骤2:配置oracel02节点grid和oracle用户的环境变量(仅在oracel02节点执行)

//使用root用户添加grid用户的环境变量
cat>>/home/grid/.bash_profile<<EOF
export ORACLE_SID=+ASM2; 
export ORACLE_BASE=/u01/app/grid; 
export ORACLE_HOME=/u01/app/19.0.0/grid; 
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"; 
export PATH=.:\$PATH:\$HOME/bin:\$ORACLE_HOME/bin
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=\$ORACLE_HOME/JRE:\$ORACLE_HOME/jlib:\$ORACLE_HOME/rdbms/jlib
EOF
//使用root用户添加oracel用户的环境变量
cat>>/home/oracle/.bash_profile<<EOF
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=\$ORACLE_BASE/product/19.0.0/db_1
export ORACLE_SID=orcl2
export PATH=\$ORACLE_HOME/bin:\$PATH
export LD_LIBRARY_PATH=\$ORACLE_HOME/bin:/bin:/usr/bin:/usr/local/bin
export CLASSPATH=\$ORACLE_HOME/JRE:\$ORACLE_HOME/jlib:\$ORACLE_HOME/rdbms/jlib
EOF

注意事项:
1、环境变量目录和2.3步骤5中创建的目录一致
2、oracle01和oracle02的环境变量,只有ORACLE_SID不同,其他是相同的

2.6.配置ASM共享磁盘

ASM共享磁盘可以用块存储、文件存储来进行,本次介绍块+多路径的方式
步骤1:生成多路径文件(在准备阶段已经安装了多路径软件)

//生成多路径配置文件,完成后在/etc目录会生成multipath.conf文件
mpathconf --enable

步骤2:配置好iscsi后,通过iscsi发现并挂载

//发现iscsi target
iscsiadm -m discovery -t st -p 192.168.225.xxx
//登录iscsi target
iscsiadm -m node -T iqn.2020-09.com.xitcorp.iscsi-gw:d30374a8baf002d5 -l
//挂载后可以看到多路径盘信息
[root@oracle01 ~]# multipath -v2
create: mpatha (36001405468bde81e3944c35848625e16) undef LIO-ORG ,TCMU device     
size=100G features='0' hwhandler='0' wp=undef
|-+- policy='service-time 0' prio=1 status=undef
| `- 36:0:0:0 sdp 8:240 undef ready running
|-+- policy='service-time 0' prio=1 status=undef
| `- 37:0:0:0 sdd 8:48  undef ready running
`-+- policy='service-time 0' prio=1 status=undef
  `- 38:0:0:0 sdb 8:16  undef ready running
create: mpathb (36001405498b0207cda1446f850cdd37a) undef LIO-ORG ,TCMU device     
size=100G features='0' hwhandler='0' wp=undef
|-+- policy='service-time 0' prio=1 status=undef
| `- 36:0:0:1 sdv 65:80 undef ready running
|-+- policy='service-time 0' prio=1 status=undef
| `- 37:0:0:1 sdo 8:224 undef ready running
`-+- policy='service-time 0' prio=1 status=undef
  `- 38:0:0:1 sdm 8:192 undef ready running
。。。
。。。(本次选用了5100G,250G的盘,只截了部分图)

步骤3:获取每个盘的wwid(仅在oracle01节点执行)

//获取多路径挂载后的盘wwid
[root@oracle01 ~]# /usr/lib/udev/scsi_id -g -u -d /dev/mapper/mpatha
36001405468bde81e3944c35848625e16
[root@oracle01 ~]# /usr/lib/udev/scsi_id -g -u -d /dev/mapper/mpathb
36001405498b0207cda1446f850cdd37a
[root@oracle01 ~]# /usr/lib/udev/scsi_id -g -u -d /dev/mapper/mpathc
3600140593eb97c74b6740488640e7b5a
[root@oracle01 ~]# /usr/lib/udev/scsi_id -g -u -d /dev/mapper/mpathd
360014055f48f221e924423081432d7cd
[root@oracle01 ~]# /usr/lib/udev/scsi_id -g -u -d /dev/mapper/mpathe
3600140597bee7912b7d41458cab76768
[root@oracle01 ~]# /usr/lib/udev/scsi_id -g -u -d /dev/mapper/mpathf
36001405be8f0263331b47eaaabd9d8bf
[root@oracle01 ~]# /usr/lib/udev/scsi_id -g -u -d /dev/mapper/mpathg
36001405ec165e4b2a62472ea76da94b7

步骤4:配置多路径,重命名盘名称

vi /etc/multipath.conf
//在文件中新增以下配置,将步骤3中的wwid填写,并重命名以asm开头的盘,方便后面识别
multipaths {
     
        multipath {
     
                wwid 3600140557e3a25bdb064dbaada14ce49
                alias asm-diska
        }
        multipath {
     
                wwid 36001405483c0db2aa2d4776b16544980
                alias asm-diskb
		}
        multipath {
     
                wwid 36001405851a6d2bb0094d93957c8ddcb
                alias asm-diskc
		}
        multipath {
     
                wwid 36001405786ecaf67723466296ae705f1
                alias asm-diskd
		}
        multipath {
     
                wwid 3600140594850c836e2f4370a7575c779
                alias asm-diske
		}
        multipath {
     
                wwid 36001405cc1b00d307bc44bbb49c1bb53
                alias asm-diskf
		}
        multipath {
     
                wwid 360014050a31dd38a3f34f12a3afaef1c
                alias asm-diskg
		}
}

步骤5:将重命名的盘添加udev规则和所属用户、用户组

//将重命名的盘添加udev规则和所属用户、用户组
cat >> /etc/udev/rules.d/12-dm-permissions.rules << EOF
ENV{
     DM_NAME}=="asm-diska",OWNER:="grid",GROUP:="asmadmin",MODE:="660",SYMLINK+="mapper/$env{DM_NAME}"
ENV{
     DM_NAME}=="asm-diskb",OWNER:="grid",GROUP:="asmadmin",MODE:="660",SYMLINK+="mapper/$env{DM_NAME}"
ENV{
     DM_NAME}=="asm-diskc",OWNER:="grid",GROUP:="asmadmin",MODE:="660",SYMLINK+="mapper/$env{DM_NAME}"
ENV{
     DM_NAME}=="asm-diskd",OWNER:="grid",GROUP:="asmadmin",MODE:="660",SYMLINK+="mapper/$env{DM_NAME}"
ENV{
     DM_NAME}=="asm-diske",OWNER:="grid",GROUP:="asmadmin",MODE:="660",SYMLINK+="mapper/$env{DM_NAME}"
ENV{
     DM_NAME}=="asm-diskf",OWNER:="grid",GROUP:="asmadmin",MODE:="660",SYMLINK+="mapper/$env{DM_NAME}"
ENV{
     DM_NAME}=="asm-diskg",OWNER:="grid",GROUP:="asmadmin",MODE:="660",SYMLINK+="mapper/$env{DM_NAME}"
EOF

步骤6:重启多路径和udev,并检查配置生效

//生成多路径配置文件,完成后在/etc目录会生成multipath.conf文件
systemctl start multipathd.service
/sbin/udevadm trigger --type=devices --action=change
multipath -F
multipath -v2
//刷新后,多路径名称变成了asm-diska,如下:
[root@oracle01 ~]# multipath -l
asm-diskb (36001405498b0207cda1446f850cdd37a) dm-5 LIO-ORG ,TCMU device     
size=100G features='0' hwhandler='0' wp=rw
|-+- policy='service-time 0' prio=0 status=active
| `- 36:0:0:1 sdv 65:80 active undef unknown
|-+- policy='service-time 0' prio=0 status=enabled
| `- 37:0:0:1 sdo 8:224 active undef unknown
`-+- policy='service-time 0' prio=0 status=enabled
  `- 38:0:0:1 sdm 8:192 active undef unknown
asm-diska (36001405468bde81e3944c35848625e16) dm-4 LIO-ORG ,TCMU device     
size=100G features='0' hwhandler='0' wp=rw
//查看系统挂载情况,多路径盘的名称已经改变,并且已经连接到dm,用户和用户组权限正确
ll /dev/mapper/asm*
lrwxrwxrwx. 1 root root 7 Sep  4 17:58 /dev/mapper/asm-diska -> ../dm-4
lrwxrwxrwx. 1 root root 7 Sep  4 17:58 /dev/mapper/asm-diskb -> ../dm-5
lrwxrwxrwx. 1 root root 7 Sep  4 17:58 /dev/mapper/asm-diskc -> ../dm-6
lrwxrwxrwx. 1 root root 7 Sep  4 17:58 /dev/mapper/asm-diskd -> ../dm-7
lrwxrwxrwx. 1 root root 7 Sep  4 17:58 /dev/mapper/asm-diske -> ../dm-8
lrwxrwxrwx. 1 root root 7 Sep  4 17:58 /dev/mapper/asm-diskf -> ../dm-9
lrwxrwxrwx. 1 root root 8 Sep  4 17:58 /dev/mapper/asm-diskg -> ../dm-10
ll /dev/ | grep asm*
crw-------.  1 root root      10,  62 Sep  4 17:58 crash
brw-rw----.  1 grid asmadmin 253,  10 Sep  4 17:58 dm-10
brw-rw----.  1 grid asmadmin 253,   4 Sep  4 17:58 dm-4
brw-rw----.  1 grid asmadmin 253,   5 Sep  4 17:58 dm-5
brw-rw----.  1 grid asmadmin 253,   6 Sep  4 17:58 dm-6
brw-rw----.  1 grid asmadmin 253,   7 Sep  4 17:58 dm-7
brw-rw----.  1 grid asmadmin 253,   8 Sep  4 17:58 dm-8
brw-rw----.  1 grid asmadmin 253,   9 Sep  4 17:58 dm-9

注意:
1、ASM共享磁盘,必须保证oracle01和oracle02同时挂载成功
另外2种ASM磁盘创建方式:
通过iscsi挂载:

//获取盘uuid
/lib/udev/scsi_id -g -u -d /dev/sdd
//新建文件:/etc/udev/rules.d/99-oracle-asmdevices.rules,并写入已挂载的盘信息
KERNEL=="nvme*", PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="25cd2e422af250100",SYMLINK+="asm_data04", OWNER="grid", GROUP="asmadmin", MODE="0660"
//udev重载
udevadm control --reload
udevadm trigger

通过ceph rbd挂载:

//新建文件:/etc/udev/rules.d/50-rbd.rules,并写入已挂载的rbd信息
KERNEL=="rbd0", ENV{
     DEVTYPE}=="disk", PROGRAM="/usr/bin/ceph-rbdnamer %k", SYMLINK+="asm_ocr_rbd", OWNER="grid", GROUP="asmadmin", MODE="0660"
//udev重载
udevadm control --reload
udevadm trigger

2.7.配置用户互信

步骤1:配置2个节点的grid用户互信

//登入grid用户
su - grid
mkdir ~/.ssh
//以下2个生成密钥的命令,需要输入的参数直接回车即可
ssh-keygen -t rsa
ssh-keygen -t dsa
//生成认证文件
cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys
cat ~/.ssh/id_dsa.pub >>~/.ssh/authorized_keys

步骤1.2:配置2个节点的grid用户互信(仅在oracle01节点执行)

//将oracle01的所有密钥和认证文件拷贝给oracle02节点,单独执行,每条命令会输入密码
ssh oracle02 cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys
ssh oracle02 cat ~/.ssh/id_dsa.pub >>~/.ssh/authorized_keys
scp ~/.ssh/authorized_keys oracle02:~/.ssh/authorized_keys

步骤1.3:测试grid用户互信

//第一次ssh的话会添加host输入yes,不需要输入密码
[grid@oracle01 ~]$ ssh oracle01 date;ssh oracle02 date;ssh oracle01-priv date;ssh oracle02-priv date
Mon Sep  7 10:10:10 CST 2020
Mon Sep  7 10:10:11 CST 2020
Mon Sep  7 10:10:11 CST 2020
Mon Sep  7 10:10:12 CST 2020
//测试完成后退出grid用户
exit

步骤2:配置oracle用户互信(与步骤1一致进行配置和检查即可)

//登录oracle用户
su - oracle
mkdir ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa
ssh-keygen -t dsa
cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys
cat ~/.ssh/id_dsa.pub >>~/.ssh/authorized_keys
//以下仅在节点1执行,单独执行,每条命令会输入密码
ssh oracle02 cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys
ssh oracle02 cat ~/.ssh/id_dsa.pub >>~/.ssh/authorized_keys
scp ~/.ssh/authorized_keys oracle02:~/.ssh/authorized_keys
//用oracle用户在2个节点测试(第一次执行连接会添加host输入yes)
[oracle@oracle002 ~]$ ssh oracle01 date;ssh oracle02 date;ssh oracle01-priv date;ssh oracle02-priv date
Wed Sep  2 15:41:14 CST 2020
Wed Sep  2 15:41:13 CST 2020
Wed Sep  2 15:41:14 CST 2020
Wed Sep  2 15:41:15 CST 2020
//完成后退出oracle用户
exit

3.grid图形界面安装

步骤1:登录图形化界面,使用grid用户启动安装,进入(仅在oracle01节点执行)

cd /u01/app/19.0.0/grid/
./gridSetup.sh
//如果启动失败,则设置DISPALY环境变量,根据不同用户设置不同变量,通过xdpyinfo查看当前用户的显示名字
export DISPLAY=:0
或者
export DISPLAY=localhost:0

在CentOS7.6下搭建Oracle19c RAC集群_第8张图片
步骤2:选择配置新集群
在CentOS7.6下搭建Oracle19c RAC集群_第9张图片
步骤3:选择创建标准集群
在CentOS7.6下搭建Oracle19c RAC集群_第10张图片
步骤4:集群名字可自定义,scan Name必须和host里面的scan ip的名字保持一致,端口建议不要更改。
在CentOS7.6下搭建Oracle19c RAC集群_第11张图片
步骤5:将oracle02节点添加进列表
在CentOS7.6下搭建Oracle19c RAC集群_第12张图片
步骤6:配置ssh连接,配置好grid密码后,先setup
在CentOS7.6下搭建Oracle19c RAC集群_第13张图片
步骤7:配置网络,19版本需要私网需要选择ASM&Private
在CentOS7.6下搭建Oracle19c RAC集群_第14张图片
步骤8:选择Oracle Flex ASM for storage
在CentOS7.6下搭建Oracle19c RAC集群_第15张图片
步骤9:选择默认NO
在CentOS7.6下搭建Oracle19c RAC集群_第16张图片
步骤10:选择External作为共享磁盘,并修改发现路径为/dev/mapper/asm*,发现了最开始配置的iscsi磁盘,选择5块100G磁盘(共有7块,这里用到大小相同的5块)
在CentOS7.6下搭建Oracle19c RAC集群_第17张图片
步骤11:设置oracle SYS和SYSADM的密码(不符合的话会有提示)
在CentOS7.6下搭建Oracle19c RAC集群_第18张图片
步骤12:选择不使用IPMI
在CentOS7.6下搭建Oracle19c RAC集群_第19张图片
步骤12:默认不勾选
在CentOS7.6下搭建Oracle19c RAC集群_第20张图片
步骤13:因为最开始已经创建了,所以保持默认用户即可
在CentOS7.6下搭建Oracle19c RAC集群_第21张图片
步骤14:配置oracle软件路径和安装路径,保持默认即可(之前已创建)
在CentOS7.6下搭建Oracle19c RAC集群_第22张图片
步骤15:保持metadata目录,保持默认即可(之前已创建)
在CentOS7.6下搭建Oracle19c RAC集群_第23张图片
步骤16:允许root自动进行配置(这一步做了就不需要手动再执行其他脚本了)
在CentOS7.6下搭建Oracle19c RAC集群_第24张图片
步骤17:检查完成后,因为没有用nds所以dns可以不管,resolv.conf也可以不管;single client access 那么是因为我们只配置了1个scan ip,所以也可以不管。 选择ignore all进行下一步即可
在CentOS7.6下搭建Oracle19c RAC集群_第25张图片
步骤18:安装过程中,出现需要root用户的提示,选择yes(这一步会持续较长的时间)在CentOS7.6下搭建Oracle19c RAC集群_第26张图片
步骤18:安装100%时,有提示校验失败,因为我们之前忽略过dns等,所以不用管,直接ok下一步即可(但是没有到100%出错,需要根据错误进行修复),点击skip,然后close
在CentOS7.6下搭建Oracle19c RAC集群_第27张图片

4.database图形界面安装

步骤1:进入cd /u01/app/oracle/product/19.0.0/db_1目录,启动安装(仅oracle01节点执行)

su - oracle 
cd /u01/app/oracle/product/19.0.0/db_1
./runInstaller

步骤2:选择只安装软件,后面的库自己创建
在CentOS7.6下搭建Oracle19c RAC集群_第28张图片
步骤3:选择安装RAC集群
在CentOS7.6下搭建Oracle19c RAC集群_第29张图片
步骤4:选择节点,并配置oracle用户的ssh连接,setup并test后,进入下一步
在CentOS7.6下搭建Oracle19c RAC集群_第30张图片
步骤5:选择安装企业版本
在CentOS7.6下搭建Oracle19c RAC集群_第31张图片
步骤6:oracle的安装目录,默认即可。
在CentOS7.6下搭建Oracle19c RAC集群_第32张图片
步骤7:oracle用户配置,默认即可
在CentOS7.6下搭建Oracle19c RAC集群_第33张图片
步骤8:允许使用root用户自动配置
在CentOS7.6下搭建Oracle19c RAC集群_第34张图片
步骤9:检查完成后,出现和grid一样的错误,dns和单个scan ip,直接忽略即可。
在CentOS7.6下搭建Oracle19c RAC集群_第35张图片
步骤10:安装过程较久(20多分钟),允许root执行脚本,安装完成
在CentOS7.6下搭建Oracle19c RAC集群_第36张图片

5.自定义创建和安装数据库

步骤1:使用oracle用户,dbca启动图形化界面,选择创建一个数据库
在CentOS7.6下搭建Oracle19c RAC集群_第37张图片
步骤2:选择高级配置
在CentOS7.6下搭建Oracle19c RAC集群_第38张图片
步骤3:选择RAC集群,使用admin安装
在CentOS7.6下搭建Oracle19c RAC集群_第39张图片
步骤4:选择2台oracle,进行下一步
在CentOS7.6下搭建Oracle19c RAC集群_第40张图片
步骤5:自定义数据库名和实例名,关闭容器数据库
在CentOS7.6下搭建Oracle19c RAC集群_第41张图片
步骤6:选择数据库的安装位置,默认会选择之前ASM配置里创建好的DATA磁盘组
在CentOS7.6下搭建Oracle19c RAC集群_第42张图片
步骤7:开启日志归档,添加已有的DATA磁盘组
在CentOS7.6下搭建Oracle19c RAC集群_第43张图片
步骤8:安全相关配置不用管,默认下一步
在CentOS7.6下搭建Oracle19c RAC集群_第44张图片
步骤9:配置写内存
在CentOS7.6下搭建Oracle19c RAC集群_第45张图片
步骤10:配置字符集为16GBK,其他的不变,进入下一步
在CentOS7.6下搭建Oracle19c RAC集群_第46张图片
步骤11:已经完成集群验证,可以不用再验证了,也可以进行验证
在CentOS7.6下搭建Oracle19c RAC集群_第47张图片
步骤12:配置数据库密码
在CentOS7.6下搭建Oracle19c RAC集群_第48张图片
步骤13:进入自定义配置,将应用文件的最大数,改成8192(根据实际情况而定自行修改),然后进入下一步
在CentOS7.6下搭建Oracle19c RAC集群_第49张图片
在CentOS7.6下搭建Oracle19c RAC集群_第50张图片
步骤14:校验时也是之前的dns和scan ip错误,可以忽略,进行下一步安装
在CentOS7.6下搭建Oracle19c RAC集群_第51张图片
步骤15:安装数据库需要20多分钟,安装完成后,可以看到数据库信息,通过密码管理可以对用户的密码进行设置。
在CentOS7.6下搭建Oracle19c RAC集群_第52张图片
在CentOS7.6下搭建Oracle19c RAC集群_第53张图片

卸载RAC集群

有时候需要重新安装,用下面的方法卸载集群
停止集群软件
crsctl stop crs -f
查询并kill相关进程
ps -ef | grep css | grep -v grep
ps -ef | grep crs | grep -v grep
ps -ef | grep evm | grep -v grep
ps -ef | grep oracle | grep -v grep
删除相关目录
rm -rf /var/tmp/.oracle
rm -rf /tmp/.oracle
rm -rf /etc/oratab
rm -rf /tmp/O*
rm -rf /etc/oraInst.loc
rm -rf /etc/oracle
rm -rf /u01

你可能感兴趣的:(oracle,数据库,centos,运维,linux)