当前位置: 首页 > news >正文

oracle 19c rac 安装手册

oracle 19c rac 安装手册

官方文档:https://docs.oracle.com/en/database/oracle/oracle-database/19/index.html

一、集群规划

再部署集群之前,需要对网络和存储两个方面进行规划。下面简述了网络和存储两个方面需要注意的地方。

  • Oracle RAC 数据库私有网络通信必须使用单独的交换机,不可以通过网线直连。

  • 节点间通信网络建议使用10GE(万兆)网络。

  • 必须对public和private网卡网络进行网卡绑定操作,采用mod=4 即:(802.3ad) IEEE 802.3adDynamic link aggregation(IEEE 802.3ad 动态链接聚合)。 交换机对应的端口需要配置802.3ad模式。

  • 多路径软件采用multipath+udev的方式进行管理。

1.1 服务器规划

集群角色主机名OSPublic IPVirtual IPPrivate IPScan IP实例名Grid/Oracle版本
rac01rac01Oracle Linux Server 7.6192.168.10.111192.168.10.115192.168.20.111192.168.10.119orcl119.3.0至19.11.0
rac02rac02Oracle Linux Server 7.6192.168.10.113192.168.10.117192.168.20.113192.168.10.119orcl119.3.0至19.11.0

1.2 存储规划

因oracle 19c grid中自带了一个管理库,在安装时可以选择安装也可以选择不安装,如果要安装的话需要的OCR磁盘组容量要求比较高。至少配置30Gx3,作为OCR磁盘组,否则容易导致安装失败。

磁盘功能个数每个大小(GB)冗余方式
OCR+VOTING+(19C Grid管理库)330NORMAL
DATA220EXTERNAL

二、基础环境要求与配置

以下所有配置中,(rac01&rac02)代表在两个节点执行,(rac01)代表仅需在某一个节点执行。

2.1 操作系统要求

根据oracle官方文档,安装oracle19c的操作系统要求如下:

Linux x86-64操作系统要求:

- Oracle Linux 8.1 with the Unbreakable Enterprise Kernel 6: 5.4.17-2011.0.7.el8uek.x86_64 or laterOracle Linux 8 with the Red Hat Compatible kernel: 4.18.0-80.el8.x86_64 or later
- Oracle Linux 7.4 with the Unbreakable Enterprise Kernel 4: 4.1.12-124.19.2.el7uek.x86_64 or laterOracle Linux 7.4 with the Unbreakable Enterprise Kernel 5: 4.14.35-1818.1.6.el7uek.x86_64 or laterOracle Linux 7.7 with the Unbreakable Enterprise Kernel 6: 5.4.17-2011.4.4.el7uek.x86_64 or laterOracle Linux 7.5 with the Red Hat Compatible Kernel: 3.10.0-862.11.6.el7.x86_64 or later
- Red Hat Enterprise Linux 8: 4.18.0-80.el8.x86_64 or later
- Red Hat Enterprise Linux 7.5: 3.10.0-862.11.6.el7.x86_64 or later
- SUSE Linux Enterprise Server 15: 4.12.14-23-default or later
- SUSE Linux Enterprise Server 12 SP3: 4.4.162-94.72-default or later

IBM: Linux on System z操作系统需求:

- Red Hat Enterprise Linux 8.3: 4.18.0-240.el8.s390x or later
- Red Hat Enterprise Linux 7.4: 3.10.0-693.el7.s390x or later
- SUSE Linux Enterprise Server 15: 5.3.18-57-default s390x or later
- SUSE Linux Enterprise Server 12: 4.4.73-5-default s390x or later

2.2 网卡

根据oracle rac原理,安装rac需要两张网卡,并且网卡需要对应使用,IP地址为静态IP。

2.2.1 禁用自动命名网卡(rac01&rac02)

1.首先修改网卡的配置文件/etc/sysconfig/network-scripts/ifcfg-ens33文件,将ifcfg-ens33里的DEVICE和NAME项改为eth0

2.然后将该配置的文件名改成ifcfg-eth0

3.禁用该可预测命名规则。对于这一点,你可以在启动时传递“net.ifnames=0 biosdevname=0 ”的内核参数。这是通过编辑/etc/default/grub在变量GRUB_CMDLINE_LINUX后面加入“net.ifnames=0 biosdevname=0”来实现的,参数间以空格来间隔。

4.运行命令grub2-mkconfig -o /boot/grub2/grub.cfg 来重新生成GRUB配置并更新内核参数,重启。

