Oracle 12.2.0.1 RAC for rhel 7.X 数据库安装(节点1执行root.sh失败)
说明:
最开始是用的rehat7.2安装12.2.0.1,后面安装GI节点一执行root.sh脚本失败,排查原因,最开始以为是操作系统的问题,换成rehat7.6,同样的出现问题,经过一番折腾,后面通过MOS文献解决问题(如果直接18C,可以避免此BUG)。
一、前期规划
1、软件环境
操作系统:RedHat Linux 7.x 64位
数 据 库:Oracle 12.2.0.1 RAC
2、主机规划

二、安装数据库前准备
1、清除 DNS 中内容
vi /etc/resolv.conf --消除其内容
2、改hosts
Rac1,rac2:
cat >> /etc/hosts<<EOF
#rac1
192.168.211.151 node1
192.168.211.153 node1-vip
192.168.137.151 node1-priv
#rac2
192.168.211.152 node2
192.168.211.154 node2-vip
192.168.137.152 node2-priv
#scan-ip
192.168.211.155 scan-cluster
EOF
3、关闭iptables
service iptables stop
chkconfig iptables off
service ip6tables stop
chkconfig ip6tables off
systemctl disable firewalld
systemctl stop firewalld
4、关闭selinux
#关闭selinux
sed -i 's\SELINUX=enforcing\SELINUX=disabled\' /etc/selinux/config
setenforce 0
5、关闭NTP
/sbin/service ntpd stop
chkconfig ntpd off
mv /etc/ntp.conf /etc/ntp.conf.org
systemctl stop chronyd
systemctl disable chrnyd
6、关闭avahi-daemon服务
systemctl stop avahi-dnsconfd
systemctl stop avahi-daemon
systemctl disable avahi-dnsconfd
systemctl disable avahi-daemon
7、关闭 NetworkManager
systemctl stop NetworkManager
systemctl disable NetworkManager
三、集群参数配置
1、添加用户目录
#添加用户
useradd -u 54321 -g oinstall -G asmadmin,asmdba,asmoper,dba grid
echo 'oracle' | passwd --stdin grid
useradd -u 54322 -g oinstall -G dba,asmdba,oper oracle
echo 'oracle' | passwd --stdin oracle
#创建安装目录
mkdir -p /u01/app/grid
mkdir -p /u01/app/12.2.0/grid
mkdir -p /u01/app/oracle/product/12.2.0/db_1
#更改目录权限
chown -R grid:oinstall /u01
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01
2、设置内核参数
#改变内核参数
cat >> /etc/sysctl.conf<<EOF
#Kernel for Oracle 12C
fs.aio-max-nr = 1048576
fs.file-max = 6815744
#kernel.shmall = 2097152
#kernel.shmmax = 4294967295
kernel.shmall = 16097152
kernel.shmmax = 128849018880
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
EOF
#使内核参数立即生效
sysctl -p
#添加用户资源限制
cat >> /etc/security/limits.conf<<EOF
#limits for Oracle users
grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
grid soft stack 10240
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
EOF
#编辑配置文件
cat >> /etc/profile<<EOF
#this is for oracle user
if [ \$USER = "oracle" ]||[ \$USER = "grid" ]; then
if [ \$SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
EOF
#编辑登陆配置文件
cat >> /etc/pam.d/login<<EOF
#this is for oracle user
session required pam_limits.so
EOF
#为grid用户添加环境变量
cat >> /home/grid/.bash_profile<<EOF
export ORACLE_BASE=/u01/app/grid
export ORACLE_SID=+ASM1
export ORACLE_HOME=/u01/app/12.2.0/grid
export PATH=\$ORACLE_HOME/OPatch:\$ORACLE_HOME/bin:\$PATH
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:\$LD_LIBRARY_PATH
stty erase ^H
EOF
source /home/oracle/.bash_profile
#为oracle用户添加环境变量
cat >> /home/oracle/.bash_profile<<EOF
export ORACLE_BASE=/u01/app/oracle
export ORACLE_SID=orcl
export ORACLE_HOME=\$ORACLE_BASE/product/12.2.0/db_1
export PATH=\$ORACLE_HOME/OPatch:\$ORACLE_HOME/bin:\$PATH
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:\$LD_LIBRARY_PATH
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
stty erase ^H
EOF
source /home/oracle/.bash_profile
3、配置NOZEROCONF
#How To Prevent Bogus Entry 169.254.0.0/255.255.0.0 Automatically Added To Routing Table (文档 ID 1161144.1)
cat >>/etc/sysconfig/network<<EOF
NOZEROCONF=yes
EOF
4、选择deadline IO调度
cat > /etc/udev/rules.d/60-oracle-schedulers.rules<<EOF
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="deadline"
EOF
udevadm control --reload-rules
5、透明大页
1.查看透明大页是否启用
RHEL 6:
# cat /sys/kernel/mm/redhat_transparent_hugepage/enabled
[oracle@rhel 6 ~]$ cat /sys/kernel/mm/redhat_transparent_hugepage/enabled
[always] madvise never
RHEL 7:
# cat /sys/kernel/mm/transparent_hugepage/enabled
[root@rhel 7 ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
2.禁用透明大页
RHEL 6:
(1).编辑
/etc/grub.conf 文件,在kernel 那一行后面追加
transparent_hugepage=never
例如:
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux 6 (2.6.32-642.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-642.el6.x86_64 ro root=/dev/mapper/rootvg-lvroot rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us LANG=en_US.UTF-8 rd_LVM_LV=rootvg/lvswap rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=rootvg/lvroot rd_NO_DM rhgb quiet transparent_hugepage=never
initrd /initramfs-2.6.32-642.el6.x86_64.img
(2).重启系统生效。
RHEL 7:
(1).编辑/etc/sysconfig/grub 文件,在 GRUB_CMDLINE_LINUX 那一行后面追加 transparent_hugepage=never
例如:
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=rootvg/root rd.lvm.lv=rootvg/swap rhgb quiet transparent_hugepage=never"
GRUB_DISABLE_RECOVERY="true"
(2).再使用
grub2-mkconfig 生成grub.cfg配置文件。
# grub2-mkconfig -o /boot/grub2/grub.cfg
(3).重启系统使配置生效。
6、准备仲裁磁盘和数据磁盘
for i in b c d e
do
echo "KERNEL==\"sd?\",SUBSYSTEM==\"block\",PROGRAM==\"/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/\$name\",RESULT==\"`/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i`\",SYMLINK+=\"asm-disk$i\",OWNER=\"grid\",GROUP=\"asmadmin\",MODE=\"0660\""
done > /etc/udev/rules.d/99-oracle-asmdevices.rules
udevadm trigger
udevadm control -R
systemctl restart systemd-udevd.service
ls -lh /dev/asm*

其中,12.2磁盘配置,把MGMT单独分开(建议40+G),否则跟ocr一起安装,每个OCR需要至少30+G。
7、配置YUM
yum -y install binutils \
compat-libcap1 \
compat-libstdc++-33 \
compat-libstdc++-33.i686 \
e2fsprogs \
e2fsprogs-libs \
gcc \
gcc-c++ \
glibc.i686 \
glibc \
glibc-devel.i686 \
glibc-devel \
ksh \
libaio \
libaio.i686 \
libaio-devel \
libaio-devel.i686 \
libX11.i686 \
libX11 \
libXau.i686 \
libXau \
libXi.i686 \
libXi \
libXtst.i686 \
libXtst \
libgcc.i686 \
libgcc \
libstdc++.i686 \
libstdc++ \
libstdc++-devel.i686 \
libstdc++-devel \
libxcb.i686 \
libxcb \
make \
net-tools \
nfs-utils \
smartmontools \
sysstat \
unixODBC.i686 \
unixODBC \
unixODBC-devel.i686 \
unixODBC-devel \
java-1.8.0-openjdk \
psmisc
四、安装Grid Infrastucture
1. 预检查
从12.2开始,安装grid,直接把grid安装包解压到$GRID_HOME目录的前一个目录,解压生成grid目录,预检查,安装都可以,并且把MGMT分开。
./runcluvfy.sh stage -pre crsinst -n node1,node2 -verbose >/tmp/grid_check.log
查看/tmp/grid_check.log
利用/etc/hosts 域名解析,/etc/resolv.conf 报错可以忽略
2. 安装GRID软件




















3. 遇到的坑(执行第一个脚本报错)

[root@node1 ~]# /u01/app/oraInventory/orainstRoot.sh
Changing permissions of /u01/app/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.
Changing groupname of /u01/app/oraInventory to oinstall.
The execution of the script is complete.

crs 报错:
The command '/opt/oracle/ghome/perl/bin/perl -I/opt/oracle/ghome/perl/lib -I/opt/oracle/ghome/crs/install /opt/oracle/ghome/crs/install/rootcrs.pl ' execution failed

(Doc ID 26247490.8)
https://support.oracle.com/epmos/faces/PatchDetail?requestId=21111942&_afrLoop=291841035812717&patchId=25078431&_afrWindowMode=0&_adf.ctrl-state=6xvf8wj9o_73


chown -R grid:oinstall 25078431/
cp -r /soft/OPatch /u01/app/12.2.0/grid/
$ORACLE_HOME/gridSetup.sh -applyPSU /u01/app/12.2.0/grid/25078431/

RU下载地址:
https://support.oracle.com/epmos/faces/PatchDetail?requestId=22666334&_afrLoop=334697806899329&patchId=28828733&_afrWindowMode=0&_adf.ctrl-state=1b2lzj24ao_100
opatch 工具下载:
https://support.oracle.com/epmos/faces/PatchDetail?_afrLoop=363488317867689&patchId=6880880&_afrWindowMode=0&_adf.ctrl-state=12eicbce7h_853
MOS 文档:ACFS Support On OS Platforms (Certification Matrix). (Doc ID 1369107.1)
由于我的操作系统是rehat7.6的,之前是rehat7.2版本,也是第一个脚本报错,创建集群资源的时候,7.2和7.5+的RU需要的不一样,最新的就行了。

官方建议使用OL7 UEK kernel替代,我打上最新RU(11G叫做PSU),如果18C,可以完美避过此BUG。

12.2 Grid Infrastructure Installation: What's New (Doc ID 2024946.1)

打上补丁需要重新换GRID_HOME目录(真是蛋疼的一笔),即解压GRID软件包到新的GRID_HOME目录。




logout
[root@node1 soft]# mount /dev/cdrom /mnt/
mount: /dev/sr0 is write-protected, mounting read-only
[root@node1 soft]#
[root@node1 soft]#
[root@node1 soft]#
[root@node1 soft]# yum -y install psmisc

先决条件检查“CheckSystemCommandAvailable”失败(文档ID 1581604.1)

打上RU:
[grid@node1 grid_1]$ ./gridSetup.sh -applyPSU /soft/28828733/
ERROR: Unable to verify the graphical display setup. This application requires X display. Make sure that xdpyinfo exist under PATH variable.
Preparing the home to patch...
Applying the patch /soft/28828733/...
Successfully applied the patch.
The log can be found at:
/tmp/GridSetupActions2019-03-28_09-40-27AM/installerPatchActions_2019-03-28_09-40-27AM.log
No X11 DISPLAY variable was set, but this program performed an operation which requires it.

修改最新的grid home环境变量后,重新安装GRID软件。






五、手工创建磁盘组


六、安装oracle软件










七、创建数据库









真实环境需要修改参数。









Oracle 12.2.0.1 RAC for rhel 7.X 数据库安装(节点1执行root.sh失败)的更多相关文章
- 【RAC】安装cluster软件 在节点2执行root.sh脚本
安装cluster软件 在节点2执行root.sh脚本 报错如下: Running vipca(silent) for configuring nodeapps /db/oracle/product ...
- RedHat 7.3 Oracle 12.2.0.1 RAC 安装手册(转)
1 准备工作 1.1 关于GRID的一些变化 1.1.1 简化的基于映像的Oracle Grid Infrastructure安装 从Oracle Grid Infrastructure 12 ...
- oracle 12.1.0.2中对象锁对系统的较大影响
环境:oracle 12.1.0.2 rac ,4节点 一.概述 通常来说,如果是oltp应用,那么部署在rac上,是不错的注意. 但实现情况中,往往是混合类型,既有OLTP也有OLAP. 如果没有 ...
- Oracle 11.2.0.4 RAC安装最新PSU补丁
环境:两节点RAC(RHEL 6.4 + GI 11.2.0.4 + Oracle 11.2.0.4) 需求:安装最新PSU补丁11.2.0.4.7 1.下载补丁和最新OPatch 2.检查数据库当前 ...
- ORACLE LINUX 6.3 + ORACLE 11.2.0.3 RAC + VBOX安装文档
ORACLE LINUX 6.3 + ORACLE 11.2.0.3 RAC + VBOX安装文档 2015-10-21 12:51 525人阅读 评论(0) 收藏 举报 分类: Oracle RA ...
- Oracle 11.2.0.4 RAC重建EM案例
环境:Oracle 11.2.0.4 RAC 重建EM 背景:客户之前的EM已经被损坏,需要重建EM 重建EM的方案有很多,其中最简单的方法是:直接使用emca重建,oracle用户下,只需一条命令搞 ...
- Linux平台Oracle 12.1.0.2 单实例安装部署
主题:Linux平台Oracle 12.1.0.2 单实例安装部署 环境:RHEL 6.5 + Oracle 12.1.0.2 需求:安装部署OEM 13.2需要Oracle 12.1.0.2版本作为 ...
- 【翻译自mos文章】在RHEL7/OL7上安装Oracle 12.1.0.2的server端或者client时,报须要"compat-libstdc++"包
在RHEL7/OL7上安装Oracle 12.1.0.2的server端或者client时,报须要"compat-libstdc++"包 来源于: Installation of ...
- Oracle 12.1.0.2 对JSON的支持
Oracle 12.1.0.2版本有一个新功能就是可以存储.查询.索引JSON数据格式,而且也实现了使用SQL语句来解析JSON,非常方便.JSON数据在数据库中以VARCHAR2, CLOB或者BL ...
随机推荐
- django-Celery分布式队列简单使用
介绍: Celery 是一个简单.灵活且可靠的,处理大量消息的分布式系统,并且提供维护这样一个系统的必需工具. 它是一个专注于实时处理的任务队列,同时也支持任务调度. worker:是一个独立的进程, ...
- cshtml中字符串中表示特殊字符@
用“@@”表示字符串中的特殊字符@
- LDAP个人理解
在新的公司办公,所有的后台系统或文档系统都公用一个LDAP账号. 接触到这个新名词,就查了一下,谈谈个人理解: LDAP是个协议, 简单地说,可以把LDAP服务理解为一套存放你账户密码的数据库系统.市 ...
- Thinkphp5跨域问题
关于代码分离可能会遇到json传输接收不到的问题(可能00) 起初我百度到解决此问题可以用jsonp来发送并接受,可是这只是一时之计 以后也会不方便所以我发现了一下方法 在app顶层创建文件commo ...
- Django——2 路由分配设置 re_path正则匹配 include总路由 url传参 name使用 模板渲染render方法 模板渲染方法
Django 路由分配设置 re_path正则匹配 include总路由设置 url额外参数的传递 name的使用 模板的渲染:render方法 路由的分配中, 可以设定相应的转换器加以约束,比如 ...
- 【codeforces 509E】Pretty Song
[题目链接]:http://codeforces.com/contest/509/problem/E [题意] 让你计算一个字符串的所有子串里面元音字母出现的频率的和; [题解] 先处理出前缀和-&g ...
- 暑假集训D19总结
考试 日常爆炸 T1 辣么简单,淼到极致的DP,我竟然打挂了= =,打挂了= =,只拿了75分啊,不能接受啊= = T2 随便找找规律,瞎XX模拟一下就能A的鬼东西,我竟然打了个暴力+Floy ...
- 关于linux中使用vim打开文件出现^M的解决方法
在linux下,不可避免的会用VIM打开一些windows下编辑过的文本文件.我们会发现文件的每行结尾都会有一个^M符号,这是因为 DOS下的编辑器和Linux编辑器对文件行末的回车符处理不一致, 各 ...
- js移除style属性
这个属性是通过 div.style.color="red" 这种类似添加的,想要添加重置函数,使用div.removeAttribute("style" ...
- Clojure:ZeroMQ的入门DEMO
假设你已经知道什么是ZeroMQ(不知道的话可以看这个:http://zh.wikipedia.org/wiki/%C3%98MQ),以下就给出在Clojure中如何使用ZeroMQ(感谢此文作者:h ...