【Step By Step】VM安装redhat-server7.9搭建Oracle19C RAC(一)环境配置

news2024/12/28 7:02:06

文章目录

    • 环境规划
      • 网络规划
      • 文件系统规划
      • rac用户规划
      • grid与oracle用户规划
      • ASM规划
    • 虚拟机设置
      • 搭建虚拟机
      • 自定义网卡
      • 安装操作系统
    • 操作系统设置
      • 关闭services
      • 修改/etc/hosts
      • 创建用户与组
      • 创建文件目录
      • 设置环境变量
      • 设置内核参数
      • 资源限制
      • 添加 etc/pam.d/login
      • 关闭大页
      • 关机挂载本地ISO镜像
      • 挂载asm物理磁盘
      • 配置本地yum源
      • 安装依赖包
      • 配置自动SSH
    • 配置第二节点
      • 克隆虚拟机
      • 修改hostname和IP
      • 禁用zeroconf路由(两个节点)
    • ASM磁盘(两个节点)
      • 重启设置ASM磁盘
      • 查看磁盘id绑定磁盘权限
      • 磁盘权限绑定

环境规划

网络规划

192.168.56.41  rac01.example.com  rac01
192.168.56.42  rac02.example.com  rac02

192.168.56.43  rac01-priv.example.com  rac01-priv
192.168.56.44  rac02-priv.example.com  rac02-priv

10.1.54.41  rac01-vip.example.com  rac01-vip
10.1.54.42  rac02-vip.example.com  rac02-vip

192.168.56.45  rac-scan.example.com  rac-scan
192.168.56.46  rac-scan.example.com  rac-scan

文件系统规划

100G:
 /		30G
 /boot + /tmp	10G
 swap		10G
 /u01		50G

rac用户规划

oinstall	54321
dba		    54322
asmadmin	54323
asmdba		54324
asmoper		54325

grid与oracle用户规划

用户uid所属组附属组home路径BASEHOME
grid54321oinstallasmadmin,asmdba,asmoper,dba/home/gridORACLE_BASE=/u01/app/gridORACLE_HOME=/u01/app/19.0.3/grid
oracle54322oinstalldba,asmdba/home/oracleORACLE_BASE=/u01/app/oracleORACLE_HOME=/u01/app/oracle/product/19.0.3/dbhome_1
image.png

ASM规划

+OCR	2G
+DATA	2G
+FRA	2G

虚拟机设置

搭建虚拟机

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

自定义网卡

image.png

image.png

image.png

image.png

image.png

安装操作系统

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

操作系统设置

关闭services

systemctl disable firewalld
systemctl stop firewalld

vi /etc/selinux/config

image.png

systemctl  stop NetworkManager
systemctl disable NetworkManager

image.png

修改/etc/hosts

cat >> /etc/hosts << eof
192.168.56.41  rac01.example.com  rac01
192.168.56.42  rac02.example.com  rac02

192.168.56.43  rac01-priv.example.com  rac01-priv
192.168.56.44  rac02-priv.example.com  rac02-priv

10.1.54.41  rac01-vip.example.com  rac01-vip
10.1.54.42  rac02-vip.example.com  rac02-vip

192.168.56.45  rac-scan.example.com  rac-scan
192.168.56.46  rac-scan.example.com  rac-scan
eof

image.png

创建用户与组

groupadd -g 54321 oinstall	
groupadd -g 54322 dba		
groupadd -g 54323 asmadmin	
groupadd -g 54324 asmdba		
groupadd -g 54325 asmoper	

useradd -u 54321 -g oinstall -G asmadmin,asmdba,asmoper,dba -d /home/grid grid

useradd -u 54322 -g oinstall -G dba,asmdba -d /home/oracle oracle

echo "oracle:oracle" | chpasswd
echo "grid:grid" | chpasswd

image.png

创建文件目录

mkdir -p /u01/app/grid
mkdir -p /u01/app/19.0.3/grid
mkdir -p /u01/app/oracle/product/19.0.3/dbhome_1
chown -R grid:oinstall /u01/
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01

设置环境变量

su - grid

cat >> ~/.bash_profile << eof
#add for grid
export ORACLE_SID=+ASM1
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/19.0.3/grid
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/jdk/bin:$PATH
export TMP=/tmp
export TMPDIR=/tmp
eof

image.png

su - oracle

