分享一篇Oracle RAC实战安装11G

分享一次很久以前的Oracle rac项目实施。

1、拓扑结构

基础环境是2台H3C的服务器+2台3PAR的双活存储,操作系统centos7.2。借用下别人家的拓扑先(这是一套典型的RAC架构)。

图片

2、网卡TEAM操作

以eno51和en052组成Team1组为示例:


nmcli con add type team con-nameteam1 ifname team1 config '{"runner": {"name":"activebackup"}}'
nmcli con mod team1 ipv4.addresses'192.168.1.1/24'
nmcli con mod team1 ipv4.methodmanual
nmcli con add type team-slavecon-name team1-port1 ifname eno51 master team1
nmcli con add type team-slavecon-name team1-port2 ifname eno52 master team1
teamdctl team1 state(查看状态)

配置完成后,修改其它网卡的启动模式从原来的dhcp改为none

3、修改主机名

hostnamectl set-hostname <主机名>
hostnamectl status进行查看

4、配置yum源

使用本地源有两个方法

(1)挂载光驱

mount  /dev/cdrom  /mnt

(2)如果没有光驱则用以下方法,挂载系统安装盘的ISO文件

需要先把安装ISO文件rhel-server-7.2-x86_64-dvd.iso上传到指定目录,并在目录下执行

mount -o loop rhel-server-7.2-x86_64-dvd.iso /mnt

创建配置文件cat /etc/yum.repos.d/local.repo

[rhel]
name=rhel
gpgcheck=0
enable=1
baseurl=file:///mnt

5、安装系统包

yum install -yelfutils-libelf-devel.x86_64
yum install -ycompat-libstdc++-33.x86_64
yum install -y compat-libcap1.x86_64
yum install -y gcc.x86_64
yum install -y gcc-c++.x86_64
yum install -y glibc.i686
yum install -y glibc-devel.i686
yum install -y glibc-devel.x86_64
yum install -y ksh-*.x86_64
yum install -y libaio.i686
yum install -y libaio-devel.i686
yum install -y libaio-devel.x86_64
yum install -y smartmontools
yum install -y libgcc.i686
yum install -y libstdc++.i686
yum install -y libstdc++-devel.i686
yum install -y libstdc++-devel.x86_64
yum install -y libXi.i686
yum install -y libXi.x86_64
yum install -y libXtst.i686
yum install -y libXtst.x86_64
yum install -y sysstat.x86_64
yum install xorg-x11-xauth
yum install -y xterm
yum install -y ntpdate
yum install -y device-mapper-multipath

以下安装包需要手动安

rpm -ivhcompat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
rpm -e ksh-20120801-22.el7_1.2.x86_64
rpm -ivhpdksh-5.2.14-37.el5_8.1.x86_64.rpm

6、修改HOSTS​​​​​​​

10.10.17.1           dyckrac1
10.10.17.2           dyckrac2
10.10.17.3           dyckrac1-vip
10.10.17.4           dyckrac2-vip
10.10.17.5           dyck-scan
192.168.1.1         dyckrac1-priv
192.168.1.2         dyckrac2-priv

7、创建用户

/usr/sbin/groupadd -g 501 oinstall
/usr/sbin/groupadd -g 502 dba
/usr/sbin/groupadd -g 504 asmadmin
/usr/sbin/groupadd -g 506 asmdba
/usr/sbin/groupadd -g 507 asmoper
/usr/sbin/useradd -u 501 -g oinstall-G asmadmin,asmdba,asmoper -d /home/grid -m grid
/usr/sbin/useradd -u 502 -g oinstall-G dba,asmdba -d /home/oracle -m oracle
echo oracle|passwd--stdin oracle
echo grid|passwd --stdin grid

8、修改用户环境变量

使用su - oracle命令切换到ORACLE用户下

