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

oracle12c管理作业资源的一种方式

 数据库:12.1.0.2,rac,cdb模式

 

笔者负责移动两个12.1.0.2的cdb集群,一个在aix上,一个在linux上,不幸的是,它们都是混合型,数据有100多T。

由于其它部门交付的时候,已经是12c,之前对12c不是很熟悉,但还是想看看是否可以在不分库的前提下,最大化性能。

结果不行,因为有些偏向OLTP的应用会常常觉得慢。

 

怎么办?只好先通过SERVICE指定节点,每个服务至少两个节点,服务内部采用taf配置,一个主节点,一个备用节点。

例如为某个oltp创建的服务如下:

srvctl add service -db wgdb -service nsn_flowdb -preferred wgdb2 -available wgdb4 -tafpolicy preconnect -policy automatic  -failovertype session -failovermethod basic -failoverretry 180 -failoverdelay 2 -pdb nsn_flow

并且在节点2上,只分配给所有这些oltp类型应用,其它olap类型的在其它节点。

个人觉得,就这点上,oracle数据库远远优于各种rdbms和bigdata,光这个方面,就可以节约企业的不少资源和成本。

其它rdbms的资源管理有点复杂,远远不如oracle这么方便。

话说,oracle做得这么方便,就是为了向cloud靠拢。

 

之后一段时间,大部分时候,oltp应用都很快,但偶尔还是会发生慢的情况,例如某个上午或者下午的某个时间点。

怎么回事?然后分析了下作业的运行日志,发现作业本身并不按照创建的服务运行,而是在所有节点上,按照oracle数据库自己的均衡算法,分布在各个节点上运行。

又研究了下oracle的作业,发现可以通过调度类来控制服务,很高兴,不需要什么复杂的操作。

但问题又来了:

1.现有的作业采用的是默认调度类,默认调度类并不指定节点

2.后续各个开发人员如果在没有强制的情况下,还是会使用默认的调度类

 

于是决定修改其它pdb的默认调度类:

begin
  dbms_scheduler.set_attribute(name => 'DEFAULT_JOB_CLASS',attribute => 'comments',value => 'This is for all olap app');
  dbms_scheduler.set_attribute(name => 'DEFAULT_JOB_CLASS',attribute => 'service',value => 'wybigdata');  
end;

至于,在特定节点上跑OLap过程慢,没有关系,olap就是可以容忍这样的情况。

 

鉴于oracle的调度这么强大,后续决定强制各个厂商改用调度来执行他们的作业,而不是job,后者台糟糕,早应该抛入历史垃圾堆了。

除了通过service来控制资源分配,oracle还可以通过其它方式管理调度作业的资源分配,例如通过资源组。

 

所以,在搭建集群的初期,选择集群的配置方式是非常重要的。

 

转载于:https://www.cnblogs.com/lzfhope/p/8322130.html

相关文章:

  • uva 11121(-2进制)
  • IDEA编码编译不通过
  • ❲很有料❳系统负载能力浅析
  • mysql更新一个表中的某个字段值等于另一个表的某个字段值
  • a++与 ++a
  • ios 自定义cell cellForRowAtIndexPath中的写法
  • Angular学习(8)- 路由
  • PHP核心技术与最佳实践 读书笔记 第三章 正则表达式基础与应用
  • Ubantu 16.04升级内核版本和还原到升级之前的内核版本的方法
  • Android五种数据传递方法汇总
  • 10.1 使用w查看系统负载 10.2 vmstat命令 10.3 top命令 10.4 sar命令 10.5 nload命令
  • Python爬虫实战之爬取链家广州房价_02把小爬虫变大
  • 对时间的二分 奔跑的xiaodao double + 精度
  • shiro 静态页面资源不显示 解决方案(转)
  • hdu 1226
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • fetch 从初识到应用
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • MySQL用户中的%到底包不包括localhost?
  • Redash本地开发环境搭建
  • Vue2.x学习三:事件处理生命周期钩子
  • 看图轻松理解数据结构与算法系列(基于数组的栈)
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 学习ES6 变量的解构赋值
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (办公)springboot配置aop处理请求.
  • (二)Linux——Linux常用指令
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • .NET Core引入性能分析引导优化
  • .NET Windows:删除文件夹后立即判断,有可能依然存在
  • .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件
  • .net访问oracle数据库性能问题
  • .net连接MySQL的方法
  • [ C++ ] STL priority_queue(优先级队列)使用及其底层模拟实现,容器适配器,deque(双端队列)原理了解
  • [2021]Zookeeper getAcl命令未授权访问漏洞概述与解决
  • [AIGC] Kong:一个强大的 API 网关和服务平台
  • [Angularjs]ng-select和ng-options
  • [bzoj1006]: [HNOI2008]神奇的国度(最大势算法)
  • [C#]DataTable常用操作总结【转】
  • [C#基础知识系列]专题十七:深入理解动态类型
  • [HackMyVM]靶场 Quick3
  • [JS入门到进阶] 哎,被vite小坑了一波,大家记得配置build.cssTarget为‘chrome61‘
  • [LeetCode] Sort List
  • [Linux]知识整理(持续更新)
  • [MySQL]SQL优化之索引的使用规则
  • [Oracle][Metadata]如何查找与某一个功能相关的数据字典名
  • [Qt]设置窗口图标和EXE应用程序图标
  • [React源码解析] Fiber (二)
  • [svc]后台运行程序screen or nohup
  • [UE4]VR手柄按键参考
  • [Web]flask-excel实现excel文件下载的前后端实现