cat >> ~/.bash_profile << eof
#add for oracle
export ORACLE_SID=mcdb1
export ORACLE_HOSTNAME=rac01
export ORACLE_UNQNAME=mcdb
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.0.3/dbhome_1
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/jdk/bin:$PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export CLASSPATH
export TMP=/tmp
export TMPDIR=/tmp
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS";
export PS1="[\${ORACLE_SID}@`hostname` \${PWD}]$ "
export ORACLE_TERM=xterm
#export NLS_LANG=SIMPLIFIED\ CHINESE_CHINA.ZHS16GBK
eof

image.png

设置内核参数

cat >> /etc/sysctl.conf <<EOF
#add for oracle
kernel.shmmax = 4294967295
kernel.shmall = 268435456
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 6815744
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
EOF

/sbin/sysctl -p

image.png

资源限制

cat >> /etc/security/limits.conf <<EOF
# add for oracle and grid
grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
grid soft stack 10240
grid hard stack 32768
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
EOF

image.png

添加 etc/pam.d/login

cat >> /etc/pam.d/login <<EOF
session required pam_limits.so
EOF

image.png

关闭大页

echo "never" > /sys/kernel/mm/transparent_hugepage/enabled
echo "never" > /sys/kernel/mm/transparent_hugepage/defrag

echo 'echo never > /sys/kernel/mm/transparent_hugepage/defrag' >> /etc/rc.d/rc.local
echo 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' >> /etc/rc.d/rc.local

grep Huge /proc/meminfo

image.png

关机挂载本地ISO镜像

image.png

挂载asm物理磁盘

image.png

image.png

image.png

配置本地yum源

mkdir /mnt/cdrom
mount /dev/sr0 /mnt/cdrom

cat >> /etc/yum.repos.d/local.repo << eof
[local]
name=local
baseurl=file:///mnt/cdrom
gpgcheck=1
enabled=1
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release
eof

yum clean all
yum makecache

安装依赖包

yum install -y bc binutils compat-libcap1 compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel fontconfig-devel glibc glibc-devel ksh libaio libaio-devel libX11 libXau libXi libXtst libXrender libXrender-devel libgcc libstdc++ libstdc++-devel libxcb make smartmontools sysstat  librdmacm-devel   libXext   libaio.i686 libstdc++-devel.i686   libstdc++.i686  libgcc.i686  glibc-devel.i686 

yum install -y ipmiutil net-tools nfs-utils python python-configshell python-rtslib python-six targetcli compat-libstdc++-33.i686 gcc  compat-libstdc++  readline  libtermcap-devel unixODBC-devel  unixODBC libXi.i686 libxcb.i686 libXau.i686  libX11.i686 libXtst.i686  libXext.i686 gcc-c++  glibc  glibc.i686  libaio-devel.i686

yum install -y unzip vim

配置自动SSH

cat /etc/ssh/sshd_config |grep LoginGraceTime

cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak`date +"%Y%m%d_%H%M%S"`

sed -i 's/#LoginGraceTime 2m/LoginGraceTime 0/' /etc/ssh/sshd_config

cat /etc/ssh/sshd_config |grep LoginGraceTime

image.png

配置第二节点

克隆虚拟机

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

修改hostname和IP

vim /etc/hostname
hostnamectl

cd /etc/sysconfig/network-scripts
# 删除uuid和修改ipaddr
vim ifcfg-ens33
vim ifcfg-ens34

systemctl restart network

image.png

image.png

image.png

禁用zeroconf路由(两个节点)

两个方法都可以,第二种可能方便一些

# 第一节点
vi /etc/sysconfig/network
# Created by anaconda
HOSTNAME=rac01
NOZEROCONF=yes

# 第二节点
cat >> /etc/sysconfig/network << eof
HOSTNAME=rac02
NOZEROCONF=yes
eof

image.png
image.png

ASM磁盘(两个节点)

重启设置ASM磁盘

用记事本打开虚拟机对应的.vmx文件加入以下内容:

#shared disks configure
disk.locking = "false"
scsi1.sharedBus = "virtual"
diskLib.dataCacheMaxSize = "0"
diskLib.dataCacheMaxReadAheadSize = "0"
diskLib.DataCacheMinReadAheadSize = "0"
diskLib.dataCachePageSize = "4096"

image.png

查看磁盘id绑定磁盘权限

/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sdb
/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sdc
/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sdd

image.png

磁盘权限绑定

# RESULT=="36000c296d892cc1eb823bc3f7acdc0ef"的内容修改为自己的scsi_id

vi /etc/udev/rules.d/99-oracle-asmdevices.rules

