Oracle RAC One Node,双胞胎变独生子?

news2025/1/19 14:22:28

📢📢📢📣📣📣
哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验
一位上进心十足的【大数据领域博主】!😜😜😜
中国DBA联盟(ACDU)成员,目前服务于工业互联网
擅长主流Oracle、MySQL、PG、高斯及Greenplum运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。
✨ 如果有对【数据库】感兴趣的【小可爱】,欢迎关注【IT邦德】💞💞💞
❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️

文章目录

    • 📣 1.RAC One Node介绍
    • 📣 2.创建RAC One Node
    • 📣 3.RAC切换到RAC One Node
      • ✨ 3.1 查看资源状态
      • ✨ 3.2.查看实例
      • ✨ 3.3 查看数据库详细信息
      • ✨ 3.4.删除实例
      • ✨ 3.5 新增service
      • ✨ 3.6 转换为RAC One Node
      • ✨ 3.7 再次查看状态
      • ✨ 3.8 测试一下HA
    • 📣 4.RAC One Node切换到RAC
      • ✨ 4.1 进行转换
      • ✨ 4.2 查看数据库信息
      • ✨ 4.3.新增实例
      • ✨ 4.4 启动实例
      • ✨ 4.5 再次查看数据库的状态
    • 📣 5.其他事项
      • ✨ 5.1 RAC的SPFILE
      • ✨ 5.2 转换后启动报错
    • 📣 6.总结


RAC One Node能提供高可用性优势中的Failover保护,为操作系统和Clusterware提供在线滚动升级。

📣 1.RAC One Node介绍

Oracle Real Application Clusters One Node(Oracle RAC One Node)是从
Oracle Database 11g release 2(11.2)起提供的Oracle Database Enterprise Edition
的一个选项。

Oracle RAC One Node是启用了Oracle RAC的数据库的单个实例,仅在正常操作下在群集中的一个节点上运行。

使用Oracle RAC One Node,服务器的可扩展性没有限制,如果应用程序需要的资源超过单个节点所能提供的资源,则您可以将应用程序联机升级到Oracle RAC。
如果运行Oracle RAC One Node的节点过载,则可以将实例重新定位到群集中的另一个节点。使用Oracle RAC One Node,您可以使用在线数据库重新定位功能来重新定位数据库实例,而不会让应用程序用户停机。或者,您可以使用Resource Manager实例缓存来限制集群中每个服务器的单个数据库实例的CPU消耗,并在必要时根据需求场景动态更改此限制。

使用单一客户端访问名称(SCAN)连接到数据库,客户端可以独立于运行服务的节点来定位服务。因此,重新定位Oracle RAC One Node实例对客户端来说基本上是透明的,具体取决于客户端连接.

📣 2.创建RAC One Node

可以使用DBCA创建Oracle RAC One Node数据库或者手动创建的脚本也是可以的

Oracle RAC单节点数据库也可能是从单个实例Oracle数据库或Oracle RAC数据库
转换而来的结果。通常,Oracle提供的工具会向Oracle Clusterware注册Oracle RAC单节点数据库

如果您的Oracle RAC One Node数据库没有自动向Oracle Clusterware注册,请使用srvctl add database命令将Oracle RAC One Node数据库添加到集群中。

$ srvctl add database -dbtype  
RACONENODE [-server server_list]
[-instance instance_name] [-timeout timeout]

📣 3.RAC切换到RAC One Node

在将Oracle RAC数据库转换为Oracle RAC单节点数据库之前,必须首先确保Oracle RAC数据库只有一个实例。如果您的Oracle RAC数据库由管理员管理,并且有多个实例,则必须使用srvctl remove instance命令删除除一个实例以外的所有实例。如果您的Oracle RAC数据库是策略管理的,并且有多个实例,则必须使用srvctl stop instance命令停止除一个实例以外的所有实例。

Related Topics
1.srvctl remove instance
2.srvctl stop instance
3.srvctl convert database

✨ 3.1 查看资源状态

[root@rac01 ~]$ crsctl status res -t
从这里看到,数据库的名字叫racdb

✨ 3.2.查看实例

