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还可以通过其它方式管理调度作业的资源分配,例如通过资源组。
所以,在搭建集群的初期,选择集群的配置方式是非常重要的。
oracle12c管理作业资源的一种方式的更多相关文章
- 访问WEB-INF下JSP资源的几种方式(转)
访问WEB-INF下JSP资源的几种方式 方法一: 本来WEB-INF中的jsp就是无法通过地址栏访问的,所以安全. 如果说你要访问这个文件夹中的jsp文件需要在项目的web.xml文件中去配置ser ...
- k8s 创建资源的两种方式 - 每天5分钟玩转 Docker 容器技术(124)
命令 vs 配置文件 Kubernetes 支持两种方式创建资源: 1. 用 kubectl 命令直接创建,比如: kubectl run nginx-deployment --image=nginx ...
- k8s创建资源的两种方式
命令 vs 配置文件 Kubernetes 支持两种方式创建资源: 1. 用 kubectl 命令直接创建 kubectl run nginx-deployment --image=nginx: -- ...
- k8s 创建资源的两种方式【转】
命令 vs 配置文件 Kubernetes 支持两种方式创建资源: 1. 用 kubectl 命令直接创建,比如: kubectl run nginx-deployment --image=nginx ...
- k8s创建资源的两种方式(5)
一.创建方式分类: 命令 vs 配置文件 Kubernetes 支持两种方式创建资源: 1.用 kubectl 命令直接创建,比如: kubectl run httpd-app --image=reg ...
- kubernetes创建资源的两种方式
一.创建方式分类: 命令 vs 配置文件 Kubernetes 支持两种方式创建资源: 1.用 kubectl 命令行的方式直接创建,比如: kubectl run httpd-app --image ...
- 第5篇K8S创建资源的两种方式
一.创建方式分类: 命令 vs 配置文件 Kubernetes 支持两种方式创建资源: 1.用 kubectl 命令直接创建,比如: kubectl run httpd-app --image=r ...
- K8S(02)管理核心资源的三种基本方法
系列文章说明 本系列文章,可以基本算是 老男孩2019年王硕的K8S周末班课程 笔记,根据视频来看本笔记最好,否则有些地方会看不明白 需要视频可以联系我 管理k8s核心资源的三种基本方法: 目录 系列 ...
- k8s创建资源的两种方式及DaemonSet应用(5)
一.创建方式分类 Kubernetes 支持两种方式创建资源: (1)用 kubectl 命令直接创建,比如: kubectl run httpd-app --image=reg.yunwei.com ...
随机推荐
- envi利用矢量数据对影像做多边形裁剪 (转)
2011-05-25 17:31:10| 分类: ENVI|举报|字号 订阅 来自:http://zhangling357522.blog.163.com/blog/static/184687296 ...
- 3D开源推荐:全球卫星地图 Esri-Satellite-Map
演示网址:http://richiecarmichael.github.io/sat/index.html 开源网址:https://github.com/richiecarmichael/Esri- ...
- SQL Server ->> 生成时间类型的Partition Function和Partition Scheme代码
有时工作中要建个分区函数,可是像日期这种分区函数要是搞个几百个的值那不是要搞死我.于是写了点代码自动生成一个从1990年开始的按月的分区函数和对应的分区主题 USE [TestDB] GO DECLA ...
- 关于Java中截取字符串
获取系统时间:to_char(sysdate,'yyyy-mm-dd')截取CREATETIME常量的前10位字符串:CREATETIME.substring(0,10)截取DESCRIPT常量的前2 ...
- bootstrap table通过ajax获取后台数据展示在table
1. 背景 bootstrap table 默认向后台发送语法的dataType为 json,但是为了解决跨域问题我们需要将dataType改为jsonp,这时就需要修改bootstrap table ...
- 函子(Monad)新解:函子定义了一个类型(泛型)和建立在这个类型上的一组运算符
这组运算符和代数中的运算加减乘除运算符一样,符合一定的定律:结合律.(交换律)等: 函数式编程的核心(底层支持)就是这些类型和运算符的定义. 函子就是定义这些类型和运算符的(). 运算符通常为单目运算 ...
- 【洛谷1494】[国家集训队] 小Z的袜子(莫队)
点此看题面 大致题意: 有\(N\)只从\(1\sim N\)编号的袜子,告诉你每只袜子的颜色,\(M\)组询问,每组询问给你一个区间\([L\sim R]\),让你求出小Z随机抽出\(2\)只袜子时 ...
- 2017.9.5 Java知识点总结
1.*程序的数据操作往往都在内存中操作的,也就是说数据运算都在内存中完成. 2.*什么是变量? --变量就是内存中的一块用来存放数据的存储单元. --变量中的值可变 --我们通过变量名就可以找到内存中 ...
- 使用intellij idea创建JSP和引入Tomecat包
首先我们需要按照好intellij idea 如果没有安装好,这里有下载按照教程:https://www.cnblogs.com/weibanggang/p/9395702.html 首先我们创建一个 ...
- 【luogu P2341 [HAOI2006]受欢迎的牛】 题解
题解报告:https://www.luogu.org/problemnew/show/P2341 我们把图中的强连通分量缩点,然后只有出度为0的牛是受欢迎的,这样如果出度为0的牛只有一个,说明受所有牛 ...