KERNEL=="sd*[!0-9]", ENV{DEVTYPE}=="disk", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode", RESULT=="36000c296d892cc1eb823bc3f7acdc0ef", RUN+="/bin/sh -c 'mknod /dev/asm-data b $major $minor; chown grid:asmadmin /dev/asm-data; chmod 0660 /dev/asm-data'"
KERNEL=="sd*[!0-9]", ENV{DEVTYPE}=="disk", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode", RESULT=="36000c2933932d7f8333aef1e305246d3", RUN+="/bin/sh -c 'mknod /dev/asm-far b $major $minor; chown grid:asmadmin /dev/asm-far; chmod 0660 /dev/asm-far'"
KERNEL=="sd*[!0-9]", ENV{DEVTYPE}=="disk", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode", RESULT=="36000c29aeedf160041f6d6f1f0d5c0f7", RUN+="/bin/sh -c 'mknod /dev/asm-ocr b $major $minor; chown grid:asmadmin /dev/asm-ocr; chmod 0660 /dev/asm-ocr'"

image.png

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++初阶】:vector的基本介绍

vector的基本介绍 一.vector(向量)介绍二.vector原型三.构造四.区别reserve和resize五.二维数组 一.vector(向量)介绍 二.vector原型 vector主要分为两个模板参数&#xff0c;一个是T&#xff0c;T是将数据类型进行实例化&#xff08;本质就是一个数组&#xff09;。第二个参数…

idea 搭建 SpringBoot 集成 mybatis

编译器&#xff1a;IDEA 环境&#xff1a;win10&#xff0c;jdk1.8&#xff0c;maven3.5 数据库&#xff1a;mysql 5.7 一、打开IDEA新建项目 1. 如果你是第一次使用IDEA&#xff0c;那么你需要配置你本地的maven&#xff0c;点击右下角 Configure&#xff0c;如已配置请忽…

第三章:Linux简介及面试常问问题

目录 一、Linux发展史 1.Linux前身-Unix 2.Linux诞生 3.开源文化 4.Linux系统特点 5.Linux操作系统优点 6.Linux操作系统发行版 7.Linux内核命名规则 二、Linux系统的安装 三、linux系统分区简介及如何分区 1.自动分区 2.手动分区 3.linux下查看分区信息和剩余空间…

STM32CubeMX安装

一、配置JAVA环境 1.相关资料链接 链接: CubeMX 提取码&#xff1a;13ec 双击改exe文件。 2.更改默认的安装路径 3.在该exe文件同等目录下&#xff0c;新建一个JAVA-Enviroment文件夹。 选择更改安装路径&#xff0c;放在刚才新建的JAVA-Enviroment文件夹中。 4.等待安装完…

RabbitMQ - 单机部署(超详细)

RabbitMQ部署 1.单机部署 我们在Centos7虚拟机中使用Docker来安装。 1.1.下载镜像 方式一&#xff1a;在线拉取 docker pull rabbitmq:3-management方式二&#xff1a;从本地加载 也可以从网上搜索 RabbitMQ 的 tar 包下载下来 上传到虚拟机中后&#xff0c;使用命令加载…

2023高校夏令营 | 第七年,我们又开营啦!

进入7月&#xff0c;成都的天气就不再像之前那样温和&#xff0c;迎接我们的是热浪滔天&#xff0c;以及一场场猝不及防的高温暴雨。如同当下的毕业季&#xff0c;脱离校园庇护的应届生们涌入就业市场&#xff0c;开始应对来自社会、职场的各种风雨考验。 为了加快推进产教融合…

js深拷贝、js使用递归实现深拷贝

相信看到这篇文章之前你应该多多少少了解过什么是深拷贝了为什么要什么拷贝了 这里就不介绍什么是深拷贝、浅拷贝了 最优解深拷贝方法&#xff1a;递归 这里为了方便直接在vue的页面里面演示了&#xff0c;在其他js文件中使用注意下this mounted() {const obj {str: "字…

实战解决百度旋转验证码

1、效果演示 2、如何识别 2.1准备数据集 首先需要使用爬虫&#xff0c;对验证码图片进行采集&#xff0c;尽量每一种类型都要采集到。 2.2图像矫正 接下来对采集的数据进行人工校正 2.3数据清洗 &#xff08;1&#xff09;对数据进行进行旋转&#xff0c;达到增加数据量的目…

44. 日期交叉问题

文章目录 题目需求思路一实现一原理二实现二学习链接题目来源 题目需求 现有各品牌优惠周期表&#xff08;promotion_info&#xff09;如下&#xff0c;其记录了每个品牌的每个优惠活动的周期&#xff0c;其中同一品牌的不同优惠活动的周期可能会有交叉。 现要求统计每个品牌…

