云贝教育 | 【技术文章】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
四、私网变更
变更类型:
- 配置双私网
- 变更当前私网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修改网络
注: 本文为云贝教育 刘峰 原创,请尊重知识产权,转发请注明出处,不接受任何抄袭、和未经注明出处的转载。 原文链接:【Oracle 19c】Oracle 19c RAC修改网络 - 课程体系 - 云贝教育 (yunbee.net) 变更目标 ip类型 节点 原IP 目…...
Android SELinux:保护您的移动设备安全的关键
Android SELinux:保护您的移动设备安全的关键 1 引言 移动设备在我们的生活中扮演着越来越重要的角色,我们几乎把所有重要的信息都存储在这些设备上。然而,随着移动应用程序的数量不断增加,安全性也变得越来越关键。这就是为什么…...
第十三章认识Ajax(四)
认识FormData对象 FormData对象用于创建一个表示HTML表单数据的键值对集合。 它可以用于发送AJAX请求或通过XMLHttpRequest发送表单数据。 以下是FormData对象的一些作用: 收集表单数据:通过将FormData对象与表单元素关联,可以方便地收集表单中的数据。使用FormData对象,…...
使用 Node.js 和 Cheerio 爬取网站图片
写一个关于图片爬取的小案例 爬取效果 使用插件如下: {"dependencies": {"axios": "^1.6.0","cheerio": "^1.0.0-rc.12","request": "^2.88.2"} }新建一个config.js配置文件 // 爬取图片…...
2024美赛数学建模E题思路源码
赛题目的 可以将其拆解为以下主要问题,并为每个问题提出解决方案: 如何在极端天气事件越来越多的地区部署财产保险? 保险公司应在何时何地承保保单? 业主如何影响保险公司的承保决定? 如何建立能够评估未来房地产决…...
解决Docker AList本地挂载失效的问题。
解决Docker AList本地挂载失效的问题。 AList Docker version: 3.3 services:alist:image: xhofe/alist:latestcontainer_name: alistvolumes:- ./etc/alist:/opt/alist/data# 比如我要挂载/home,如果在docker里先挂载,是没法办法映射到linux系统下的/home的- /ho…...
Emmet常用语法总结
Emmet常用语法总结 子元素:>兄弟元素:上级元素:^倍数:*分组:()属性:[]id和类:# .迭代数字:$文本内容:{}注意事项 Emmet是许多流行文本编辑器的…...
Android 12系统源码_页面管理(四)获取系统当前最上层的Activity信息
前言 很多应用开发人员,在日常开发过程中,经常会遇到一些需求,例如需要知道当前最上层的Activity是哪个,并结合这个Activity的名称来完成一些特定场景的需求。最简单的方法,是在创建Activity的时候将该Actvity存储到一…...
RK3588开发板Ubuntu与开发板使用U盘互传
1 将 U 盘(U 盘的格式必须为 FAT32 格式,大小在 32G 以下)插到开发板的 usb 接口,串口打印信息如下所示,U 盘的设备节点是/dev/sdb4。U 盘的设备节点不是固定的,根据实际情况来查看设备节点。 2 输入以下命令挂载 U 盘,…...
【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送达,1回执,channel Int32 DEFAULT 0 COMMENT uid下发的渠道,mode…...
TCP/IP网络模型
大家好我是苏麟 , 今天聊聊TCP/IP四层网络模型 . 资料来源 : 小林coding 小林官方网站 : 小林coding (xiaolincoding.com) 应用层 最上层的,也是我们能直接接触到的就是应用层(Application Layer),我们电脑或手机使用的应用软件都…...
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如何求解表达式 其中第三种方法最简单,通过剪贴板实现 如,单元格A1中输入了 12345 然后在A2输入 “”&A1 然后复制A2,打开剪贴板,点击刚才复制的内容,就会在A2显示计算结果...
26元/月起!腾讯云一键自动搭建4核16G幻兽帕鲁服务器
腾讯云无需任何配置自动搭建幻兽帕鲁游戏联机服务器,游戏24小时在线,4核16G游戏联机服务器低至26元/月起,新手小白也能一键搭建属于自己的幻兽帕鲁游戏联机服务器! 第一步:购买游戏联机服务器 购买入口: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不加控制,会有什么问题?CURD满足什么属性,能解决上述问题?什么是事务?为什么会出现事务事务的版本支持 CURD不加控制,会有什么问题? CURD满足什么属性,能解决上述问题&…...
持续积累分享金融知识
持续积累分享金融知识 一、什么是两融余额?二、什么是量化?三、散户可以进行量化投资么? 一、什么是两融余额? 两融余额是指投资者在融资买入和融券卖出交易中,通过向券商借入资金或证券进行交易,并且在交…...
网络协议 UDP协议
网络协议 UDP协议 在之前的文章中有对UDP协议套接字的使用进行讲解,本文主要对UDP协议进行一些理论补充。 文章目录 网络协议 UDP协议1. 概念2. UDP协议格式2.1 数据报长度2.2 校验和/检验和2.2.1 CRC校验2.2.2 MD5算法 1. 概念 UDP,即User Datagram P…...
爬虫笔记(三):实战qq登录
咳咳,再这样下去会进橘子叭hhhhhh 以及,这个我觉得大概率是成功的,因为测试了太多次,登录并且验证之后,qq提醒我要我修改密码才可以登录捏QAQ 1. selenium 有关selenium具体是啥,这里就不再赘述了&#x…...
又涨又跌 近期现货黄金价格波动怎么看?
踏入2024年一月的下旬,现货黄金价格可以说没了之前火热的状态,盘面上是又涨又跌。面对这样的行情,很多投资者不知道如何看了。下面我们就来讨论一下怎么把握近期的行情。 先区分走势类型。在现货黄金市场中有两种主要的走势类型,一…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...
CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型
CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...
将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?
Otsu 是一种自动阈值化方法,用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理,能够自动确定一个阈值,将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...
土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等
🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...
【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...
如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...
MySQL账号权限管理指南:安全创建账户与精细授权技巧
在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则…...
