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

实操篇:Oracle 19c的安装部署

一森咖记 2019-09-18
2666

【此为"一森咖记"公众号——第45篇文章】

【引言

今早看了bisal老刘的微信推文Oracle 19cRPM安装(关注老刘公众号:disal的个人杂货铺)。看后顿觉:RPM这种一键式安装,真的太可怕了。


oracle19cAutonomous自治布局越来越明朗,19c力求稳定运行,这正是Oracle一直在倡导大力推行的云自治、云管理策略相吻合,且也提供了本地安装,向下兼容性,可谓雄心勃勃;另也侧面反映,传统DBA们要开始投钱武装大脑了,平时会的那点东西不怎么够用了,为了美好生活的向往,两条路走:要么在Oracle这条路上学深它;要么多学点其他DB啥的,找棵其他树吊吊看,争取被pass掉还有口饭吃。

 

智能自治、云时代、人工智能时代到来,这太可怕了;各位亲,看清大局,找坑坐好。

 

先简单介绍19c的重要性:

Oracle Database 19c ,也就是12.2.0.3,是Oracle Database 12c18c系列产品的最终版本 19c提供4年的高级支持(截止到20231月底)和至少3年的延长支持(截至20261月底)。有关最新的Oracle支持计划,请参阅My Oracle Support上的文档ID 742060.1


 

重要提示:

如果还想看11g,12c,18c,19csupport lifetime,请参考本人公众号:

干货:RHEL7.2生产环境下双节点12c RAC搭建实操


这里简单展示下:

Oracle12c版本对应关系:

Oracle12cR2=12.2.0.1 

Oracle18C=12.2.0.2 

Oracle19c=12.2.0.3

 

Linux上安装Oracle Database 19c,需要OL7RHEL7SLES12及以上的更高版本。

下面的内容来自官方文档。

The following Linux x86-64 kernels are supported: 

1. Oracle Linux 7.4 with the Unbreakable Enterprise Kernel 4: 4.1.12-112.16.7.el7uek.x86_64 or later 

2. Oracle Linux 7.4 with the Unbreakable Enterprise Kernel 5: 4.14.35-1818.1.6.el7uek.x86_64 or later 

3. Oracle Linux 7.4 with the Red Hat Compatible kernel: 3.10.0-693.5.2.0.1.el7.x86_64 or later 

4. Red Hat Enterprise Linux 7.4: 3.10.0-693.5.2.0.1.el7.x86_64 or later 

5. SUSE Linux Enterprise Server 12 SP3: 4.4.103-92.56-default or later

注意:

Oracle Enterprise Linux6和RedHat Linux6并没有出现在官方给的列表中。

 

目前,自己有个生产系统做19c 的HA高可用搭建部署,所以有了此文。

本文为19c的non-cdb安装,其实和cdb安装大同小异,大家可借鉴参考。

 

重要提示:

19c也就是12.2.0.3,是12c系列终极、稳定版本!


广告插播:“生产就上19c,稳定运行妥妥的”。

 

本文大纲:

1. 环境变量设置(重点)

2. 软件安装(简述)

3. 实例安装(简述)


文章将重点讲述环境变量的设置,软件安装和实例安装因和11g12c相似,本文将不做过多讲述。

 

【软件下载】

Oracle网址:https://www.oracle.com/cn/downloads/


19.3的下载地址:

https://www.oracle.com/database/technologies/oracle19c-linux-downloads.html



一、 环境变量设置

节点命名规划

主机的节点名称规划为group-db01。

备机的节点名称规划为group-db02。

ADG的节点名称规划为group-adg

 

192.168.0.161  group-db01

192.168.0.162  group-db02

192.168.0.163  group-adg


1) 创建用户