聊一聊Java中的Steam流 | 京东物流技术团队

1 引言 在我们的日常编程任务中&#xff0c;对于集合的制造和处理是必不可少的。当我们需要对于集合进行分组或查找的操作时&#xff0c;需要用迭代器对于集合进行操作&#xff0c;而当我们需要处理的数据量很大的时候&#xff0c;为了提高性能&#xff0c;就需要使用到并行处…

Golang内存分配及垃圾回收

为什么需要垃圾回收&#xff1f; 自动释放不需要的对象&#xff0c;让出存储器资源&#xff0c;无需程序员手动执行 Go V1.3之前是标记-清除算法 具体步骤 缺点&#xff1a;程序卡顿、扫描整个heap、数据清除会产生heap碎片 V1.3之后&#xff0c;做了简单的优化 V1.5之后&a…

AIFORE Smart Fuzzing Based on Automatic Input Format Reverse Engineering

AIFORE: Smart Fuzzing Based on Automatic Input Format Reverse Engineering 1 中国科学院信息工程研究所2清华大学网络科学与网络空间研究院;中关村实验室3华为技术有限公司奇异安全实验室4中国科学院大学网络安全学院5中国人民大学6洛桑联邦理工学院 论文链接 &#xff1a…

PHP实战开发26-使用PHP生成图片验证码并进行校验

文章目录 一、前言二、什么是验证码&#xff1f;三、PHP生成验证码图像3.1 生成验证码文字3.2 创建图像并绘制验证码文字3.3 将验证码存储到Session中 四、前端使用jQuery验证输入4.1 步骤一&#xff1a;创建HTML结构和CSS样式4.2 使用jQuery发送AJAX请求进行校验4.3 步骤三&am…

Head Pose Estimation头部姿态估计任务的基本了解:从数据集开始

目录 前言一、HPE是什么&#xff1f;二、常用数据集1.COFW2.WFLW3.AFLW2000-3D4.300W-LP 三、SOTA workCVPR2022:SynergyNetCVPR2021 Workshop:ASMNet 四、我们想做的贡献 前言 为了检测司机的疲劳状态&#xff0c;除了基于人脸关键点的检测去判断是否闭眼&#xff0c;是否打哈…

基础算法-差分

差分其实就是求前缀和的逆运算 差分数组&#xff1a; Step1 首先给定一个原数组a&#xff1a;a[1], a[2], a[3],,,,,, a[n]; 然后我们构造一个数组b &#xff1a; b[1] ,b[2] , b[3],,,,,, b[i]; 使得 a[i] b[1] b[2 ] b[3] ,,,,,, b[i] 也就是说&#xff0c;a数组是b…

nvm升级node版本

1.首先有安装nvm和配置环境的前提 2、命令查看&#xff0c;切换到D盘目录下 3、安装到指定的版本 nvm安装指定版本的node 输入&#xff1a;nvm install 16.18.1 4、查看已有的node版本 nvm list 5、项目终端查看

【uniapp开发小程序】实现点击跳转手机通话 拨打电话功能

效果图&#xff1a; 代码展示&#xff1a; <template><view class"page-map"><view class"btn" click"telFun()" style"text-align: center;">电话咨询</view></view> </template> <script&g…

如何使用idea来查找所有未使用的代码?

一、目的 通过idea快速找到项目中没有被使用的代码 二、操作步骤 2.1 Code -> Analyze Code -> Run Inspection by Name 2.2 输入Unused declaration -> 查询没有被使用的方法和类 2.3 选择要扫描的范围 2.4 根据结果进行删除&#xff08;反复几次就可以清除干净&a…

如何获取局域网内海康摄像头的IP地址

文章目录 问题解决方法图像分类网络AlexNetVGGNetGooLeNet系列ResNetDenseNetSwin TransformerMAECoAtNetConvNeXtV1、V2MobileNet系列MPViTVITSWAEfficientNet系列MOBILEVITEdgeViTsMixConvRepLKNetTransFGConvMAEMicroNetRepVGGMaxViTMAFormerGhostNet系列DEiT系列MetaFormer…

linux 写c, 编译报错 stdio.h: No such file or directory,compilation terminated.

环境: windows11->subsystem(Ubuntu20)问题: linux 写c, 编译报错如图(fatal error: stdio.h: No such file or directory │compilation terminated. #include <stdio.h>) 复现: #include <stdio.h>int main() {printf("gcc编译报错: \n")return 0;…