• Linux平台 Oracle 19c RAC安装Part1:准备工作


    一、实施前期准备工作

    二、安装前期准备工作

    Linux平台 Oracle 19c RAC安装指导:
    Part1:Linux平台 Oracle 19c RAC安装Part1:准备工作
    Part2:Linux平台 Oracle 19c RAC安装Part2:GI配置
    Part3:Linux平台 Oracle 19c RAC安装Part3:DB配置

    本文安装环境:OEL 7.6 + Oracle 19.3 GI & RAC

    一、实施前期准备工作

    1.1 服务器安装操作系统

    配置完全相同的两台服务器,安装相同版本的Linux操作系统。留存系统光盘或者镜像文件。 我这里是OEL7.6,系统目录大小均一致。对应OEL7.6的系统镜像文件放在服务器上,供后面配置本地yum使用。

    1.2 Oracle安装介质

    Oracle 19.3 版本2个zip包(总大小6G+,注意空间): LINUX.X64_193000_grid_home.zip MD5: LINUX.X64_193000_db_home.zip MD5: 这个自己去Oracle官网下载,然后只需要上传到节点1即可。

    1.3 共享存储规划

    从存储中划分出两台主机可以同时看到的共享LUN,3个1G的盘用作OCR和Voting Disk,其余分了3个12G的盘规划做用做数据盘和FRA。 注:19c安装GI时,可以选择是否配置GIMR,且默认不配置,我这里选择不配置,所以无需再给GIMR分配对应空间。
    --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的配置:

    1.4 网络规范分配

    公有网络 以及 私有网络。 公有网络:这里实验环境是enp0s3是public IP,enp0s8是ASM & Private IP,实际生产需根据实际情况调整规划,一般public是有OS层绑定(bonding),private是使用HAIP。

    二、安装前期准备工作

    2.1 各节点系统时间校对

    各节点系统时间校对:
    --检验时间和时区确认正确
    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服务。

    2.2 各节点关闭防火墙和SELinux

    各节点关闭防火墙:
    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即可。

    2.3 各节点检查系统依赖包安装情况

    yum install -y oracle-database-preinstall-18c-1.0-1.el7.x86_64
    

    在OEL7.6中还是oracle-database-preinstall-18c的名字,并没有对应19c的,但实际测试,在依赖包方面基本没区别。
    如果选用的是其他Linux,比如常用的RHEL,那就需要yum安装官方文档要求的依赖包了。

    2.4 各节点配置/etc/hosts

    编辑/etc/hosts文件:
    #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
    

    2.5 各节点创建需要的用户和组

    创建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,实际生产环境建议设置符合规范的复杂密码。

    2.6 各节点创建安装目录

    各节点创建安装目录(root用户):
    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/
    

    2.7 各节点系统配置文件修改

    内核参数修改: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中也没有自动配置,需要手工配置。

    2.8 各节点设置用户的环境变量

    第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;
    
  • 相关阅读:
    [原]Jenkins(七)---jenkins项目编译测试发布由maven构建的web项目
    [原]jenkins(六)---jenkins远程部署脚本
    [原]jenkins(五)---jenkins添加项目
    [原]Jenkins(四)---Jenkins添加密钥对
    [原]Jenkins(三)---Jenkins初始配置和插件配置
    [原]Jenkins(二)---jenkins之Git+maven+jdk+tomcat
    mysql给root开启远程访问权限
    [原]git的使用(六)---远程仓库
    [原]git的使用(五)---删除文件
    [原]git的使用(四)---撤销修改
  • 原文地址:https://www.cnblogs.com/jyzhao/p/11273271.html
Copyright © 2020-2023  润新知