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

云贝教育 | 【技术文章】Oracle 19c RAC修改网络

注: 本文为云贝教育 刘峰 原创,请尊重知识产权,转发请注明出处,不接受任何抄袭、和未经注明出处的转载。

原文链接:【Oracle 19c】Oracle 19c RAC修改网络 - 课程体系 - 云贝教育 (yunbee.net)

变更目标

ip类型

节点

原IP

目标IP

PUBLIC IP

racdb01

192.168.2.60

192.168.2.160

racdb02

192.168.2.62

192.168.2.162

VIP

racdb01

192.168.2.61

192.168.2.161

racdb02

192.168.2.63

192.168.2.163

  SCAN-IP

racdb01

racdb02

192.168.2.64

192.168.2.164

生产环境做变更,对核心文件需要进行备份

gpnp备份:

两个节点都要操作

<GRID>cd $ORACLE_HOMEgpnp/profiles/peer/cp profile.xml profile.xml.bak

修改任意IP前,需对/etc/hosts文件进行修改,不再赘述。

一、修改puclib ip

1.1 查看当前配置

<GRID>[grid@racdb01 ~]$ oifcfg getif
ens33  192.168.2.0  global  public
ens36  10.10.10.0  global  cluster_interconnect,asm

1.2 查看当前网卡

ens38是我们新指定的PUBLIC网卡

一节点

ens38: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.2.160  netmask 255.255.255.0  broadcast 192.168.2.255

二节点

ens38: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.2.162  netmask 255.255.255.0  broadcast 192.168.2.255

1.3 删除原公网配置

<GRID>oifcfg delif -global ens33/192.168.2.0

1.4 添加公网配置

示例 oifcfg setif -global <私有网卡名>/<新私有网段>:cluster_interconnect,asmoifcfg setif -global ens38/192.168.2.0:public

1.5 检查

[grid@racdb01 ~]$ oifcfg getif
ens36  10.10.10.0  global  cluster_interconnect,asm
ens38  192.168.2.0  global  public

二、变更VIP

2.1 查看当前VIP配置

<GRID>[grid@racdb02 ~]$ srvctl config nodeapps -a
Network 1 exists
Subnet IPv4: 192.168.2.0/255.255.255.0/ens33, static
Subnet IPv6: 
Ping Targets: 
Network is enabled
Network is individually enabled on nodes: 
Network is individually disabled on nodes: 
VIP exists: network number 1, hosting node racdb01
VIP Name: racdb01-vip
VIP IPv4 Address: 192.168.2.61
VIP IPv6 Address: 
VIP is enabled.
VIP is individually enabled on nodes: 
VIP is individually disabled on nodes: 
VIP exists: network number 1, hosting node racdb02
VIP Name: racdb02-vip
VIP IPv4 Address: 192.168.2.63
VIP IPv6 Address: 
VIP is enabled.
VIP is individually enabled on nodes: 
VIP is individually disabled on nodes: 

2.2 查看当前监听地址

<GRID>[grid@racdb02 ~]$ lsnrctl  status
Listening Endpoints Summary...(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.2.62)(PORT=1521)))(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.2.63)(PORT=1521)))
Services Summary...

2.3 关闭两节点上的VIP及监听

<GRID>1)关闭两节点vip及监听
srvctl stop listener -n racdb01
srvctl stop vip -n racdb0
srvctl stop listener -n racdb02
srvctl stop vip -n racdb02
或
srvctl stop vip -n racdb01 -f
srvctl stop vip -n racdb02 -f

停掉vip之后,两个节点上的vip地址消失。

以二节点为例