三台服务器,分别建立用户和组:

    [root@group-db01 ]# groupadd dba
    [root@group-db01 ]# useradd -g dba oracle
    [root@group-db01 ]# passwd oracle

     

    分配目录及权限设置:

      [oracle@group-db01 ~]$ mkdir -p oracle/oracle/product/19.3.0/db_1
      [oracle@group-db01 ~]$ chmod -R 775 oracle

       

      2) /ETC/HOSTS

        # more etc/hosts
        127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
        ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6


        #primary database
        192.168.0.161 group-db01
        #second database
        192.168.0.162 group-db02
        #adg database
        192.168.0.163 group-adg

        注意:

        这里面 127.0.0.1 一定要这么写,不然2节点root.sh可能出 ctss错误,ctss 超时默认是10分钟。

        3) 配置内核参数

        参考

        https://docs.oracle.com/en/database/oracle/oracle-database/19/ladbi/database-installation-guide-linux.pdf

        中A-4页

         

        vi >> /etc/sysctl.conf <<EOF

          fs.aio-max-nr = 1048576
          fs.file-max = 6815744
          kernel.shmall = 18446744073692774399
          kernel.shmmax = 922337203684638
          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

           

          Confirm that the values are set correctly:

          # sbin/sysctl -a

           

          To check the current TCP buffer size, enter the following command:

            [root@group-db01 ~]# sysctl -a |grep -e net.ipv4.tcp_[rw]mem
            net.ipv4.tcp_rmem = 4096 87380 6291456
            net.ipv4.tcp_wmem = 4096 16384 4194304


              4)Set shell limits for the oracle user

            1. Add the following lines to the etc/security/limits.conf file:

              [root@group-db01 ~]# vi  etc/security/limits.conf
              # add limits for oracle
              oracle soft nproc 2047
              oracle hard nproc 16384
              oracle soft nofile 1024
              oracle hard nofile 65536

              设置ulimit

              验证当前的ulimits,在/etc/profile添加如下内容是

                if [ $USER = "oracle" ]; then
                if [ $SHELL = "/bin/ksh" ]; then
                ulimit -u 16384
                ulimit -n 65536
                else
                ulimit -u 16384 -n 65536
                fi
                fi


                # source etc/profile


                5) 配置用户环境变量

                ----oracle 用户参数设置

                  [oracle@group-db01 ~]$ vi ~/.bash_profile
                  # Oracle Settings
                  ORACLE_BASE=/oracle/oracle; export ORACLE_BASE
                  ORACLE_HOME=/oracle/oracle/product/19.3.0/db_1; export ORACLE_HOME
                  ORACLE_TERM=xterm; export ORACLE_TERM
                  ORACLE_SID=group; export ORACLE_SID

                  PATH=$ORACLE_HOME/bin:$PATH; export PATH
                  LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
                  LANG=en_US;export LANG


                    6) 检查需要的包

                  操作系统包安装及配置

                  Packages for Oracle Linux 7 and Red Hat Enterprise Linux 7

                  The following packages (or later versions) must be installed:

                    binutils-2.23.52.0.1-12.el7.x86_64
                    compat-libcap1-1.10-3.el7.x86_64
                    gcc-4.8.2-3.el7.x86_64
                    gcc-c++-4.8.2-3.el7.x86_64
                    glibc-2.17-36.el7.i686
                    glibc-2.17-36.el7.x86_64
                    glibc-devel-2.17-36.el7.i686
                    glibc-devel-2.17-36.el7.x86_64
                    ksh
                    libaio-0.3.109-9.el7.i686
                    libaio-0.3.109-9.el7.x86_64
                    libaio-devel-0.3.109-9.el7.i686
                    libaio-devel-0.3.109-9.el7.x86_64
                    libgcc-4.8.2-3.el7.i686
                    libgcc-4.8.2-3.el7.x86_64
                    libstdc++-4.8.2-3.el7.i686
                    libstdc++-4.8.2-3.el7.x86_64
                    libstdc++-devel-4.8.2-3.el7.i686
                    libstdc++-devel-4.8.2-3.el7.x86_64
                    libXi-1.7.2-1.el7.i686
                    libXi-1.7.2-1.el7.x86_64
                    libXtst-1.2.2-1.el7.i686
                    libXtst-1.2.2-1.el7.x86_64
                    make-3.82-19.el7.x86_64
                    sysstat-10.1.5-1.el7.x86_64

                     

                    综上所述,执行以下命令将安装所需要的rpm包

                      [root@group-db01 ~]#yum -y install binutils compat-libstdc++-33 elfutils-libelf \
                      elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common \
                      glibc-devel kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel \
                      make numactl-devel sysstat unixODBC unixODBC-devel pdksh compat-libcap1

                       

                      7) 关闭防火墙

                      禁止防火墙和selinux

                        # systemctl disable firewalld
                        # systemctl stop firewalld


                        8) 关闭SELINUX

                        # 修改/etc/sysconfig/selinux确保SELINUX=disabled,然后执行setenforce 0或者reboot服务器以生效

                        最小配置,将SElinux设置为PERMISSIVE模式:

                        # vi etc/selinux/config

                        SELINUX=disable

                         

                        setenforce 0

                         

                        # getenforce

                        Disabled

                        9) 禁用透明巨页

                        临时关闭

                        Disabling Transparent HugePages

                          # echo never> /sys/kernel/mm/transparent_hugepage/enabled
                          # cat /sys/kernel/mm/transparent_hugepage/enabled
                          always madvise [never]

                           

                          永久关闭:

                          修改/etc/default/grub,文末追加如下:

                            GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=vg_root/lv_root rd.lvm.lv=vg_root/lv_swap rhgb quiet transparent_hugepage=never"


                            使修改生效:

                              #grub2-mkconfig -o /boot/grub2/grub.cfg

                               

                              如上面的方法重启之后没生效,可用以下方法:

                              或:Add the following lines in /etc/rc.local and reboot the server:

                                if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
                                echo never > /sys/kernel/mm/transparent_hugepage/enabled
                                fi
                                if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
                                echo never > /sys/kernel/mm/transparent_hugepage/defrag
                                fi

                                 

                                10) 防止实例异常宕掉

                                RHEL7.2中,systemd-logind 服务引入了一个新特性,该新特性是:当一个user 完全退出os之后,remove掉所有的IPC objects。该特性由/etc/systemd/logind.conf参数文件中RemoveIPC选项来控制。默认设置了RemoveIPC=yes RHEL7.2  crashOracle asm 实例和Oracle database实例,该问题也会在使用Shared Memory Segment (SHM) or Semaphores (SEM)的应用程序中发生。

                                 

                                如何防止?

                                  #vi /etc/systemd/logind.conf
                                  将RemoveIPC=yes 修改为no

                                  重启生效或者运行如下命令使之生效

                                    # systemctl daemon-reload# systemctl restart systemd-logind

                                    详细查看本人公众号:

                                    《What:ASM自动脱落了》

                                    注意:因此次RHEL7.3,故不用修改/etc/systemd/logind.conf配置。


                                    11) 配置互信(练手,可跳过)

                                    三个节点分别执行 :

                                      # ssh-keygen -t rsa
                                      [root@vehi_mondb2 .ssh~]# scp id_rsa.pub 192.168.0.161:~/.ssh/id_rsa.pub1
                                      [root@vehi_mondb3 .ssh~]# scp id_rsa.pub 192.168.0.161:~/.ssh/id_rsa.pub2
                                      [root@vehi_mondb1 .ssh~]# cat id_rsa.pub id_rsa.pub1 id_rsa.pub2 > authorized_keys
                                      [root@vehi_mondb1 .ssh~]# scp authorized_keys 192.168.0.162:~/.ssh/
                                      [root@vehi_mondb1 .ssh~]# scp authorized_keys 192.168.0.163:~/.ssh/


                                      shell > chmod 600 authorized_keys (三个节点都执行)


                                      验证ssh配置是否正确

                                      以oracle用户在所有节点分别执行:

                                        $ ssh group-db01 date
                                        $ ssh group-db02 date
                                        $ ssh group-adg date

                                        如果不需要输入密码就可以输出时间,说明ssh验证配置成功。必须把以上命令在两个节点都运行,每一个命令在第一次执行的时候需要输入yes。如下框文处:

                                          [oracle@group-db02 .ssh]$ ssh group-db01 date
                                          The authenticity of host 'group-db01 (192.168.0.161)' can't be established.
                                          ECDSA key fingerprint is 3d:90:b0:64:bc:95:07:fc:ba:e1:e3:90:11:f3:3a:14.
                                          Are you sure you want to continue connecting (yes/no)? yes
                                          Warning: Permanently added 'group-db01' (ECDSA) to the list of known hosts.
                                          Tue Sep 17 14:10:32 CST 2019

                                          如果不运行这些命令,即使ssh验证已经配好,安装clusterware的时候也会出现错误:

                                          The specified nodes are not clusterable

                                          因为,配好ssh后,还需要在第一次访问时输入yes,才算是真正的无障碍访问其他服务器。

                                           

                                          12) 配置MobaXtem

                                          安装MobaXtem9.0 以上版本,进行图形化安装

                                          设置环境变量:export DISPLAY=IP:0.0  

                                          说明:此IP为MobaXtem本地客户端电脑的IP地址。


                                          二、 Oracle软件安装(简述)

                                          使用yum istall 方式安装上述所显示所需packages;

                                          三、实例安装(简述)

                                          1. 配置监听


                                          使用dbca安装实例


                                          至此,全部安装介绍。

                                           

                                          【结语】

                                          1. Linux上安装Oracle Database 19c,需要OL7RHEL7SLES12及以上的更高版本

                                          2. 19c也就是12.2.0.3,是12c系列的终极、稳定版本;

                                          3. “生产就上19c,稳定运行妥妥的”;

                                          4. 智能自治、云时代、人工智能时代到来,这太可怕了;各位亲,看清大局,危机意识,找坑坐好。

                                          5. 近代史告诉我们“落后就要挨打”,要有危机意识,规划好少烦恼。


                                          【参考】

                                          https://www.oracle.com/database/technologies/oracle19c-linux-downloads.html

                                          【参考】

                                          https://docs.oracle.com/en/database/oracle/oracle-database/19/ladbi/database-installation-guide-linux.pdf


                                          迎关注个人微信公众号;

                                          长按以下二维码或公众号搜索“一森咖记”

                                          往期精彩文章

                                          ========================================

                                          1. 干货:RHEL7.2生产环境下双节点12c RAC搭建实操

                                          2. 干货:RHEL7.1环境下双节点Oracle RAC搭建实操

                                          3. LINUX环境:MySQL和Oracle开机自启动,咋搞?

                                          4. What:ASM自动脱落了

                                          5. 实操:12C RAC环境下的ADG同步库搭建

                                          6. Oracle Rac:关闭透明大页的原因及方法

                                          7. Oracle ADG同步技术,DBA必备的一种“后悔药”

                                          8. Logminer:oracle人为误操作之恢复神器

                                          9. “神器”:Oracle日志采集分析工具——TFA

                                          10. 技术八卦篇:Oracle云时代下的一个不再默认存在账号:Scott


                                          最后修改时间:2020-04-02 12:43:12
                                          文章转载自一森咖记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                                          评论