1、实施前期准备工做html
2、安装前期准备工做linux
Linux平台 Oracle 19c RAC安装指导:
Part1:Linux平台 Oracle 19c RAC安装Part1:准备工做
Part2:Linux平台 Oracle 19c RAC安装Part2:GI配置
Part3:Linux平台 Oracle 19c RAC安装Part3:DB配置shell
本文安装环境:OEL 7.6 + Oracle 19.3 GI & RAC服务器
配置彻底相同的两台服务器,安装相同版本的Linux操做系统。留存系统光盘或者镜像文件。
我这里是OEL7.6,系统目录大小均一致。对应OEL7.6的系统镜像文件放在服务器上,供后面配置本地yum使用。
网络
--OEL7使用udev须要给磁盘建立分区,这里我使用fdisk 将对应盘建立一个主分区,分区号为2(这里只是为了区分): sdb sdc sdd sde sdf sdg sdb2 sdc2 sdd2 sde2 sdf2 sdg2 1G 1G 1G 12G 12G 12G --OEL7中udev需绑定对应磁盘的分区 for i in b c d e f g; do echo "KERNEL==\"sd?2\", SUBSYSTEM==\"block\", PROGRAM==\"/usr/lib/udev/scsi_id -g -u -d /dev/\$parent\", RESULT==\"`/usr/lib/udev/scsi_id -g -u -d /dev/sd\$i`\", SYMLINK+=\"asm-disk$i\", OWNER=\"grid\", GROUP=\"asmadmin\", MODE=\"0660\"" done --vi /etc/udev/rules.d/99-oracle-asmdevices.rules KERNEL=="sd?2", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$parent", RESULT=="1ATA_VBOX_HARDDISK_VB208b8d32-df9af9d6", SYMLINK+="asm-ocr1", OWNER="grid", GROUP="asmadmin", MODE="0660" KERNEL=="sd?2", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$parent", RESULT=="1ATA_VBOX_HARDDISK_VBe51f4d0a-1b73c589", SYMLINK+="asm-ocr2", OWNER="grid", GROUP="asmadmin", MODE="0660" KERNEL=="sd?2", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$parent", RESULT=="1ATA_VBOX_HARDDISK_VBc63b1aa3-1e290288", SYMLINK+="asm-ocr3", OWNER="grid", GROUP="asmadmin", MODE="0660" KERNEL=="sd?2", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$parent", RESULT=="1ATA_VBOX_HARDDISK_VB53ee20b6-40c4b9a3", SYMLINK+="asm-data01", OWNER="grid", GROUP="asmadmin", MODE="0660" KERNEL=="sd?2", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$parent", RESULT=="1ATA_VBOX_HARDDISK_VB3822afbf-62d8a84d", SYMLINK+="asm-data02", OWNER="grid", GROUP="asmadmin", MODE="0660" KERNEL=="sd?2", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$parent", RESULT=="1ATA_VBOX_HARDDISK_VBfbb7943a-5ec216e5", SYMLINK+="asm-data03", OWNER="grid", GROUP="asmadmin", MODE="0660" --udevadm配置重载生效: [root@db193 rules.d]# udevadm control --reload [root@db193 rules.d]# udevadm trigger --确认udev已绑定成功: [root@db193 rules.d]# ls -l /dev/asm* lrwxrwxrwx. 1 root root 4 Jul 30 23:45 /dev/asm-data01 -> sde2 lrwxrwxrwx. 1 root root 4 Jul 30 23:45 /dev/asm-data02 -> sdf2 lrwxrwxrwx. 1 root root 4 Jul 30 23:45 /dev/asm-data03 -> sdg2 lrwxrwxrwx. 1 root root 4 Jul 30 23:45 /dev/asm-ocr1 -> sdb2 lrwxrwxrwx. 1 root root 4 Jul 30 23:45 /dev/asm-ocr2 -> sdc2 lrwxrwxrwx. 1 root root 4 Jul 30 23:45 /dev/asm-ocr3 -> sdd2 --第二个节点db195最开始直接使用udevadm操做发现不行,此时需先partprobe,再udevadm触发便可成功 --使用partprobe将磁盘分区表变化信息通知内核,请求操做系统从新加载分区表 [root@db195 ~]# partprobe /dev/sdb [root@db195 ~]# partprobe /dev/sdc [root@db195 ~]# partprobe /dev/sdd [root@db195 ~]# partprobe /dev/sde [root@db195 ~]# partprobe /dev/sdf [root@db195 ~]# partprobe /dev/sdg --udevadm配置重载生效: [root@db195 ~]# udevadm control --reload [root@db195 ~]# udevadm trigger --确认udev已绑定成功: [root@db195 ~]# ls -l /dev/asm* lrwxrwxrwx. 1 root root 4 Jul 30 23:49 /dev/asm-data01 -> sde2 lrwxrwxrwx. 1 root root 4 Jul 30 23:49 /dev/asm-data02 -> sdf2 lrwxrwxrwx. 1 root root 4 Jul 30 23:49 /dev/asm-data03 -> sdg2 lrwxrwxrwx. 1 root root 4 Jul 30 23:49 /dev/asm-ocr1 -> sdb2 lrwxrwxrwx. 1 root root 4 Jul 30 23:49 /dev/asm-ocr2 -> sdc2 lrwxrwxrwx. 1 root root 4 Jul 30 23:49 /dev/asm-ocr3 -> sdd2
我此次搭建的实验环境为了精简,没有再去模拟多路径的环境,若是想尽量的模拟生产环境,能够参考以前18c的配置:oracle
公有网络 以及 私有网络。
公有网络:这里实验环境是enp0s3是public IP,enp0s8是ASM & Private IP,实际生产需根据实际状况调整规划,通常public是有OS层绑定(bonding),private是使用HAIP。app
各节点系统时间校对:oop
--检验时间和时区确认正确 date --关闭chrony服务,移除chrony配置文件(后续使用ctss) systemctl list-unit-files|grep chronyd systemctl status chronyd systemctl disable chronyd systemctl stop chronyd mv /etc/chrony.conf /etc/chrony.conf_bak
这里实验环境,选择不使用NTP和chrony,这样Oracle会自动使用本身的ctss服务。
测试
systemctl list-unit-files|grep firewalld systemctl status firewalld systemctl disable firewalld systemctl stop firewalld
各节点关闭SELinux:操作系统
getenforce cat /etc/selinux/config 手工修改/etc/selinux/config SELINUX=disabled,或使用下面命令: sed -i '/^SELINUX=.*/ s//SELINUX=disabled/' /etc/selinux/config setenforce 0
最后核实各节点已经关闭SELinux便可。
yum install -y oracle-database-preinstall-18c-1.0-1.el7.x86_64
在OEL7.6中仍是oracle-database-preinstall-18c的名字,并无对应19c的,但实际测试,在依赖包方面基本没区别。
若是选用的是其余Linux,好比经常使用的RHEL,那就须要yum安装官方文档要求的依赖包了。
#public ip 192.168.1.193 db193 192.168.1.195 db195 #virtual ip 192.168.1.194 db193-vip 192.168.1.196 db195-vip #scan ip 192.168.1.197 db19c-scan #private ip 10.10.1.193 db193-priv 10.10.1.195 db195-priv
修改主机名(建议由SA调整):
--例如:修改主机名为db193: hostnamectl status hostnamectl set-hostname db193 hostnamectl status
建立group & user,给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 echo oracle | passwd --stdin oracle echo oracle | passwd --stdin grid
我这里测试环境设置密码都是oracle,实际生产环境建议设置符合规范的复杂密码。
mkdir -p /u01/app/19.3.0/grid mkdir -p /u01/app/grid mkdir -p /u01/app/oracle chown -R grid:oinstall /u01 chown oracle:oinstall /u01/app/oracle chmod -R 775 /u01/
内核参数修改:vi /etc/sysctl.conf
实际上OEL在安装依赖包的时候也同时修改了这些值,如下参数主要是核对或是对RHEL版本做为参考:
# vi /etc/sysctl.conf 增长以下内容: vm.swappiness = 1 vm.dirty_background_ratio = 3 vm.dirty_ratio = 80 vm.dirty_expire_centisecs = 500 vm.dirty_writeback_centisecs = 100 kernel.shmmni = 4096 kernel.shmall = 1073741824 kernel.shmmax = 4398046511104 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 fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.panic_on_oops = 1 net.ipv4.conf.enp0s8.rp_filter = 2 net.ipv4.conf.enp0s9.rp_filter = 2 net.ipv4.conf.enp0s10.rp_filter = 2
修改生效:
#sysctl -p /etc/sysctl.conf
注:enp0s9和enp0s10是IPSAN专用的网卡,跟私网同样设置loose mode。(我这里由于没有使用IPSAN,因此没有这两张网卡)
#sysctl -p /etc/sysctl.d/98-oracle.conf net.ipv4.conf.enp0s8.rp_filter = 2 net.ipv4.conf.enp0s9.rp_filter = 2 net.ipv4.conf.enp0s10.rp_filter = 2
用户shell的限制:vi /etc/security/limits.d/99-grid-oracle-limits.conf
oracle soft nproc 16384 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240 oracle hard stack 32768 grid soft nproc 16384 grid hard nproc 16384 grid soft nofile 1024 grid hard nofile 65536 grid soft stack 10240 grid hard stack 32768
这里须要注意OEL自动配置的 /etc/security/limits.d/oracle-database-server-12cR2-preinstall.conf 并不包含grid用户的,能够手工加上。
vi /etc/profile.d/oracle-grid.sh
#Setting the appropriate ulimits for oracle and grid user if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -u 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi if [ $USER = "grid" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -u 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi
这个OEL中也没有自动配置,须要手工配置。
第1个节点grid用户:
export ORACLE_SID=+ASM1; export ORACLE_BASE=/u01/app/grid; export ORACLE_HOME=/u01/app/19.3.0/grid; export PATH=$ORACLE_HOME/bin:$PATH; export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;
第2个节点grid用户:
export ORACLE_SID=+ASM2; export ORACLE_BASE=/u01/app/grid; export ORACLE_HOME=/u01/app/19.3.0/grid; export PATH=$ORACLE_HOME/bin:$PATH; export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;
第1个节点oracle用户:
export ORACLE_SID=jydb1; export ORACLE_BASE=/u01/app/oracle; export ORACLE_HOME=/u01/app/oracle/product/19.3.0/db_1; export PATH=$ORACLE_HOME/bin:$PATH; export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;
第2个节点oracle用户:
export ORACLE_SID=jydb2; export ORACLE_BASE=/u01/app/oracle; export ORACLE_HOME=/u01/app/oracle/product/19.3.0/db_1; export PATH=$ORACLE_HOME/bin:$PATH; export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;