[oracle@rac01 ~]$ srvctl status database -d racdb
Instance racdb1 is running on node rac01
Instance racdb2 is running on node rac02

✨ 3.3 查看数据库详细信息

[oracle@rac01 ~]$ srvctl config database -d racdb
Database unique name: racdb
Database name: racdb
Oracle home: /u01/app/oracle/product/19.0.0/dbhome_1
Oracle user: oracle
Spfile: +DATA/RACDB/PARAMETERFILE/spfile.268.1159380643
Password file: +DATA/RACDB/PASSWORD/pwdziprodb.256.1159380269
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools:
Disk Groups: ARCH,DATA
Mount point paths:
Services:
Type: RAC
Start concurrency:
Stop concurrency:
OSDBA group: dba
OSOPER group: oper
Database instances: racdb1,racdb2
Configured nodes: rac01,rac02
CSS critical: no
CPU count: 0
Memory target: 0
Maximum memory: 0
Default network number for database services:
Database is administrator managed

从上图中,可以看到数据库名,
oracle_home,实例名,以及重要的TYPE为RAC

✨ 3.4.删除实例

只留下一个,RACOneNode只有一个实例是活动状态
[oracle@rac01 ~]$ srvctl remove instance -d racdb -i rac02 -f
说明:加上-f参数可以强制关闭实例并将实例删除

✨ 3.5 新增service

如果不新增service,无法进行转换
[oracle@rac01 ~]$ srvctl add service -h
–查看新增service的帮助
[oracle@rac1 ~]$ srvctl add service -d prodb -s rac -r rac01 -P BASIC
-e SELECT -m BASIC -y AUTOMATIC

[oracle@rac01 ~]$ srvctl start service -d racdb -s rac
说明:service名字为rac,TFA类型为BASIC

✨ 3.6 转换为RAC One Node

[oracle@rac01 ~]$ srvctl convert database -d racdb -c RACONENODE -i rac01

✨ 3.7 再次查看状态

[oracle@rac01 ~]$ srvctl config database -d racdb
这里可以看到TYPE是RACOneNode。
Instance name prefix是实例的前缀,
后续会生成racdb1_1和racdb1_2实例

✨ 3.8 测试一下HA

[oracle@rac01 ~]$ srvctl relocate database -d racdb -n rac02

[oracle@rac01 ~]$ srvctl relocate database -d racdb -n rac01

📣 4.RAC One Node切换到RAC

通过以Oracle RAC One Node数据库所有者的身份登录
并输入以下SRVCTL命令,
srvctl convert database -db db_unique_name -dbtype RAC
您可以将Oracle RAC One Node数据库转换为Oracle RAC数据库

✨ 4.1 进行转换

[oracle@rac01 ~]$ srvctl convert database -d racdb -c rac

✨ 4.2 查看数据库信息

[oracle@rac01 ~]$ srvctl config database -d racdb
从这里可以看到TYPE是RAC

✨ 4.3.新增实例

[oracle@rac01 ~]$ srvctl add instance -d racdb -i racdb1_2 -n rac02

✨ 4.4 启动实例

[oracle@rac01 ~]$ srvctl start instance -d racdb -i racdb1_2

✨ 4.5 再次查看数据库的状态

[oracle@rac01 ~]$ srvctl config database -d racdb

📣 5.其他事项

✨ 5.1 RAC的SPFILE

在实际工作中,发现有一些RAC实例的SPFILE是在各自的ORACLE_HOME/dbs下,现在想将其修改到共享目录(asm磁盘)中

1.将spfile建入共享目录中
create pfile-‘/tmp/pfile.txt’ from spfile;
create spfile=‘+DATA/racdb/spfileracdb.ora’
from pfile=‘/tmp/pfile.txt’;

2.将spfile的路径写入
ORACLE_HOME/dbs/initracdb1.ora
ORACLE_HOME/dbs/initracdb2.ora

[oracle@rac01 ~]$ vi initracdb1.ora
SPFILE='+DATA/racdb/spfileracdb.ora' 
[oracle@rac02 ~]$ vi initracdb2.ora
----------------------------------
SPFILE='+DATA/racdb/spfileracdb.ora' 
----------------------------------

