【此为"一森咖记"公众号——第45篇文章】
【引言】
今早看了bisal老刘的微信推文《Oracle 19c之RPM》安装(可关注老刘公众号:disal的个人杂货铺)。看后顿觉:RPM这种一键式安装,真的太可怕了。
oracle19c的Autonomous自治布局越来越明朗,19c力求稳定运行,这正是Oracle一直在倡导大力推行的云自治、云管理策略相吻合,且也提供了本地安装,向下兼容性,可谓雄心勃勃;另也侧面反映,传统DBA们要开始投钱武装大脑了,平时会的那点东西不怎么够用了,为了美好生活的向往,两条路走:要么在Oracle这条路上学深它;要么多学点其他DB啥的,找棵其他树吊吊看,争取被pass掉还有口饭吃。
智能自治、云时代、人工智能时代到来,这太可怕了;各位亲,看清大局,找坑坐好。
先简单介绍19c的重要性:
Oracle Database 19c ,也就是12.2.0.3,是Oracle Database 12c和18c系列产品的最终版本。 19c提供4年的高级支持(截止到2023年1月底)和至少3年的延长支持(截至2026年1月底)。有关最新的Oracle支持计划,请参阅My Oracle Support上的文档ID 742060.1。
重要提示:
如果还想看11g,12c,18c,19c的support 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,需要OL7、RHEL7、SLES12及以上的更高版本。
下面的内容来自官方文档。
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. 实例安装(简述)
文章将重点讲述环境变量的设置,软件安装和实例安装因和11g、12c相似,本文将不做过多讲述。
【软件下载】
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 会crash掉Oracle 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
详细查看本人公众号:
注意:因此次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,需要OL7、RHEL7、SLES12及以上的更高版本;
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
迎关注个人微信公众号;
长按以下二维码或公众号搜索“一森咖记”
往期精彩文章
========================================