编辑文件  ~/.bash_profile   增加如下内容(实例名按实际填写,分别修改两个节点

export ORACLE_SID=orcl1
export ORACLE_BASE=/u01/app/oracle
exportORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
exportPATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch

使用su - grid命令切换到ORACLE用户下​​​​​​​

编辑文件  ~/.bash_profile   增加如下内容(实例名按实际填写,分别修改两个节点)​​​​​​​

export ORACLE_SID=+ASM1
export ORACLE_BASE=/g01/app/grid
exportORACLE_HOME=/g01/app/11.2.0/grid
exportPATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch

9、配置GRID用户及ORACLE用户SSH互信

以GRID用户为例,

 ./sshUserSetup.sh -user grid -hosts "dyckrac1 dyckrac2" -advanced -noPromptPassphrase

10、关闭防火墙

systemctl stop firewalld.service&& sudo systemctl disable firewalld.service

11、关闭SELINUX

sed -i -e "s/SELINUX=enforcing/SELINUX=disabled/g"/etc/selinux/config

12、修改limits限制

修改配置文件cat /etc/security/limits.conf

grid soft nproc 16384
grid hard nproc 16384
grid soft nofile 65536
grid hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
oracle soft nofile 65536
oracle hard nofile 65536

13、修改内核参数

修改文件/etc/sysctl.conf,增加如下内容:

共享内存段按自己的实际内存修改,我这里分享个脚本来自动计算

cp /etc/sysctl.conf /etc/sysctl.conf.bak
echo "#oracle" >> /etc/sysctl.conf
echo "kernel.shmmni = 4096" >> /etc/sysctl.conf
echo "fs.aio-max-nr = 1048576" >> /etc/sysctl.conf
echo "fs.file-max = 6815744" >> /etc/sysctl.conf
echo "kernel.sem = 250 32000 100 128" >> /etc/sysctl.conf
echo "net.ipv4.ip_local_port_range = 9000 65500" >> /etc/sysctl.conf
echo "net.core.rmem_default = 262144" >> /etc/sysctl.conf
echo "net.core.rmem_max = 4194304" >> /etc/sysctl.conf
echo "net.core.wmem_default = 262144" >> /etc/sysctl.conf
echo "net.core.wmem_max = 1048586" >> /etc/sysctl.conf
echo "vm.swappiness = 10" >> /etc/sysctl.conf
echo "kernel.shmmax= $(free|grep Mem |awk '{print int($2*1024*0.85)}')" >> /etc/sysctl.conf
echo "kernel.shmall = $(free|grep Mem |awk '{print int(($2*1024*0.85)/4096)}')" >> /etc/sysctl.conf
echo "vm.nr_hugepages = $(free -m|grep Mem |awk '{print int(($2*0.8*0.8)/2)}')" >> /etc/sysctl.conf
free -m
sysctl -p

14、禁用Transparent HugePages(不禁用导致ORACLE性能问题)


[root@rac1 ~]# cat/sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never              //现在为启用
[root@rac1 ~]# cd /etc/default/
[root@rac1 default]#cp grub grub.bak
[root@rac1 ~]# cat /etc/default/grub
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=autord.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet transparent_hugepage=never"
GRUB_DISABLE_RECOVERY="true"

此处有差异

 On BIOS-based machines(安装系统时使用传统 BIOS的改法):

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

On UEFI-based machines(安装系统时使用UEFI-BIOS时的改法):

grub2-mkconfig -o/boot/efi/EFI/redhat/grub.cfg

执行输入如下,执行完毕后重启                                                                   

configuration file ...
Found linux image:/boot/vmlinuz-3.10.0-327.el7.x86_64
Found initrd image:/boot/initramfs-3.10.0-327.el7.x86_64.img
Found linux image:/boot/vmlinuz-0-rescue-a6225ccf9497470bb6051d6392773fc9
Found initrd image:/boot/initramfs-0-rescue-a6225ccf9497470bb6051d6392773fc9.img
done
[root@rac1 default]# reboot

重启后 再查看

[root@rac1 ~]# cat/sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]              //现在为关闭

15、禁用avahi-daemon

systemctl stopavahi-daemon
systemctldisable avahi-daemon
systemctlstatus avahi-daemon

16、设置RemoveIPC=false(避免导致ASM实例CRASH)

# vi /etc/systemd/logind.conf
RemoveIPC=no

重启systemd-logind服务或重启主机​​​​​​​

systemctl daemon-reload
systemctl restart systemd-logind

设置原因请参考官方:ALERT: Setting RemoveIPC=yes on Redhat 7.2 Crashes ASM and DatabaseInstances as Well as Any Application That Uses a Shared Memory Segment (SHM) orSemaphores (SEM) (文档 ID 2081410.1)

17、配置多路径磁盘

使用/usr/lib/udev/scsi_id -g -u -d /dev/sda查出系统盘的WWID,关在MULTIAPTHD配置里把此ID列到屏蔽列表中

在两个节点启用multipathd并设置开机启动​​​​​​​

systemctl enable multipathd
mpathconf --enable

然后修改配置文件如下(此配置文件适合3PAR存储使用multipath的环境)

LINUX自带的multipath配置文件在/etc/multipath.conf​​​​​​​

defaults {
polling_interval 10
user_friendly_names no
find_multipaths yes
path_checker tur}
blacklist {wwid 3600508b1001c5b05f73bd869031e78f5 
devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
devnode "^hd[a-z]"}
multipaths {
multipath {wwid360002ac000000000000000030001f3c6aliasocrvote2}
multipath {wwid 360002ac000000000000000020001f3c6aliasocrvote1}
multipath {wwid 360002ac000000000000000040001f3c6aliasocrvote3}
multipath {wwid360002ac000000000000000050001f3c6 aliasasmdata01}   multipath {wwid   360002ac000000000000000060001f3c6alias   asmdata02}multipath {wwid   360002ac000000000000000070001f3c6alias   asmdata03}
multipath {wwid   360002ac000000000000000080001f3c6 alias   asmdata04}
multipath {wwid   360002ac000000000000000090001f3c6alias   asmdata05}multipath {wwid    360002ac0000000000000000a0001f3c6 alias   asmdata06
}multipath {wwid    360002ac0000000000000000b0001f3c6alias   asmdata07}   
multipath {wwid    360002ac0000000000000000c0001f3c6alias   asmdata08}
multipath {wwid    360002ac0000000000000000d0001f3c6  alias   asmdata09}multipath {wwid    360002ac0000000000000000e0001f3c6 alias   asmdata10}
multipath {wwid    360002ac0000000000000000f0001f3c6  alias   asmdata11
}multipath {wwid    360002ac000000000000000100001f3c6 alias   asmdata12
}
}
devices  {
device {
vendor "3PARdata"
product "VV"
path_grouping_policy group_by_prio
path_selector "round-robin 0"
path_checker tur
features "0"
hardware_handler "1 alua"
prio alua
failback immediate
rr_weight uniform
no_path_retry 18
rr_min_io_rq 1
detect_prio yes
# fast_io_fail_tmo 10
# dev_loss_tmo 14
}}   

修改完成后执行service multipathd reload

18、绑定磁盘UDEV权限

创建文件/etc/udev/rules.d/12-mulitpath-privs.rules,内容如下​​​​​​​

ENV{DM_NAME}=="ocrvote*",OWNER:="grid", GROUP:="asmadmin", MODE:="660"
ENV{DM_NAME}=="asmdata*",OWNER:="grid", GROUP:="asmadmin", MODE:="660"

19、安装目录附权限​​​​​​​

chown -R oracle:oinstall /u01
chown -R grid:oinstall /g01

20、安装GI软件

使用ROOT用户拷贝软件包到/tmp目录解压,安装GI

1、解压grid软件

unzip -qp13390677_112040_Linux-x86-64_3of7.zip

2、对grid软件打补丁19404309​​​​​​​

unzip -q p19404309_112040_Linux-x86-64.zip
cd b19404309
export ORA_SHIPS=/tmp/soft
cp grid/cvu_prereq.xml$ORA_SHIPS/grid/stage/cvu

安装单节点。安装完成后按要求以root用户执行root.sh

然后升级OPatch。用最新OPatch替换$ORACLE_HOME目录下OPatch目录即可。

安装补丁18370031

解压补丁

使用GRID用户执行$ORACLE_HOME/OPatch/ocm/bin/emocmrsp生成ocm.rsp文件

使用grid用户进入到补丁包目录

cd /tmp/soft/18370031

然后执行以下命令升级

opatch apply -oh $ORACLE_HOME -ocmrf  $ORACLE_HOME/OPatch/ocm/bin/ocm.rsp

拷贝GRID软件到2节点

在1节点,以GRID用户身份执行

cd /g01
scp -r app grid@dyckrac2:/g01

拷贝完成后,以root用户执行以下脚本

/g01/app/oraInventory/orainstRoot.sh
/g01/app/11.2.0/grid/root.sh

克隆ORACLE_HOME目录

在1节点执行

cd/g01/app/oraInventory
rm-rf *
su-grid
cd$ORACLE_HOME/clone/bin

#下面的是一条命令

perlclone.pl -silent -debug ORACLE_BASE=/g01/app/gridORACLE_HOME=/g01/app/11.2.0/grid ORACLE_HOME_NAME=Ora11g_gridinfrahome1  INVENTORY_LOCATION=/g01/app/oraInventoryOSDBA_GROUP=oinstall OSOPER_GROUP=dba -O'"CLUSTER_NODES={dyckrac1,dyckrac2}"'  -O'"LOCAL_NODE=dyckrac1"' CRS=TRUE -ignoreSysPrereqs

等待执行成功,去2节点执行

在2节点执行

cd/g01/app/oraInventory
rm-rf *
su-grid
cd$ORACLE_HOME/clone/bin

#下面的是一条命令

perlclone.pl -silent -debug ORACLE_BASE=/g01/app/gridORACLE_HOME=/g01/app/11.2.0/grid ORACLE_HOME_NAME=Ora11g_gridinfrahome1  INVENTORY_LOCATION=/g01/app/oraInventoryOSDBA_GROUP=oinstall OSOPER_GROUP=dba-O'"CLUSTER_NODES={dyckrac1,dyckrac2}"'  -O'"LOCAL_NODE=dyckrac2"' CRS=TRUE-ignoreSysPrereqs

21、配置集群

以grid用户使用xstart登录到1节点执行

$ORACLE_HOME/crs/config/config.sh进行配置集群。

然后在1节点执行root.sh

成功后去2节点执行root.sh

最后的INS-20802报错忽略

查看集群状态正常则进行DB安装

安装DB

unzip -qp13390677_112040_Linux-x86-64_1of7.zip
unzip -qp13390677_112040_Linux-x86-64_2of7.zip

对db软件打补丁19404309​​​​​​​

unzip -q p19404309_112040_Linux-x86-64.zip
cd /tmp/soft/b19404309
export ORA_SHIPS=/tmp/soft
cp database/cvu_prereq.xml$ORA_SHIPS/database/stage/cvu

然后以ORACLE用户登录XSTART执行DB集群安装

安装中途会报错

另开一个窗口,直接修改ins_emagent.mk文件

$ vi $ORACLE_HOME/sysman/lib/ins_emagent.mk
#===========================
#  emdctl
#===========================
$(SYSMANBIN)emdctl:
$(MK_EMAGENT_NMECTL)
修改为:
#===========================
#  emdctl
#===========================
$(SYSMANBIN)emdctl:
$(MK_EMAGENT_NMECTL)-lnnz11

然后点击Retry继续安装

安装完成后,再后续可以继续打最新的补丁,也可以直接建库使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/281441.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图书推荐|图解算法:C语言实现+视频教学版

零负担理解数据结构及其算法的设计&#xff0c;零基础也能快速上手编程。 本书内容 《图解算法&#xff1a;C语言实现视频教学版》是一本综合讲述数据结构及其算法的入门书&#xff0c;力求简洁、清晰、严谨、且易于学习和掌握。 《图解算法&#xff1a;C语言实现视频教学版》…

什么是高防CDN?

高防CDN&#xff08;Content Delivery Network&#xff0c;内容分发网络&#xff09;在网络安全中的作用非常重要。它通过一种特别的方式来保护网站和网络应用程序免受大规模DDoS攻击。以下是它的一些主要优势&#xff1a; 01 分布式防护 高防CDN通过在全球各地设立大量的节点…

【晴问算法】入门篇—贪心算法—区间不相交问题

题目描述 给定n个开区间&#xff0c;从中选择尽可能多的开区间&#xff0c;使得这些开区间两两没有交集。 输入描述 输出描述 输出一个整数&#xff0c;表示最多选择的开区间个数。 样例1输入 4 1 3 2 4 3 5 6 7 输出 3 解释 最多选择(1,3)、(3,5)、(6,7)三个区间&#xff0c;它…

2024开年首展,加速科技展台“热辣滚烫”

3月20日&#xff0c;备受瞩目的半导体行业盛会SEMICON China 2024在上海新国际博览中心盛大启幕&#xff0c;展会汇集了来自全球的半导体领域顶尖企业与专业人士。加速科技作为业界领先的半导体测试设备供应商携重磅测试设备及解决方案精彩亮相&#xff0c;展示了最新的半导体测…

WRF模型教程(ububtu系统)-WPS(WRF Pre-Processing System)概述

一、WPS简介 WRF 预处理系统 (WRF Pre-Processing System&#xff0c;WPS) &#xff0c;集成了基于Fortran和C编写的程序&#xff0c;这些程序主要用于处理输入到real.exe的数据。WPS主要有三个程序和一些辅助程序。 二、各程序介绍 主要的程序为geogrid.exe、ungrib.exe、met…

uniapp无感登录封装

在全局请求封装的基础上稍作完善 在响应拦截处判断返回接口状态过期的话就执行&#xff1a;记录过期的接口 > 登录 > 重新发送请求 封装记录和重发请求逻辑 let requestsQueue []; // 请求队列// 记录请求队列 export function recordRequests(config) {if (config.sou…

Spring Cloud Alibaba微服务从入门到进阶(七)(服务容错-Sentinel)

雪崩效应 我们把基础服务故障&#xff0c;导致上层服务故障&#xff0c;并且这个故障不断放大的过程&#xff0c;成为雪崩效应。 雪崩效应&#xff0c;往往是因为服务没有做好容错造成的。 微服务常见容错方案 仓壁模式 比如让controller有自己独立的线程池&#xff0c;线程池满…

【Java Web基础】一些网页设计基础(二)

文章目录 1. Bootstrap导航栏设计1.1 代码copy与删减效果1.2 居中属性与底色设置1.3 占不满问题分析1.4 字体颜色、字体大小、字体间距设置1.5 修改超链接hover颜色&#xff0c;网站首页字体颜色 1. Bootstrap导航栏设计 1.1 代码copy与删减效果 今天设计导航栏&#xff0c;直…

微调alpaca-lora遇到的一些问题

1、环境简介 环境&#xff1a; 系统&#xff1a;Ubuntu torch&#xff1a;2.2.1 python&#xff1a;3.10 gpu&#xff1a;V100 16g peft&#xff1a;0.9.0 使用PEFT中的lora方式微调llama-2-7b-hf&#xff0c;项目地址&#xff1a;alpaca-lora 2、混合精度训练Tensor相互计算会…

PCL点云处理之中值计算(二百三十三)

PCL点云处理之中值计算(二百三十三) 一、算法介绍二、算法实现1.代码2.结果一、算法介绍 读取的点云是无序散乱的,点云坐标包括xyz三个维度,以常用的z高程维度为例,计算其高程中值,获取对应的点。 主要涉及到根据高程对点云进行排序的操作,下面是具体的代码和结果。 …

Git版本管理工具

前言&#xff1a; 本文记录学习使用 Git 版本管理工具的学习笔记&#xff0c;通过阅读参考链接中的博文和实际操作&#xff0c;快速的上手使用 Git 工具。 本文参考了引用链接博文里的内容。 引用: Git使用教程-配置管理 git reset详解-CSDN博客 3、Git使用不完全指南&am…

C语言每日一题07

一、题目 二、解析 逻辑与 &&、逻辑或 || 均有“短路”特性: 逻辑与&&“短路”&#xff1a;当逻辑与&&的左操作数为逻辑 “假“ 时&#xff0c;就足以判断该逻辑运算的结果为假了&#xff0c;故右操作数就不再被执行。 逻辑或||“短路”&#xff1a…

python中获取当前项目的目录

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂 今天介绍一下&#xff0c;如何在python中获取当前项目所在的目录&#xff0c;而不是运行脚本的目录。 class ProjectPaths:# 初始化时获取当前脚本的路径staticmethoddef get_script_dir():…

Leetcode 994. 腐烂的橘子

心路历程&#xff1a; 一开始以为和刚做过的岛屿问题很像&#xff0c;只不过是把岛屿问题换成BFS去做&#xff0c;然后再加上一些计数的规则。结果做完后发现只能通过一半左右的测试用例&#xff0c;发现有一个逻辑错误在于&#xff0c;当腐烂的橘子位于两端时&#xff0c;可以…

4.1 用源文件写汇编代码

汇编语言 1. 源程序 1.1 伪指令 汇编指令是有对应的机器码的指令&#xff0c;可以被编译为机器指令&#xff0c;最终为CPU所执行伪指令没有对应的机器指令&#xff0c;最终不被CPU所执行伪指令是由编译器来执行的指令&#xff0c;编译器根据伪指令来进行相关的编译工作 1.2…

【C++】—— 装饰器模式

目录 &#xff08;一&#xff09;什么是装饰器模式 &#xff08;二&#xff09;为什么要使用装饰器模式 &#xff08;三&#xff09;装饰器模式的实现步奏 &#xff08;四&#xff09;代码示例 &#xff08;五&#xff09;装饰器模式优缺点 &#xff08;一&#xff09;什么…

Codeforces Round 935 (Div. 3)A~E

A. Setting up Camp 题目分析: 有三种人&#xff0c;内向、外向、综合&#xff0c;内向必须独自一个帐篷&#xff0c;外向必须3个人一个帐篷&#xff0c;综合介于1~3人一个帐篷&#xff0c;我们发现非法情况只会存在外向的人凑不成3个人一个帐篷的情况&#xff0c;因外向不够可…

JavaEE--小Demo

目录 下载包 配置 修改文件 pom.xml application.properties 创建文件 HelloApi.java GreetingController.java Greeting.java DemoApplication.java 运行包 运行命令 mvn package cd target dir java -jar demo-0.0.1-SNAPSHOT.jar 浏览器测试结果 下载包 …

为什么大家都在“挺”鸿蒙?

试想某一天&#xff0c;应用软件能够在手机、电视、手表甚至汽车等设备上&#xff0c;实现无缝流转、纵享丝滑。 这不仅是畅想&#xff0c;而是鸿蒙正在布局的“遥遥领先”。 随着HarmonyOS NEXT鸿蒙星河版面向开发者开放申请、鸿蒙原生应用版图的基本成型&#xff0c;这个国…

智慧水务:雨季山区水域水务智能化监控与监测管理方案

一、方案背景 雨季的水务管理对于各区县来说&#xff0c;无疑是一项至关重要的任务。夏季雨水充沛&#xff0c;江河湖泊水位上涨&#xff0c;山洪、上游排水等情况时有发生&#xff0c;给各地的水务设施和防汛工作带来了严峻的挑战。针对区县的各类水域监管场景&#xff0c;需…