Oracle HA 之 SERVICE和DRM实战
第一部分:service实战
--oracle 11gR2中创建service的方法:db console和srvctl两种方法。
--db console创建service方法-略
--srvctl创建service方法
[oracle@node1 admin]$ srvctl add service -d dbking -s dbkt02 -r dbking1,dbking2
[oracle@node1 admin]$ srvctl start service -d dbking -s dbkt02
--查看数据库的所有service信息:
[oracle@node1 admin]$ srvctl config service -d dbking
Service name: dbkt01
Service is enabled
Server pool: dbking_dbkt01
Cardinality: 2
Disconnect: false
Service role: PRIMARY
Management policy: AUTOMATIC
DTP transaction: false
AQ HA notifications: false
Failover type: NONE
Failover method: NONE
TAF failover retries: 0
TAF failover delay: 0
Connection Load Balancing Goal: LONG
Runtime Load Balancing Goal: NONE
TAF policy specification: NONE
Edition:
Preferred instances: dbking1,dbking2
Available instances:
Service name: dbkt02
Service is enabled
Server pool: dbking_dbkt02
Cardinality: 2
Disconnect: false
Service role: PRIMARY
Management policy: AUTOMATIC
DTP transaction: false
AQ HA notifications: false
Failover type: NONE
Failover method: NONE
TAF failover retries: 0
TAF failover delay: 0
Connection Load Balancing Goal: LONG
Runtime Load Balancing Goal: NONE
TAF policy specification: NONE
Edition:
Preferred instances: dbking1,dbking2
Available instances:
[oracle@node1 admin]$
[oracle@node1 admin]$ srvctl config service -d dbking -s dbt01
--启动start、关闭stop、修改modify service
启动服务:[oracle@node1 admin]$ srvctl start service -d dbking -s dbkt02
关闭服务:[oracle@node1 admin]$ srvctl stop service -d dbking -s dbkt02
[oracle@node1 admin]$ srvctl stop service -d dbking -s dbkt02 -n node1
[oracle@node1 admin]$ srvctl stop service -d dbking -s dbkt02 -i dbking2
修改服务属性:[oracle@node1 admin]$ srvctl modify service -d dbking -s dbkt02 -i dbking1 -n
relocate操作:dba手动将service从可用实例调回首选实例。
srvctl relocate service -d dbname -s srvname [-c fromnode -n tonode | -i frominstance -t toinstance] [-f]
##########################################################################################################################################
第二部分:DRM实战
--准备工作
[oracle@node1 ~]$ srvctl add service -d dbking -s dbkapp -r dbking1,dbking2
[oracle@node1 ~]$ srvctl add service -d dbking -s dbkboss -r dbking1,dbking2
[oracle@node1 ~]$ srvctl start service -d dbking -s dbkboss
[oracle@node1 ~]$ srvctl start service -d dbking -s dbkapp
SQL> show parameter resource_limit
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
resource_limit boolean FALSE
SQL> show parameter resource_manager_plan
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
resource_manager_plan string
--命令行方式实现DRM,图形界面方式-略
1)创建一个工作区
SQL> exec dbms_resource_manager.create_pending_area();
PL/SQL 过程已成功完成。
2)创建2个使用者组
SQL> exec dbms_resource_manager.create_consumer_group(consumer_group=>'app_group',comment=>'普通使用者');
PL/SQL 过程已成功完成。
SQL> exec dbms_resource_manager.create_consumer_group(consumer_group=>'boss_group',comment=>'boss团');
PL/SQL 过程已成功完成。
3)创建消费计划
SQL> exec dbms_resource_manager.create_plan(plan=>'srv_drm_test01',comment=>'访问资源计划');
PL/SQL 过程已成功完成。
4)创建计划细节
SQL> exec dbms_resource_manager.create_plan_directive(plan=>'srv_drm_test01',group_or_subplan=>'boss_group',mgmt_p1=>50,comment=>'1');
PL/SQL 过程已成功完成。
SQL> exec dbms_resource_manager.create_plan_directive(plan=>'srv_drm_test01',group_or_subplan=>'app_group',mgmt_p1=>20,comment=>'2');
PL/SQL 过程已成功完成。
SQL> exec dbms_resource_manager.create_plan_directive(plan=>'srv_drm_test01',group_or_subplan=>'other_groups',mgmt_p1=>5,comment=>'3');
PL/SQL 过程已成功完成。
5)创建服务和使用者之间的映射关系
SQL> exec dbms_resource_manager.set_consumer_group_mapping(attribute=>dbms_resource_manager.service_name,value=>'dbkapp',consumer_group=>'app_group');
PL/SQL 过程已成功完成。
SQL> exec dbms_resource_manager.set_consumer_group_mapping(attribute=>dbms_resource_manager.service_name,value=>'dbkboss',consumer_group=>'boss_group');
PL/SQL 过程已成功完成。
6)校验工作区
SQL> exec dbms_resource_manager.validate_pending_area();
PL/SQL 过程已成功完成。
SQL> exec dbms_resource_manager.submit_pending_area();
PL/SQL 过程已成功完成。
7)给某个用户赋予能切换到消费组的权限:
SQL> exec dbms_resource_manager_privs.grant_switch_consumer_group('SCOTT','app_group',false);
PL/SQL 过程已成功完成。
SQL> exec dbms_resource_manager_privs.grant_switch_consumer_group('SCOTT','boss_group',false);
PL/SQL 过程已成功完成。
**授予所有用户可以使用public
8)启动消费计划
SQL> alter system set resource_manager_plan='srv_drm_test01' scope=both sid='*';
系统已更改。
9)启动资源限制
SQL> alter system set resource_limit=true scope=both sid='*';
系统已更改。
******包装一下以上的代码既可以写成脚本*******
--验证生效与否:客户端分别以scott身份登录,通过以下脚本验证。
SQL> select inst_id,username,resource_consumer_group,service_name from gv$session where username='SCOTT';
INST_ID USERNAME RESOURCE_CONSUMER_GROUP SERVICE_NAME
---------- --------------- -------------------------------- ---------------
1 SCOTT BOSS_GROUP dbkboss
1 SCOTT APP_GROUP dbkapp
10)检查参数是否生效
SQL> show parameter resource_manager_plan
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
resource_manager_plan string test
SQL> show parameter resource_limit
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
resource_limit boolean TRUE
--测试DRM是否生效
1)编写测试脚本:cpu密集型脚本
>PL/SQL脚本如下:
begin
declare
m number;
begin
for i in 1 .. 1000000 loop
for j in 1 .. 1000000 loop
m := sqrt(4567);
end loop;
end loop;
end;
/
>shell脚本如下:
#!/bin/bash
source /home/oracle/.bash_profile
step=1
while [ $step -lt 6 ]
do
nohup sqlplus scott/oracle @test.sql &
let "step+=1"
echo $step
done
2)检查生效的资源计划是否在管理cpu:
SQL> select name,cpu_managed from v$rsrc_plan where is_top_plan='TRUE';
NAME CPU
-------------------------------- ---
TEST ON
3)检查资源计划是如何定义的:
SQL> select group_or_subplan,max_utilization_limit,mgmt_p1 from dba_rsrc_plan_directives where plan=(select name from v$rsrc_plan where is_top_plan='TRUE');
GROUP_OR_SUBPLAN MAX_UTILIZATION_LIMIT MGMT_P1
------------------------------ --------------------- ----------
BOSS_GROUP 50
APP_GROUP 20
OTHER_GROUPS 5
4)登录两个实例分别查询执行结果:
select to_char(m.begin_time, 'hh:mi') time,
m.consumer_group_name,
trunc(m.cpu_consumed_time / 60000, 2) avg_runing_sessions,
trunc(m.cpu_wait_time / 60000, 2) avg_wait_sessions,
d.mgmt_p1 * (select value from v$parameter where name = 'cpu_count') / 100 allocation
from v$rsrcmgrmetric_history m, dba_rsrc_plan_directives d, v$rsrc_plan p
where m.consumer_group_name = d.group_or_subplan
and p.NAME = d.plan
order by m.begin_time, m.consumer_group_name;
转载于:https://www.cnblogs.com/wcwen1990/p/6661655.html
Oracle HA 之 SERVICE和DRM实战相关推荐
- Oracle HA篇+DG/ADG 基础知识
说明:本文为面向Oracle (Active) Data Guard初学者的指导手册 标签:Oracle DG.Data Guard.Oracle ADG.Active Data Guard.ADG体 ...
- 获取oracle数据库war报告,Oracle 数据库开发及SQL基础实战
Oracle 数据库开发及SQL基础实战 一.数据库基础 主键(Primary Key): 1.某一列或某些列的组合,构成一个主键,在这张二维表里,主键必须不重复.用于在这些行之间进行唯一的区别. 2 ...
- [ohasd(61322)]CRS-0715:Oracle High Availability Service has timed out waiting for init.ohasd to be..
在给中标麒麟linux 7.4搭建11g的rac时,遇到的bug是真多......其中最后才解决掉的是:机器重启后,集群不能自动起来的问题. 一开始安装grid软件时,最后执行root.sh脚本就报错 ...
- Oracle从入门到精通(视频实战版)
Oracle从入门到精通(视频实战版) 内容简介 oracle 11g是甲骨文公司精心打造的最新版本的oracle数据库,该版本数据库凝聚了oracle三十多年的精华.本书不仅是一本oracle 11 ...
- Oracle HA 之 Server Pool 实战
--创建server pool的两种方式: 图形界面:console和dbca 演示-略 命令行工具:srvctl和crsctl --srvctl和crsctl创建serv ...
- gaussdb数据库 oracle,华为高斯GaussDB T数据库实战培训(7小时速成版)
为满足各位学员对新技术的学习需求,让大家快速入门学习高斯GaussDB国产数据库,风哥推出了华为GaussDB T数据库实战培训教程(速成版),主要包括内容:GaussDB T数据库基础知识.Gaus ...
- Oracle HA 之 oracle 11.2 rac库配置active dataguard
目录 configing active dataguard for 11.2 rac. 1 一.建组.建用户.配置环境变量.内核参数等... 1 二.配置共享磁盘... 3 1)创建4块共享磁盘并fd ...
- oracle先的lvm分配,LVM实战案例之LVM空间缩减(本次对PV,VG,LV等进行空间缩减)
祥哥之前总结过,对LVM扩容和缩减的顺序.这次在提醒一下 LVM添加顺序:PV---->VG---->LV LVM删除顺序:LV----->VG---->PV 逻辑卷可在线扩展 ...
- RHCS Oracle HA for OEL5.8 KVM实践配置
1.通过Openfiler实现iscsi共享存储 2.采用OEL6.3KVM虚拟平台下安装两个OEL5.8x64KVM虚拟机实现两RHCS5集群节点 3.通过KVM虚拟fence实现fence功能,虽 ...
最新文章
- java配置中心开源项目_配置中心搭建(spring-cloud-config-server)
- mysql asyn 示例
- git pull 报错:权限不够 Permission denied (publickey)
- golang中string不能为nil
- matlab运行就是编译么,matlab编译运行c文件
- 【BJOI 2019】奥术神杖
- leetcode1386. 安排电影院座位(贪心)
- 耳机不分主从是什么意思_开学必备高性价蓝牙耳机,学生党时尚配件推荐
- 笨办法学 Python · 续 练习 40:SQL 读取
- Fluentd日志处理-tail拉取(三)
- 九、多线程(高琪java300集+java从入门到精通笔记)
- Word2013关于图表目录
- 【高数】高数第五章节——定积分积分上限函数牛顿——莱布尼兹公式反常积分与广义积分
- 为人处世之道,与君共勉!
- 快速入门github网站,了解GitHub网站的基本使用
- 期货交易在使用基本面分析操作过程中要注意哪些问题?怎么控制风险?
- 西北大学2019年春季校赛题解(G-L)
- 详细解析python正则表达式re模块
- Diffusion Model原理详解及源码解析
- ​目标检测算法——YOLOv5/YOLOv7改进之结合​SOCA(单幅图像超分辨率)
热门文章
- AcWing 1922. 懒惰的牛(前缀和 or 双指针)
- 2021年SWPUACM暑假集训day5单调栈算法
- HTML使川锚标签,第1章HTML的基本标签祥解.ppt
- Caffe、TensorFlow、MXnet三个开源库对比+主流分类模型对比
- Agilent RF fundamentals (2)- fundamental units of RF
- shiro框架 4种授权方式 说明
- java ByteBuffer flip()和limit()的理解
- IT也要健康:帮助你保持健康的几个重要因素
- DataRowView 笔记
- 运行python manage.py runserver报错现象、原因和解决办法