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

数据库管理-第352期 从需求看懂Oracle RAC多租户环境的Service(20250729)

数据库管理352期 2025-07-29

  • 数据库管理-第352期 从需求看懂Oracle RAC多租户环境的Service(20250729)
    • 1 环境说明
    • 2 srvctl
    • 3 需求与解决
      • 3.1 需要一个测试库Service
      • 3.2 创建生产数据库Service
        • 在此基础上增加session级别失败转移
        • 再加上失败转移恢复后回切至原实例
        • 调整为TRANSACTION级别失败转移
        • 添加一个常驻实例
      • 3.3 创建一个备库Service
    • 总结

数据库管理-第352期 从需求看懂Oracle RAC多租户环境的Service(20250729)

作者:胖头鱼的鱼缸(尹海文)
Oracle ACE Pro: Database
PostgreSQL ACE Partner10年数据库行业经验
拥有OCM 11g/12c/19c、MySQL 8.0 OCP、Exadata、CDP等认证
墨天轮MVP,ITPUB认证专家
圈内拥有“总监”称号,非著名社恐(社交恐怖分子)公众号:胖头鱼的鱼缸
CSDN:胖头鱼的鱼缸(尹海文)
墨天轮:胖头鱼的鱼缸
ITPUB:yhw1809
IFClub:胖头鱼的鱼缸
除授权转载并标明出处外,均为“非法”抄袭

胖头鱼的鱼缸4_01.png
在最早写的几篇文章中,我写过在Oracle RAC多租户环境下如何配置Service,由于是刚刚开始写,写的不咋滴,回头看我感觉自己都有点看不明白,今天花一篇文章用实际需求(案例)来讲清楚RAC下常用的Service配置。

1 环境说明

这里说一下基本环境:

  • 版本为19c
  • 4节点RAC
  • 数据库名称问racdb
  • 实例名分别为racdb1、racdb2、racdb3、racdb4
  • rac1-3用于生产,rac4用于基本测试

2 srvctl

在Oracle RAC多租户环境下配置Service,我们需要在oracle用户下使用srvctl命令来添加Service,可以通过下面方式来获取命令帮助:

srvctl add service -help

WPS拼图0.png

3 需求与解决

3.1 需要一个测试库Service

创建一个运行在racdb4实例上的测试PDB的Service

PDB名称Service名称常驻实例可用实例
pdb_testtestdbracdb4-
srvctl add service -db racdb -pdb pdb_test -s testdb -preferred racdb4
srvctl start service -db racdb -s testdb
# 可以通过下面命令来查看Service运行与配置情况
srvctl config service -db racdb -s testdb

image.png
这时候可以通过下面的连接字符串访问到对应数据库:

scan_ip:1521/testdb

3.2 创建生产数据库Service

创建一个常驻运行在racdb1实例上的数据库Service,在racdb1出现异常时,racdb2可以接管该Service

PDB名称Service名称常驻实例可用实例
pdb_testdb1racdb1racdb2
srvctl add service -db racdb -pdb pdb_test -s db1 -preferred racdb1 -available racdb2
srvctl start service -db racdb -s db1

image.png
这时候可以通过下面的连接字符串访问到对应数据库:

scan_ip:1521/db1
在此基础上增加session级别失败转移

常驻实例出现异常时,整个会话会被转移到可用实例执行

srvctl modify service -db racdb -s db1 -failovertype session

image.png

再加上失败转移恢复后回切至原实例

racdb1出现异常恢复后,运行在racdb2上的Service将回到racdb1上运行

srvctl modify service -db racdb -s db1 -failback YES

image.png

调整为TRANSACTION级别失败转移

常驻实例出现异常时,整个事务会被转移到可用实例执行

srvctl modify service -db racdb -s db1 -failovertype transaction -commit_outcome true

image.png

添加一个常驻实例
srvctl modify service -db racdb -s db1 -modifyconfig -preferred racdb1,racdb3  -available racdb2

修改完成后,服务不会在新添加的实例上运行,需要手工启动。
image.png
image.png

3.3 创建一个备库Service

默认创建的Service的角色是PRIMARY。在ADG环境中,当主备角色切换后角色变更为PHYSICAL_STANDBY启动的Service

PDB名称Service名称常驻实例可用实例
pdb_testdb1_roracdb1racdb2
srvctl add service -db racdb -pdb pdb_test -s db1_ro -preferred racdb1 -available racdb2 -role physical_standby

image.png
当数据库以PHYSICAL_STANDBY角色启动后可以通过下面的连接字符串访问到对应数据库:

scan_ip:1521/db1_ro

总结

本期通过实际需求与案例介绍了Oracle RAC多租户环境的Service。
老规矩知道写了些啥。

http://www.dtcms.com/a/304175.html

相关文章:

  • C++ 1.面向对象编程(OOP)框架
  • SBB指令的“生活小剧场“
  • Excel工作簿合并工具,快速查找一键整合
  • 「源力觉醒 创作者计划」_DeepseekVS文心一言
  • JavaWeb 入门:CSS 基础与实战详解(Java 开发者视角)
  • 查询mac 安装所有python 版本
  • 服务器之光:Nginx--反向代理模块详解及演练
  • PHP性能优化与高并发处理:从基础到高级实践
  • Rust 实战三 | HTTP 服务开发及 Web 框架推荐
  • AI 数字人在处理音频时,如何确保声音的自然度?
  • 使用 Canvas 替代 <video> 标签加载并渲染视频
  • Vue 2.0响应式原理深度解析
  • 艾体宝方案 | 数据孤岛终结者:GWI + DOMO 联手打造一体化增长引擎
  • 系统调用追踪技术于VPS服务器性能分析的实施流程
  • linux系统的启动过程
  • Linux 系统启动过程及相关实验(破解密码;明文密文加密;修复grub2目录和boot目录)
  • 前端优化之虚拟列表实现指南:从库集成到手动开发
  • 【24】C# 窗体应用WinForm ——日历MonthCalendar属性、方法、实例应用
  • 算法精讲:二分查找(一)—— 基础原理与实现
  • vscode remote ssh相关问题
  • 车载刷写架构 --- 刷写思考扩展
  • Git 从入门到精通
  • 【数据库】—— 分区字段为null的时候在未指定最大分区的情况下数据无法插入?
  • 【C++算法】81.BFS解决FloodFill算法_岛屿的最大面积
  • echarts图表点击legend报错问题(折线图)
  • [ java泛型 ] 只闻其名---->“浅浅“了解
  • Java面试宝典:MySQL中的锁
  • 如何在在NPM发布一个React组件
  • Kafka运维实战 16 - kafka 分区重新分配【实战】
  • numpy瑞士军刀 第三卷:实战演练 第七章 组合大阵