首页 技术 正文
技术 2022年11月23日
0 收藏 922 点赞 3,144 浏览 6522 个字

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

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,454
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,868
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,704
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,464
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,103
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,261