第一部分: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;

Oracle HA 之 SERVICE和DRM实战的更多相关文章

  1. Oracle HA 之 RAC one node实战

    --创建rac one node步骤 安装grid软件,配置grid集群:安装oracle软件:dbca创建rac one node. >试验创建的rac one node数据库信息如下: gl ...

  2. oracle HA 高可用性具体解释(之中的一个)

    oracle HA 高可用性具体解释(之二,深入解析TAF,以及HA框架) :http://blog.csdn.net/panfelix/article/details/38436197 一.HA F ...

  3. oracle HA 高可用性具体解释(之二,深入解析TAF,以及HA框架)

    oracle HA 高可用性具体解释(之中的一个,client.server端服务具体解释):http://write.blog.csdn.net/postedit 我们已经看到TAF是的Oracle ...

  4. OCP培训 Oracle 12c/18c/19c OCP认证实战培训【送OCP优惠名额】

    一.OCP培训 Oracle 12c/18c/19c OCP认证全套实战培训[送OCP优惠名额],本课程内容 课程目标: 为满足想参加Oracle OCP考证的学员,风哥设计的一套比较全面OCP实战培 ...

  5. Oracle HA 之 Server Pool 实战

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

  6. Oracle 10g RAC中的DRM问题及关闭

    在RAC环境中,Oracle使用GRD(Global Resource Service)来记录各个RAC节点的资源信息,具体通过GCS(Global Cache Service)和GES(Global ...

  7. java连接oracle数据库使用SERVICE NAME、SID以及TNSName不同写法

    格式一: 使用ServiceName方式: jdbc:oracle:thin:@//<host>:<port>/<service_name> 例 jdbc:orac ...

  8. Oracle HA 之 基于活动数据库复制配置oracle 11.2 dataguard

    规划:主库:db_name=dbking               db_unique_name=dbkingpri               备库:db_name=dbking          ...

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

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

随机推荐

  1. taskAffinity属性

    Activity的归属,也就是Activity应该在哪个Task中,Activity与Task的吸附关系.我们知道,一般情况下在同一个应用中,启动的Activity都在同一个Task中,它们在该Tas ...

  2. php获取QQ头像并显示的方法

    鉴于此,我在想一个大众化的,比较简单的方法,我想到的是对于没有头像的朋友调用其QQ头像, 因为QQ现在至少是人手一个,所以只需要留言时填写QQ号,然后调用其头像,这样一来就方便多了. 首先是获取QQ的 ...

  3. mui.back()返回刷新功能

    使用场景:操作某个步骤需要获取用户信息,如果用户未登陆,则跳转登录页面,登陆成功之后使用mui.back()返回父页面,父页面必须刷新. 子页面:登陆页 父页面:跳转登录页的页面 1. 在子页面初始化 ...

  4. Oracle 11g 的bug?: aix 上,expdp 11.2.0.1 导出,impdp 11.2.0.3 导入,Interval 分区的 【Interval】 分区属性成了【N】

    如题: Oracle 11g 的bug?: aix 上,expdp 11.2.0.1 导出,impdp 11.2.0.3 导入,Interval 分区的 [Interval] 分区属性成了[N] 谨记 ...

  5. 理解ASP.NET MVC中的ActionResult

    通常我们在一个ASP.NET MVC项目中创建一个Controller的时候,Index()方法默认的返回类型都是ActionResult,通过查看UML图,ActionResult实际上是一个抽象类 ...

  6. php-fpm打开错误日志的配置

    nginx与apache不一样,在apache中可以直接指定php的错误日志,那样在php执行中的错误信息就直接输入到php的错误日志中,可以方便查询. 在nginx中事情就变成了这样:nginx只对 ...

  7. RF-template使用

    在测试案例中,可以使用template设置进行数据驱动的测试,template设置方法: 在设置项中填写模板的关键字名称,测试案例本身只能包含template关键字使用的数据: *** Setting ...

  8. with revoked permission android.permission.CAMERA

    1,刚出现这样的问题我是直接把 CAMERA 移除掉 2.第一步判断时候授权. if (Build.VERSION.SDK_INT >= 23) { int checkCallPhonePerm ...

  9. Axis2开发实例

    1.下载①axis2-1.7.4-bin.zip.②axis2-1.7.4-war.zip.③axis2-eclipse-service-plugin-1.7.4.zip.④axis2-eclipse ...

  10. 让你变成ASP木马高手

    .名称:如何制作图片ASP木马 (可显示图片) 建一个asp文件,内容为<!--#i nclude file="ating.jpg"--> 找一个正常图片ating.j ...