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

📢📢📢📣📣📣
哈喽!大家好,我是【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的模式关闭。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode刷题实战2:两数相加

在日常我们学习数据结构和算法的知识,一定不能只停留在看书、看视频层面,一定要自己多练习,纸上得来终觉浅,绝知此事要躬行。 题目内容 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存…

Vue3:组件间通信-$attrs的使用

一、情景说明 我们之前学习了通过props实现&#xff0c;父给子传数据 那么&#xff0c;如果&#xff0c;父组件给子组件传递多个数据&#xff0c;但是&#xff0c;子组件只用props声明了一个数据 其他数据去哪里了呢&#xff1f; 二、案例 1、父组件 <Child :a"a&…

Linux 关闭防火墙命令(新手)

关闭防火墙 查看防火墙状态 systemctl status firewalld.service 临时关闭防火墙&#xff08;重启失效&#xff09; systemctl stop firewalld.service 永久关闭防火墙 systemctl disable firewalld.servicesudo systemctl enable firewalld&#xff0c;这种方式输入命令…

AcWing 731. 毕业旅行问题(每日一题)

原题链接&#xff1a;731. 毕业旅行问题 - AcWing题库 此题难度较大&#xff0c;是2019年字节跳动校招题&#xff0c;里面涉及位运算与状态压缩DP&#xff0c;不会的可以去学习&#xff0c;此题根据个人量力而行。 建议看一下y总的讲解&#xff1a;AcWing 731. 毕业旅行问题&…

【Unity 实用工具篇】| Unity中 实现背景模糊效果,简单易用

前言【Unity 实用工具篇】| Unity 实现背景模糊效果,简单易用一、实现背景模糊效果1.1 介绍1.2 效果展示1.3 使用说明及下载二、插件资源简单介绍2.1 导入下载好的资源2.2 功能介绍2.2.1 捕获特效2.2.2 高级选项

长连接详解

一分钟了解长连接 、短连接、心跳机制与断线重连 - 知乎 (zhihu.com) websocket 实现长连接原理_websocket 是长连接吗-CSDN博客

RedisDesktopManager 安装

简介&#xff1a;安装redis可视化工具 一、下载压缩包 Redis 可视化工具 链接&#xff1a;https://pan.baidu.com/s/1P2oZx9UpQbXDsxJ3GPUeOQ 提取码&#xff1a;6rft Redis 命令窗口版本 链接&#xff1a;https://pan.baidu.com/s/1mIuxCEWwD__aoqp1Cx8MFQ 提取码&#xf…

Linux 文件相关命令

一、查看文件命令 1&#xff09;浏览文件less 默认查看文件的前 10 行。 less /etc/services ##功能说明&#xff1a; #1.默认打开首屏内容 #2.按【回车】按行访问 #3.按【空格】按屏访问 #4.【从上向下】搜索用/111,搜索包含111的内容&#xff0c;此时按n继续向下搜&#x…

力扣刷题 45.跳跃游戏 II

目录 题干 解题思路 题干 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&#xff0c;你可以跳转到任意 nums[i j] 处: 0 < j < nums[i] i j < n…

稀碎从零算法笔记Day39-LeetCode:有向无环图中一个节点的所有祖先

感觉写的越来越难了hhh&#xff0c;一晚上只研究明白了2道题 题型&#xff1a;拓扑排序、BFS、图 链接&#xff1a;2192. 有向无环图中一个节点的所有祖先 - 力扣&#xff08;LeetCode&#xff09; 来源&#xff1a;LeetCode 题目描述&#xff08;红字为笔者添加&#xff0…

FPGA实现Canny算法(Verilog)

在边缘检测算法里面Sobel是比较简单的一个算法&#xff0c;但是其检测出来的边缘往往是比较粗的&#xff0c;效果不是很好&#xff0c;因为我们最理想的边缘肯定就是一个宽度为1的细线。 Canny算法在此基础上进行了改进&#xff0c;通过使用边缘的梯度信息进行非最大值抑制(NM…

基于单片机的数字万用表设计

**单片机设计介绍&#xff0c;基于单片机的数字万用表设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的数字万用表设计概要是关于使用单片机技术来实现数字万用表功能的一种设计方案。下面将详细概述该设计的各个…

C++ | Leetcode C++题解之第8题字符串转换整数atoi

题目&#xff1a; 题解&#xff1a; class Automaton {string state "start";unordered_map<string, vector<string>> table {{"start", {"start", "signed", "in_number", "end"}},{"signed…

Linux 多线程与线程控制(程序均有详细注释)

多线程与线程控制 线程的基本概念线程的特点页表多线程 线程控制线程的创建线程传参线程id资源回收---线程等待线程id和LWP 封装一个线程库线程互斥和线程同步线程互斥基本原理线程安全VS线程不安全锁的诞生可重入VS线程安全 死锁死锁的定义 线程同步条件变量接口 生成消费者模…

使用阿里云试用Elasticsearch学习:1.2 基础入门——数据输入和输出

什么是文档? 在大多数应用中&#xff0c;多数实体或对象可以被序列化为包含键值对的 JSON 对象。 一个 键 可以是一个字段或字段的名称&#xff0c;一个 值 可以是一个字符串&#xff0c;一个数字&#xff0c;一个布尔值&#xff0c; 另一个对象&#xff0c;一些数组值&#…

全流程基于GIS、python机器学习技术的地质灾害风险评价与信息化建库应用

入门篇&#xff0c;ArcGIS软件的快速入门与GIS数据源的获取与理解&#xff1b;方法篇&#xff0c;致灾因子提取方法、灾害危险性因子分析指标体系的建立方法和灾害危险性评价模型构建方法&#xff1b;拓展篇&#xff0c;GIS在灾害重建中的应用方法&#xff1b;高阶篇&#xff1…

Cisco路由器配置IPv6 Manual隧道

Cisco路由器配置IPv6 Manual隧道 IPv6与IPv4共存的方式 IPv6与IPv4共存方式大致有三种&#xff1a; 双栈&#xff1a;要求网络中所有设备均同时支持IPv4和IPv6转换&#xff1a;转换这种方式将IPv6协议的报头转换成IPv4协议报头。隧道&#xff1a;假定两个IPv6节点要使用IPv6…

redis---哨兵模式Sentinel

上次搭建了一主两从的Redis集群&#xff0c;来实现了一定程度上的高可用。相比一个单节点的Redis来说已经有了很大的提升。 但是这个集群还是有一些问题的&#xff0c;主节点宕机了&#xff0c;我们还是需要手动去把另一台从节点提升为主节点&#xff0c;这样就不能实现真正的…

JDK、JRE和JDK的关系

✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a;每天一个知识点 ✨特色专栏&#xff1a…

【考研经验贴】24考研860软件工程佛系上岸经验分享【丰富简历、初复试攻略、导师志愿、资料汇总】

&#x1f60a;你好&#xff0c;我是小航&#xff0c;一个正在变秃、变强的文艺倾年。 &#x1f514;本文讲解24考研860软件工程佛系上岸经验分享【丰富简历、初复试攻略、导师志愿、资料汇总】&#xff0c;期待与你一同探索、学习、进步&#xff0c;一起卷起来叭&#xff01; 目…