3.同步到RAC集群的配置文件
srvctl modify database -d racdb -p ‘+DATA/racdb/spfileracdb.ora’

4.重启实例
srvctl stop instance -d racdb -i racdb2
srvctl start instance -d racdb -i racdb2
srvctl stop instance -d racdb -i racdb1
srvctl start instance -d racdb -i racdb1

✨ 5.2 转换后启动报错

在启动racdb2的时候,可能会报如下错误
ORA-01102: cannot mount database in EXCLUSIVE mode
这是需要修改参数cluster_database=true即可

alter system set cluster_database=true sid=‘*’ scope=spfile;
–查看数据库状态
srvctl config database -d racdb

📣 6.总结

RAC One Node它能提供高可用性优势中的Failover保护,为操作系统和Clusterware提供在线滚动升级。它搭建在标准的RAC框架之上。RAC和RAC One Node之间也可以非常方便的相互转换.

由于在执行RAC One Node联机迁移的时候需要用到TAF的功能,所以需要创建一个Service。在选择节点上,应至少选择两个节点,以便在发生故障时实现实例联机的Failover。Failover的时候,当Service被迁移到新节点之后,原来的实例被以 shutdown transactional的模式关闭。

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

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

相关文章

Redis从入门到精通(四)Redis实战(二)商户查询缓存

↑↑↑请在文章头部下载测试项目原代码↑↑↑ 文章目录 前言4.2 商户查询缓存4.2.1 缓存介绍4.2.2 查询商户信息的传统做法4.2.2.1 接口文档4.2.2.2 代码实现4.2.2.3 功能测试 4.2.3 查询商户信息添加Redis缓存4.2.3.1 逻辑分析4.2.3.2 代码实现4.2.3.3 功能测试 4.2.3 数据一致…

【Week-Y4】修改yolov5s中C3模块的结构,common.py文件解读

修改C3模块的结构 一、commom.py文件解析二、修改代码,运行train.py训练 🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 | 接辅导、项目定制 📕本次任务:将yolov5s网络模型…

LangChain入门:11.Pydantic(JSON)解析器实战

摘要 在数字化营销的浪潮中,自动化内容生成成为了提升效率和用户参与度的利器。本文将详细介绍如何利用LangChain的自然语言处理能力和Pydantic的数据验证特性,构建一个自动化的花店文案生成器。通过这个工具,您可以快速为各种花卉生成吸引人…

LLM:检索增强生成(RAG)

1 Embedding技术 简单地说,嵌入(Embedding)思想可以视为一种尝试通过用向量来表示所有东西的“本质”的方法,其特性是“相近的事物”由相近的数表示。 1.1 文本向量(Text Embedding) 在GPT中,文本嵌入(Text Embedding)是通过将输入文本中的每…

哲♂学家带你用顺序表实现通讯录

实现通讯录能使我们进一步加深对顺序表的理解,接下来就由本哲♂学家带你手把手实现通信录。 其中需要用到顺序表的知识可以点击下面链接了解:http://t.csdnimg.cn/9SjGd话不多说,我们♂开始吧。 一、通讯录头文件声明 由于我们前面已经写过…

随机生成Long全范围数

随机生成Long全范围数 前言实现思路主要代码分区随机生成过程案例:随机生成100个数 朴素的比较总结 前言 使用自带的Random.nextLong()函数生成Long型的长整数,范围比较小,如下图。100个随机数没看见10以内的数字。所以考虑实现随机化生成大…

基于注意力整合的超声图像分割信息在乳腺肿瘤分类中的应用

基于注意力整合的超声图像分割信息在乳腺肿瘤分类中的应用 摘要引言方法 Segmentation information with attention integration for classification of breast tumor in ultrasound image 摘要 乳腺癌是世界范围内女性最常见的癌症之一。基于超声成像的计算机辅助诊断&#x…

scp和rsync

引言 我们平时总会有在不同的设备之间传输文件的需要,好友同事间可以用微信、QQ、网盘等,还是比较方便安全的。而在linux的操作系统中,我们经常需要两台机器之间拷贝文件,或者由于业务需要备份文件,那就不得不用到scp和…