[grid@racdb02 ~]$ ifconfig -a
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.2.62  netmask 255.255.255.0  broadcast 192.168.2.255inet6 fe80::7abc:4983:ac14:e0dd  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:12:08:eb  txqueuelen 1000  (Ethernet)RX packets 1788  bytes 213310 (208.3 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 1265  bytes 204969 (200.1 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0ens36: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 10.10.10.38  netmask 255.255.255.0  broadcast 10.10.10.255

正常情况下

[oracle@racdb01 dbs]$ ifconfig -a
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.2.60  netmask 255.255.255.0  broadcast 192.168.2.255inet6 fe80::a22b:7bcb:ba5b:566c  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:a5:2b:c7  txqueuelen 1000  (Ethernet)RX packets 1197951  bytes 1357345599 (1.2 GiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 35190  bytes 7038721 (6.7 MiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0ens33:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.2.61  netmask 255.255.255.0  broadcast 192.168.2.255ether 00:0c:29:a5:2b:c7  txqueuelen 1000  (Ethernet)

2.4 根据VIP配置信息,修改VIP

<root>
格式: srvctl modify nodeapps -n <hostname1> -A <hostname1-vip>/255.255.255.0/<网卡>cd /u01/app/19.3.0/grid/
bin/srvctl modify nodeapps -n racdb01 -A 192.168.2.161/255.255.255.0/ens33
bin/srvctl modify nodeapps -n racdb02 -A 192.168.2.163/255.255.255.0/ens33

2.5 修改/etc/hosts

两个节点改成以下信息


############Virtual IP############
192.168.2.161   racdb01-vip
192.168.2.163   racdb02-vip

2.6 验证VIP

srvctl config nodeapps -asrvctl config vip -n racdb01
srvctl config vip -n racdb02ip a

查看监听

lsnrctl status

三、变更SCAN-IP

3.1 关闭SCAN服务及监听

关闭scan监听
srvctl stop scan_listener
srvctl stop scan查看
srvctl status scan_listener

3.2 修改/etc/hosts

两个节点均要操作

############Scan IP###############
192.168.2.164   racdb-scan

3.3 修改SCAN IP

<root>格式srvctl modify scan -n <scan-IP名>srvctl modify scan -n racdb-scan

3.4 启动scan服务及监听

srvctl start scan_listener
srvctl start scan

3.5 检查

检查监听

[grid@racdb02 ~]$ lsnrctl  status listener_scan(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.2.164)(PORT=1521)))
Service "ORCL" has 1 instance(s).Instance "YBDBINST1", status READY, has 1 handler(s) for this service...
Service "yunnbeedXDB" has 1 instance(s).Instance "YBDBINST1", status READY, has 1 handler(s) for this service...

检查服务

[grid@racdb02 ~]$ srvctl status scan_listener
SCAN Listener LISTENER_SCAN1 is enabled
SCAN listener LISTENER_SCAN1 is running on node racdb02

四、私网变更

变更类型:

  1. 配置双私网
  2. 变更当前私网IP

4.1 添加私网网卡

 oifcfg getif oifcfg setif -global ens38/10.10.20.0:cluster_interconnectoifcfg getif

实验1:关闭节点2上双私网中的一个,观察集群日志

4.2. 变更私网

1、添加
oifcfg setif -global ens38/10.10.20.0:cluster_interconnect,asm2、查看
[grid@racdb01 ~]$ oifcfg getif
ens36  10.10.10.0  global  cluster_interconnect,asm
ens39  192.168.2.0  global  public
ens38  10.10.20.0  global  cluster_interconnect,asm3、加入一个新的 ASMLISTENE
srvctl add listener -asmlistener -l ASMNEWLSNR_ASM -subnet 10.10.20.04、查看当前的ASMLISNTER
[grid@racdb02 ~]$ srvctl status asmnetwork
ASM network is running on racdb02,racdb01[grid@racdb01 ~]$ srvctl config asmnetwork
ASM network 1 exists
Subnet IPv4: 10.10.10.0//
Subnet IPv6: 
Network is enabled
Network is individually enabled on nodes: 
Network is individually disabled on nodes: [grid@racdb01 ~]$ srvctl config listener -asmlistener
Name: ASMNET1LSNR_ASM
Type: ASM Listener
Owner: grid
Subnet: 10.10.10.0
Home: <CRS home>
End points: TCP:1525
Listener is enabled.
Listener is individually enabled on nodes: 
Listener is individually disabled on nodes:5、删除现有的ASMLISTENER
[grid@racdb01 ~]$ srvctl update listener -listener ASMNET1LSNR_ASM -asm -remove -force  lsnrctl stop ASMNET1LSNR_ASM 6、查看
[grid@racdb01 ~]$ srvctl config  listener -asmlistener
Name: ASMNEWLSNR_ASM
Type: ASM Listener
Owner: grid
Subnet: 10.10.20.0
Home: <CRS home>
End points: TCP:1526
Listener is enabled.
Listener is individually enabled on nodes: 
Listener is individually disabled on nodes: 

4.2 删除私网

 oifcfg delif -global ens38/10.10.20.0

相关文章:

云贝教育 | 【技术文章】Oracle 19c RAC修改网络

注: 本文为云贝教育 刘峰 原创&#xff0c;请尊重知识产权&#xff0c;转发请注明出处&#xff0c;不接受任何抄袭、和未经注明出处的转载。 原文链接&#xff1a;【Oracle 19c】Oracle 19c RAC修改网络 - 课程体系 - 云贝教育 (yunbee.net) 变更目标 ip类型 节点 原IP 目…...

Android SELinux:保护您的移动设备安全的关键

Android SELinux&#xff1a;保护您的移动设备安全的关键 1 引言 移动设备在我们的生活中扮演着越来越重要的角色&#xff0c;我们几乎把所有重要的信息都存储在这些设备上。然而&#xff0c;随着移动应用程序的数量不断增加&#xff0c;安全性也变得越来越关键。这就是为什么…...

第十三章认识Ajax(四)

认识FormData对象 FormData对象用于创建一个表示HTML表单数据的键值对集合。 它可以用于发送AJAX请求或通过XMLHttpRequest发送表单数据。 以下是FormData对象的一些作用: 收集表单数据:通过将FormData对象与表单元素关联,可以方便地收集表单中的数据。使用FormData对象,…...

使用 Node.js 和 Cheerio 爬取网站图片

写一个关于图片爬取的小案例 爬取效果 使用插件如下&#xff1a; {"dependencies": {"axios": "^1.6.0","cheerio": "^1.0.0-rc.12","request": "^2.88.2"} }新建一个config.js配置文件 // 爬取图片…...

2024美赛数学建模E题思路源码

赛题目的 可以将其拆解为以下主要问题&#xff0c;并为每个问题提出解决方案&#xff1a; 如何在极端天气事件越来越多的地区部署财产保险&#xff1f; 保险公司应在何时何地承保保单&#xff1f; 业主如何影响保险公司的承保决定&#xff1f; 如何建立能够评估未来房地产决…...

解决Docker AList本地挂载失效的问题。

解决Docker AList本地挂载失效的问题。 AList Docker version: 3.3 services:alist:image: xhofe/alist:latestcontainer_name: alistvolumes:- ./etc/alist:/opt/alist/data# 比如我要挂载/home,如果在docker里先挂载&#xff0c;是没法办法映射到linux系统下的/home的- /ho…...

Emmet常用语法总结

Emmet常用语法总结 子元素&#xff1a;>兄弟元素&#xff1a;上级元素&#xff1a;^倍数&#xff1a;*分组&#xff1a;&#xff08;&#xff09;属性&#xff1a;[]id和类&#xff1a;# .迭代数字&#xff1a;$文本内容&#xff1a;{}注意事项 Emmet是许多流行文本编辑器的…...

Android 12系统源码_页面管理(四)获取系统当前最上层的Activity信息

前言 很多应用开发人员&#xff0c;在日常开发过程中&#xff0c;经常会遇到一些需求&#xff0c;例如需要知道当前最上层的Activity是哪个&#xff0c;并结合这个Activity的名称来完成一些特定场景的需求。最简单的方法&#xff0c;是在创建Activity的时候将该Actvity存储到一…...

RK3588开发板Ubuntu与开发板使用U盘互传

1 将 U 盘(U 盘的格式必须为 FAT32 格式&#xff0c;大小在 32G 以下)插到开发板的 usb 接口&#xff0c;串口打印信息如下所示&#xff0c;U 盘的设备节点是/dev/sdb4。U 盘的设备节点不是固定的&#xff0c;根据实际情况来查看设备节点。 2 输入以下命令挂载 U 盘&#xff0c…...

【BUG】golang gorm导入数据库报错 “unexpected type clause.Expr“

帮同事排查一个gorm导入数据报错的问题 事发现场 ck sql CREATE TABLE ods_api.t_sms_jg_msg_callback_dis (app_key String DEFAULT COMMENT 应用标识,callback_type Int32 DEFAULT 0 COMMENT 0送达&#xff0c;1回执,channel Int32 DEFAULT 0 COMMENT uid下发的渠道,mode…...

TCP/IP网络模型

大家好我是苏麟 , 今天聊聊TCP/IP四层网络模型 . 资料来源 : 小林coding 小林官方网站 : 小林coding (xiaolincoding.com) 应用层 最上层的&#xff0c;也是我们能直接接触到的就是应用层&#xff08;Application Layer&#xff09;&#xff0c;我们电脑或手机使用的应用软件都…...

github连不上

github连不上 错误提示解决方案steam 采用Hosts加速 错误提示 fatal: unable to access ‘https://github.com/Ada-design/qianduan.git/’: Failed to connect to github.com port 443 after 21073 ms: Couldn’t connect to server 解决方案 下载steam https://steampp.ne…...

Excel计算表达式的值

Excel如何求解表达式 其中第三种方法最简单&#xff0c;通过剪贴板实现 如&#xff0c;单元格A1中输入了 12345 然后在A2输入 “”&A1 然后复制A2&#xff0c;打开剪贴板&#xff0c;点击刚才复制的内容&#xff0c;就会在A2显示计算结果...

26元/月起!腾讯云一键自动搭建4核16G幻兽帕鲁服务器

腾讯云无需任何配置自动搭建幻兽帕鲁游戏联机服务器&#xff0c;游戏24小时在线&#xff0c;4核16G游戏联机服务器低至26元/月起&#xff0c;新手小白也能一键搭建属于自己的幻兽帕鲁游戏联机服务器&#xff01; 第一步&#xff1a;购买游戏联机服务器 购买入口&#xff1a;htt…...

【C++游戏开发-01】推箱子

C游戏开发 文章目录 C游戏开发[TOC](文章目录) 前言一、逻辑分析1.1地图实现1.2人物的移动1.2.1小人移动1.2.2其他移动 1.3墙壁的碰撞1.4箱子的推动1.4.1什么时候推箱子1.4.2什么情况可以推箱子 1.5胜利的判断1.6卡关的处理1.7关卡的切换 二、DEMO代码2.1游戏框架2.2各功能函数…...

【lesson26】学习MySQL事务前的基础知识

文章目录 CURD不加控制&#xff0c;会有什么问题&#xff1f;CURD满足什么属性&#xff0c;能解决上述问题&#xff1f;什么是事务&#xff1f;为什么会出现事务事务的版本支持 CURD不加控制&#xff0c;会有什么问题&#xff1f; CURD满足什么属性&#xff0c;能解决上述问题&…...

持续积累分享金融知识

持续积累分享金融知识 一、什么是两融余额&#xff1f;二、什么是量化&#xff1f;三、散户可以进行量化投资么&#xff1f; 一、什么是两融余额&#xff1f; 两融余额是指投资者在融资买入和融券卖出交易中&#xff0c;通过向券商借入资金或证券进行交易&#xff0c;并且在交…...

网络协议 UDP协议

网络协议 UDP协议 在之前的文章中有对UDP协议套接字的使用进行讲解&#xff0c;本文主要对UDP协议进行一些理论补充。 文章目录 网络协议 UDP协议1. 概念2. UDP协议格式2.1 数据报长度2.2 校验和/检验和2.2.1 CRC校验2.2.2 MD5算法 1. 概念 UDP&#xff0c;即User Datagram P…...

爬虫笔记(三):实战qq登录

咳咳&#xff0c;再这样下去会进橘子叭hhhhhh 以及&#xff0c;这个我觉得大概率是成功的&#xff0c;因为测试了太多次&#xff0c;登录并且验证之后&#xff0c;qq提醒我要我修改密码才可以登录捏QAQ 1. selenium 有关selenium具体是啥&#xff0c;这里就不再赘述了&#x…...

又涨又跌 近期现货黄金价格波动怎么看?

踏入2024年一月的下旬&#xff0c;现货黄金价格可以说没了之前火热的状态&#xff0c;盘面上是又涨又跌。面对这样的行情&#xff0c;很多投资者不知道如何看了。下面我们就来讨论一下怎么把握近期的行情。 先区分走势类型。在现货黄金市场中有两种主要的走势类型&#xff0c;一…...

【网络】每天掌握一个Linux命令 - iftop

在Linux系统中&#xff0c;iftop是网络管理的得力助手&#xff0c;能实时监控网络流量、连接情况等&#xff0c;帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下&#xff1a; struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

Java 语言特性(面试系列1)

一、面向对象编程 1. 封装&#xff08;Encapsulation&#xff09; 定义&#xff1a;将数据&#xff08;属性&#xff09;和操作数据的方法绑定在一起&#xff0c;通过访问控制符&#xff08;private、protected、public&#xff09;隐藏内部实现细节。示例&#xff1a; public …...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件

在选煤厂、化工厂、钢铁厂等过程生产型企业&#xff0c;其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进&#xff0c;需提前预防假检、错检、漏检&#xff0c;推动智慧生产运维系统数据的流动和现场赋能应用。同时&#xff0c;…...

Module Federation 和 Native Federation 的比较

前言 Module Federation 是 Webpack 5 引入的微前端架构方案&#xff0c;允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台

🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...

HashMap中的put方法执行流程(流程图)

1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中&#xff0c;其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下&#xff1a; 初始判断与哈希计算&#xff1a; 首先&#xff0c;putVal 方法会检查当前的 table&#xff08;也就…...

在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案

这个问题我看其他博主也写了&#xff0c;要么要会员、要么写的乱七八糟。这里我整理一下&#xff0c;把问题说清楚并且给出代码&#xff0c;拿去用就行&#xff0c;照着葫芦画瓢。 问题 在继承QWebEngineView后&#xff0c;重写mousePressEvent或event函数无法捕获鼠标按下事…...