第一部分: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实战相关推荐

  1. Oracle HA篇+DG/ADG 基础知识

    说明:本文为面向Oracle (Active) Data Guard初学者的指导手册 标签:Oracle DG.Data Guard.Oracle ADG.Active Data Guard.ADG体 ...

  2. 获取oracle数据库war报告,Oracle 数据库开发及SQL基础实战

    Oracle 数据库开发及SQL基础实战 一.数据库基础 主键(Primary Key): 1.某一列或某些列的组合,构成一个主键,在这张二维表里,主键必须不重复.用于在这些行之间进行唯一的区别. 2 ...

  3. [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脚本就报错 ...

  4. Oracle从入门到精通(视频实战版)

    Oracle从入门到精通(视频实战版) 内容简介 oracle 11g是甲骨文公司精心打造的最新版本的oracle数据库,该版本数据库凝聚了oracle三十多年的精华.本书不仅是一本oracle 11 ...

  5. Oracle HA 之 Server Pool 实战

    --创建server pool的两种方式:     图形界面:console和dbca       演示-略     命令行工具:srvctl和crsctl --srvctl和crsctl创建serv ...

  6. gaussdb数据库 oracle,华为高斯GaussDB T数据库实战培训(7小时速成版)

    为满足各位学员对新技术的学习需求,让大家快速入门学习高斯GaussDB国产数据库,风哥推出了华为GaussDB T数据库实战培训教程(速成版),主要包括内容:GaussDB T数据库基础知识.Gaus ...

  7. Oracle HA 之 oracle 11.2 rac库配置active dataguard

    目录 configing active dataguard for 11.2 rac. 1 一.建组.建用户.配置环境变量.内核参数等... 1 二.配置共享磁盘... 3 1)创建4块共享磁盘并fd ...

  8. oracle先的lvm分配,LVM实战案例之LVM空间缩减(本次对PV,VG,LV等进行空间缩减)

    祥哥之前总结过,对LVM扩容和缩减的顺序.这次在提醒一下 LVM添加顺序:PV---->VG---->LV LVM删除顺序:LV----->VG---->PV 逻辑卷可在线扩展 ...

  9. RHCS Oracle HA for OEL5.8 KVM实践配置

    1.通过Openfiler实现iscsi共享存储 2.采用OEL6.3KVM虚拟平台下安装两个OEL5.8x64KVM虚拟机实现两RHCS5集群节点 3.通过KVM虚拟fence实现fence功能,虽 ...

最新文章

  1. java配置中心开源项目_配置中心搭建(spring-cloud-config-server)
  2. mysql asyn 示例
  3. git pull 报错:权限不够 Permission denied (publickey)
  4. golang中string不能为nil
  5. matlab运行就是编译么,matlab编译运行c文件
  6. 【BJOI 2019】奥术神杖
  7. leetcode1386. 安排电影院座位(贪心)
  8. 耳机不分主从是什么意思_开学必备高性价蓝牙耳机,学生党时尚配件推荐
  9. 笨办法学 Python · 续 练习 40:SQL 读取
  10. Fluentd日志处理-tail拉取(三)
  11. 九、多线程(高琪java300集+java从入门到精通笔记)
  12. Word2013关于图表目录
  13. 【高数】高数第五章节——定积分积分上限函数牛顿——莱布尼兹公式反常积分与广义积分
  14. 为人处世之道,与君共勉!
  15. 快速入门github网站,了解GitHub网站的基本使用
  16. 期货交易在使用基本面分析操作过程中要注意哪些问题?怎么控制风险?
  17. 西北大学2019年春季校赛题解(G-L)
  18. 详细解析python正则表达式re模块
  19. Diffusion Model原理详解及源码解析
  20. ​目标检测算法——YOLOv5/YOLOv7改进之结合​SOCA(单幅图像超分辨率)

热门文章

  1. AcWing 1922. 懒惰的牛(前缀和 or 双指针)
  2. 2021年SWPUACM暑假集训day5单调栈算法
  3. HTML使川锚标签,第1章HTML的基本标签祥解.ppt
  4. Caffe、TensorFlow、MXnet三个开源库对比+主流分类模型对比
  5. Agilent RF fundamentals (2)- fundamental units of RF
  6. shiro框架 4种授权方式 说明
  7. java ByteBuffer flip()和limit()的理解
  8. IT也要健康:帮助你保持健康的几个重要因素
  9. DataRowView 笔记
  10. 运行python manage.py runserver报错现象、原因和解决办法