[root@rac01 network-scripts]# 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=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap net.ifnames=0 biosdevname=0 rhgb quiet"
GRUB_DISABLE_RECOVERY="true"#重新生成GRUB配置并更新内核参数
[root@rac01 ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.14.35-1818.3.3.el7uek.x86_64
Found initrd image: /boot/initramfs-4.14.35-1818.3.3.el7uek.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-957.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-957.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-506ed14f59eb41c89599dc75decbb045
Found initrd image: /boot/initramfs-0-rescue-506ed14f59eb41c89599dc75decbb045.img
done
#重启服务器
[root@rac1 ~]# reboot

以上示例为rac01服务器上进行的操作,请在rac02服务器上进行同样操作。

2.2.2 网卡改为静态ip(rac01&rac02)

因oracle数据库对ip地址要求比较严格,只能采用静态IP。以下为设置静态IP的方法。

#修改网卡的配置文件/etc/sysconfig/network-scripts/ifcfg-eth0文件
BOOTPROTO=static #启用静态IP地址
IPADDR=192.168.10.111 #设置IP地址
NETMASK=255.255.255.0 #设置子网掩码
GATEWAY=192.168.10.2 #设置网关
ONBOOT="yes" #设置网卡自启动
#重启网络
[root@rac01 network-scripts]# service network restart 

以上示例为rac01服务器上进行的操作,请在rac02服务器上进行同样操作。

2.2.3 私网网卡配置MTU(rac01&rac02)

注意:私网网卡需要配置MTU

同步更新网卡配置文件,增加一行MTU=9000,确保重启网卡/主机后,mtu=9000不变:

vi /etc/sysconfig/network-scripts/ifcfg-eth1

MTU=“9000”

2.3 设置主机名(rac01&rac02)

  • rac01
hostnamectl set-hostname rac01
  • rca02
hostnamectl set-hostname rac02

2.4 禁用Transparent HugePages(rac01&rac02)

oracle官方要求禁用Transparent HugePages,但有书籍提出8G内存以上建议启用,在此还是建议先按照官方要求进行操作。编辑/etc/default/grub在变量GRUB_CMDLINE_LINUX后面加入“transparent_hugepage=never”来实现。

[root@rac01 network-scripts]# 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=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap net.ifnames=0 biosdevname=0 transparent_hugepage=never rhgb quiet"
GRUB_DISABLE_RECOVERY="true"#重新生成GRUB配置并更新内核参数
[root@rac01 ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.14.35-1818.3.3.el7uek.x86_64
Found initrd image: /boot/initramfs-4.14.35-1818.3.3.el7uek.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-957.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-957.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-506ed14f59eb41c89599dc75decbb045
Found initrd image: /boot/initramfs-0-rescue-506ed14f59eb41c89599dc75decbb045.img
done
#重启服务器
[root@rac1 ~]# reboot

重启后查看状态如下:

[root@rac01 ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
[root@rac01 ~]# grep AnonHugePages /proc/meminfo
AnonHugePages:         0 kB

以上示例为rac01服务器上进行的操作,请在rac02服务器上进行同样操作。

2.5 关闭selinux和防火墙(rac01&rac02)

  • selinux
sed -i 's/^ *SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config 
  • 防火墙
systemctl disable firewalld
systemctl stop firewalld

2.6 配置yum本地源(rac01&rac02)

如果服务器可以访问互联网,可以不配置yum本地源,使用操作系统自带的yum配置。如果不能访问互联网或者不存在可用yum,则需要进行配置。具体配置方法如下:

#上传操作系统镜像文件至服务器某个目录,以/root/目录为例
mount -o loop -t iso9660 OracleLinux-Release7-Update6-x86_64-dvd.iso /media
#配置yum源
vi /etc/yum.repos.d/local.repo
[local]
name=local
baseurl=file:///media
gpgcheck=0
enabled=1
#清理缓存
yum clean all

2.7 配置hosts(rac01&rac02)

在2个节点上配置hosts文件,以节点1为例:

[root@rac1 ~]# vim /etc/hosts
# 在文件的最后面加上
# public
192.168.10.111 rac01
192.168.10.113 rac02
#virtual
192.168.10.115 rac01-vip
192.168.10.117 rac02-vip
#private
192.168.20.111 rac01-priv
192.168.20.113 rac02-priv
#scan
192.168.10.119 rac-cluster-scan
配置完成后,重启网卡
[root@rac1 ~]# systemctl restart network

以上示例为rac01服务器上进行的操作,请在rac02服务器上进行同样操作。

2.8 NTP时钟同步(rac01&rac02)

条件允许的情况下配置ntpd自动时钟同步,如果没有可用时钟同步服务器,可以尝试将两台服务器中的一台作为时间服务器,对另外一台服务器提供时钟同步服务。总之目的是保持两台服务器时钟同步。

yum install -y ntp ntpdate
systemctl enable ntpd --now

2.9 avahi-daemon 配置(rac01&rac02)

avahi-daemon会影响集群间的心跳网络,建议关闭(如果没有安装,也装上后关闭,避免后面不小心安装导致问题)。

yum install -y avahi*
systemctl stop avahi-daemon.socket
systemctl stop avahi-daemon.service
pgrep -f avahi-daemon | awk '{print "kill -9 "$2}'
##配置NOZEROCONF=yes
cat <<EOF>>/etc/sysconfig/network
NOZEROCONF=yes
EOF

2.10 安装基本依赖包(rac01&rac02)

yum groupinstall -y "Server with GUI"yum install -y bc binutils compat-libcap1 

相关文章:

oracle 19c rac 安装手册

oracle 19c rac 安装手册 官方文档:https://docs.oracle.com/en/database/oracle/oracle-database/19/index.html 一、集群规划 再部署集群之前,需要对网络和存储两个方面进行规划。下面简述了网络和存储两个方面需要注意的地方。 Oracle RAC 数据库私有网络通信必须使用单…...

sqlMap

url&#xff1a;https://sqlmap.org/ git&#xff1a;https://github.com/sqlmapproject/sqlmap.git git中文&#xff1a;https://github.com/sqlmapproject/sqlmap/blob/master/doc/translations/README-zh-CN.md use url&#xff1a;https://github.com/sqlmapproject/sqlmap…...

蓝桥杯每日一题2023.12.2

题目描述 蓝桥杯大赛历届真题 - C 语言 B 组 - 蓝桥云课 (lanqiao.cn) 题目分析 答案&#xff1a;3598180 由题目分析可以知道&#xff0c;给小明发的牌一共有13种类型&#xff0c;每种类型的牌一共有四张。对于每种牌&#xff0c;我们都有5种选择&#xff0c;不拿、拿一张、…...

【计算机网络学习之路】序列化,反序列化和初识协议

文章目录 前言一. 序列化和反序列化1.自己实现2. JSON 二. 初识协议结束语 前言 本系列文章是计算机网络学习的笔记&#xff0c;欢迎大佬们阅读&#xff0c;纠错&#xff0c;分享相关知识。希望可以与你共同进步。 本篇博文正式开始应用层的学习&#xff0c;首先讲解应用层的…...

亚马逊云科技推出新一代自研芯片

北京——2023 年12月1日 亚马逊云科技在2023 re:Invent全球大会上宣布其自研芯片家族的两个系列推出新一代&#xff0c;包括Amazon Graviton4和Amazon Trainium2&#xff0c;为机器学习&#xff08;ML&#xff09;训练和生成式人工智能&#xff08;AI&#xff09;应用等广泛的工…...

VIT总结

关于transformer、VIT和Swin T的总结 1.transformer 1.1.注意力机制 An attention function can be described as mapping a query and a set of key-value pairs to an output, where the query, keys, values, and output are all vectors. The output is computed as a wei…...

C++11——initializer_list

initializer_list的简介 initializer_list是C11新出的一个类型&#xff0c;正如类型的简介所说&#xff0c;initializer_list一般用于作为构造函数的参数&#xff0c;来让我们更方便赋值 但是光看这些&#xff0c;我们还是不知道initializer_list到底是个什么类型&#xff0c;…...

数学字体 Mathematical fonts

Mathematical fonts 数学字体&#xff1a; ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzRQSZ \\ \mathcal{ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzRQSZ} \\ \mathfrak{ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzRQSZ} \\ \mathbb{ABC…...

Python简单模拟蓝牙车钥匙协议

本文设计一个简单的蓝牙车钥匙协议&#xff0c;协议包含DH密钥协商和基于RSA的身份认证功能&#xff0c;以及防重放与消息完整性验证。 1. 密钥协商过程: - 设定 DH 参数&#xff1a;素数 p 和生成元 g。 - 发送方&#xff08;Alice&#xff09;生成 DH 的私钥 a 并计算公钥 A…...

【Python3】【力扣题】383. 赎金信

【力扣题】题目描述&#xff1a; 题解&#xff1a; 两个字符串ransomNote和magazine&#xff0c;ransomNote中每个字母都在magazine中一一对应&#xff08;顺序可以不同&#xff09;。 即分别统计两个字符串中每个字母出现的次数&#xff0c;ransomNote中每个字母的个数小于等…...

外包搞了6年,技术退步明显......

先说情况&#xff0c;大专毕业&#xff0c;18年通过校招进入湖南某软件公司&#xff0c;干了接近6年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试&#xf…...

uni-app x生成的安卓包,安装时,提示不兼容。解决方案

找到 manifest.json 进入&#xff1a;源码视图 代码 {"name" : "xxx康养","appid" : "__xxx6","description" : "xxx康养","versionName" : "1.0.12","versionCode" : 100012,&…...

Screenshot To Code

序言 对于GPT-4我只是一个门外汉&#xff0c;至于我为什么要了解screenshot to code&#xff0c;只是因为我想知道&#xff0c;在我不懂前端设计的情况下&#xff0c;能不能通过一些工具辅助自己做一些简单的前端界面设计。如果你想通过此文深刻了解GPT-4或者该开源项目&#…...

SpringBoot 是如何启动一个内置的Tomcat

为什么说Spring Boot框架内置Tomcat 容器,Spring Boot框架又是怎么样去启动Tomcat的?我简单总结下学习过程。 一:简单了解SpringBoot的启动类 我们都知道Spring Boot框架的启动类上是需要使用 @SpringBootApplication 注解标注的, @SpringBootApplication 是一个复合注解…...

《功能磁共振多变量模式分析中空间分辨率对解码精度的影响》论文阅读

《The effect of spatial resolution on decoding accuracy in fMRI multivariate pattern analysis》 文章目录 一、简介论文的基本信息摘要 二、论文主要内容语音刺激的解码任务多变量模式分析&#xff08;MVPA&#xff09;K空间 空间分辨率和平滑对MVPA的影响平滑的具体过程…...

pygame实现贪吃蛇小游戏

import pygame import random# 游戏初始化 pygame.init()# 游戏窗口设置 win_width, win_height 800, 600 window pygame.display.set_mode((win_width, win_height)) pygame.display.set_caption("Snake Game")# 颜色设置 WHITE (255, 255, 255) BLACK (0, 0, 0…...

反序列化漏洞(二)

目录 pop链前置知识&#xff0c;魔术方法触发规则 pop构造链解释&#xff08;开始烧脑了&#xff09; 字符串逃逸基础 字符减少 字符串逃逸基础 字符增加 实例获取flag 字符串增多逃逸 字符串减少逃逸 延续反序列化漏洞(一)的内容 pop链前置知识&#xff0c;魔术方法触…...

【开箱即用】前后端同时开源!周末和AI用Go语言共同研发了一款笔记留言小程序!

大家好&#xff0c;我是豆小匠。 真的是当你在怀疑AI会不会取代人类的时候&#xff0c;别人已经用AI工具加速几倍的生产速度了… 周末体验了和AI共同开发的感受&#xff0c;小项目真的可以一人全干了… 本次实验使用的AI工具有两个&#xff1a;1. GitHub Copilot&#xff08;…...

java对xml压缩

import java.util.*; import java.util.zip.GZIPOutputStream; import java.nio.charset.StandardCharsets; import org.apache.commons.codec.binary.Base64;/*** 模板压缩** param xml 模板xml* return* throws Exception*/public static String businessData(String xml) th…...

GoLang切片

一、切片基础 1、切片的定义 切片&#xff08;Slice&#xff09;是一个拥有相同类型元素的可变长度的序列它是基于数组类型做的一层封装它非常灵活&#xff0c;支持自动扩容切片是一个引用类型&#xff0c;它的内部结构包含地址、长度和容量声明切片类型的基本语法如下&#…...

React hook之useRef

React useRef 详解 useRef 是 React 提供的一个 Hook&#xff0c;用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途&#xff0c;下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...

Java如何权衡是使用无序的数组还是有序的数组

在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

STM32+rt-thread判断是否联网

一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

线程与协程

1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指&#xff1a;像函数调用/返回一样轻量地完成任务切换。 举例说明&#xff1a; 当你在程序中写一个函数调用&#xff1a; funcA() 然后 funcA 执行完后返回&…...

用docker来安装部署freeswitch记录

今天刚才测试一个callcenter的项目&#xff0c;所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

多模态大语言模型arxiv论文略读(108)

CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题&#xff1a;CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者&#xff1a;Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

聊一聊接口测试的意义有哪些?

目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开&#xff0c;首…...

GitFlow 工作模式(详解)

今天再学项目的过程中遇到使用gitflow模式管理代码&#xff0c;因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存&#xff0c;无论是github还是gittee&#xff0c;都是一种基于git去保存代码的形式&#xff0c;这样保存代码…...

[论文阅读]TrustRAG: Enhancing Robustness and Trustworthiness in RAG

TrustRAG: Enhancing Robustness and Trustworthiness in RAG [2501.00879] TrustRAG: Enhancing Robustness and Trustworthiness in Retrieval-Augmented Generation 代码&#xff1a;HuichiZhou/TrustRAG: Code for "TrustRAG: Enhancing Robustness and Trustworthin…...

客户案例 | 短视频点播企业海外视频加速与成本优化:MediaPackage+Cloudfront 技术重构实践

01技术背景与业务挑战 某短视频点播企业深耕国内用户市场&#xff0c;但其后台应用系统部署于东南亚印尼 IDC 机房。 随着业务规模扩大&#xff0c;传统架构已较难满足当前企业发展的需求&#xff0c;企业面临着三重挑战&#xff1a; ① 业务&#xff1a;国内用户访问海外服…...