小知识:Oracle RAC添加服务名实现单节点访问
时间:2022-07-22
本文章向大家介绍小知识:Oracle RAC添加服务名实现单节点访问,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
环境:Oracle 11.2.0.4 RAC(2 nodes)
1.查看RAC IP配置信息
我们先查看下环境的IP分配情况,一般确认/etc/hosts配置无误,可直接快速看下hosts配置相关内容:
#public ip
192.168.1.61 jystdrac1
192.168.1.63 jystdrac2
#virtual ip
192.168.1.62 jystdrac1-vip
192.168.1.64 jystdrac2-vip
#scan ip
192.168.1.65 jystdrac-scan
服务名选择系统名+VIP最后一位,即crm62、crm64,从而便于区分服务名默认优先连接哪一个节点;
2.添加服务名并启动服务
正常情况下,只连接到某一个节点进行跑批从而最大化避免gc类等待,但要求如果该节点发生故障,是可以连接到另外节点的。 这里就主要用到`-r`和`-a`两个参数分别指定preferred instances和available instances,下面具体规划为:
服务名 crm62 的 preferred instances 是 crmdb1,available instances 是 crmdb2; 服务名 crm64 的 preferred instances 是 crmdb2,available instances 是 crmdb1.
[oracle@jystdrac1 ~]$
srvctl add service -d crmdb -s crm62 -r "crmdb1" -a "crmdb2"
srvctl add service -d crmdb -s crm64 -r "crmdb2" -a "crmdb1"
srvctl start service -d crmdb -s "crm62,crm64"
注意: 1.不需要sqlplus下使用alter system 命令去修改service_names参数值,因为添加对应服务名且服务启动后,服务名就会自动增加对应值; 2.一般适用于跑批等特殊业务场景,用于防止不必要的gc产生反而影响效率。
3.停止服务并删除服务名
这一步属于是回退方案,不管因为什么原因,想去掉新增的服务名,只需停止并删除对应服务名,应用修改为之前的连接配置即可。
[oracle@jystdrac1 ~]$
srvctl stop service -d crmdb -s "crm62,crm64"
srvctl remove service -d crmdb -s crm62
srvctl remove service -d crmdb -s crm64
- 英伟达回应禁令:研究人员放心用不更新驱动就没影响
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(88)-Excel导入和导出-主从表结构导出
- WCF中的Binding模型之六(完结篇):从绑定元素认识系统预定义绑定
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(57)-插件---ueditor使用
- 何为正则表达式?要他有何用?
- 向silverlight传递自定义参数
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(87)-MVC Excel导入和导出
- sl从程序集中读取xaml文件
- WCF技术剖析之二十六:如何导出WCF服务的元数据(Metadata)[实现篇]
- WCF技术剖析之二十六:如何导出WCF服务的元数据(Metadata)[扩展篇]
- 如何解决打开VS2010后没有UI界面的问题
- RadRails1.0降临——增加Profiler、CallGraph Analyzer和Rails Shell等新特性
- Rails存储库从SVN转向Git
- 报告称10后已变成出境游“老司机”屌丝80后:我还没出过国
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- kubernetes(二)之Docker容器及镜像
- 反向传播算法:定义,概念,可视化
- Go语言(二十一) 常见的模块使用
- kubernetes(一)之Docker基础入门
- Go语言(二十)日志采集项目(二)Etcd的使用
- prometheus入门(一)
- Go语言(十九)日志采集项目之logagent开发(一)
- Go语言(十 八)context&日志项目
- 使用梯度上升欺骗神经网络,让网络进行错误的分类
- Go语言(十七) 配置文件库项目
- Python 相对路径问题:“No such file or directory“
- 基于etcd服务发现的overlay跨多宿主机容器网络
- Go语言(十六) 日志项目升级
- PyQt5 技术篇-设置窗口相对桌面位置,按屏幕比例
- Go语言(十五) 反射