【React】基于JS 3D引擎库实现关系图(图graph)

主角:3D Force-Directed Graph 简介:一个使用ThreeJS/WebGL进行3D渲染的Graph图库 GitHub: https://github.com/vasturiano/3d-force-graph Ps: 较为复杂或节点巨大时,对GPU>CPU消耗较大,同量级节点对比下优于AntV G6和Echarts…

C语言之分支语句和循环语句

前言 一、什么是语句? 二、分支语句(选择结构) 2.1 if语句 2.2 switch语句 三、循环语句 3.1 while循环 3.2 break与continue语句 3.3 getchar()与putchar() 3.3.1 缓冲区 3.4 for循环 3.4.1 一些for循环的变种 3.5 do...while循…

java运行时内存

从jdk1.7以及以后,静态变量和常量池存在堆空间。

【TSP旅行商问题】改进的大邻域搜索算法LNS

课题名称:基于改进的大规模邻域搜索算法LNS求解TSP问题 版本时间:2024-04-01 程序运行:直接运行LNS_TSP.m 文件即可 代码获取方式: QQ:491052175 VX:Matlab_Lover 模型介绍: 第一步&…

[AutoSar]BSW_Memory_Stack_004 创建一个简单NV block并调试

目录 关键词平台说明背景一、需求二、配置2.1 NvMBlockDescriptors2.2 NvMFeeRef2.3 FeeBlockConfigurations 三、code3.1 声明和定义3.2 调试 关键词 嵌入式、C语言、autosar、OS、BSW 平台说明 项目ValueOSautosar OSautosar厂商vector , EB芯片厂商TI 英飞凌编…

SpringBoot -- 外部化配置

我们如果要对普通程序的jar包更改配置,那么我们需要对jar包解压,并在其中的配置文件中更改配置参数,然后再打包并重新运行。可以看到过程比较繁琐,SpringBoot也注意到了这个问题,其可以通过外部配置文件更新配置。 我…

钉钉事件订阅前缀树算法gin框架解析

当钉钉监测到发生一些事件,如下图 此处举例三个事件user_add_org、user_change_org、user_leave_org,传统的做法是,我们写三个if条件,类似下图 这样字符串匹配效率比较低,于是联想到gin框架中的路由匹配算法&#xff0…

利用Spark将Kafka数据流写入HDFS

利用Spark将Kafka数据流写入HDFS 在当今的大数据时代,实时数据处理和分析变得越来越重要。Apache Kafka作为一个分布式流处理平台,已经成为处理实时数据的事实标准。而Apache Spark则是一个强大的大数据处理框架,它提供了对数据进行复杂处理…

Linux操作系统之nfs网络文件系统

目录 一、NFS简介 1.2 安装配置NFS 一、NFS简介 nfs类似于windows文件共享 将linux的一个目录共享到网络中,网络中的其他所有主机都可以使用这个共享目录中的文件 samba 文件共享 可以在linux中通过samba共享一个目录,然后在linux中可以访问这个共享 …

55 npm run serve 和 npm run build 的分包策略

前言 这里我们来看一下 vue 这边 打包的时候的一些 拆分包的一些策略 我们经常会使用到 npm run build 进行服务的打包 然后 打包出来的情况, 可能如下, 可以看到 chunk-vendors 是进行了包的拆分, 我们这里就是 来看一下 这里 npm run build 的时候的, 一个分包的策略 测试…

【HTML】简单制作一个唱片动画效果

目录 前言 开始 HTML部分 CSS部分 效果图 总结 前言 无需多言,本文将详细介绍一段代码,具体内容如下: 开始 首先新建文件夹,创建两个文本文档,其中HTML的文件名改为[index.html],CSS的…

Matlab|储能辅助电力系统调峰的容量需求研究

目录 1 主要内容 目标函数 约束条件 2 部分代码 3 程序结果 4 下载链接 1 主要内容 该程序参考文献《储能辅助电力系统调峰的容量需求研究》,主要是对火电、风电和储能等电力设备主体进行优化调度,在调峰能力达不到时采用弃负荷,程序以…