Bo's Oracle Station

查看: 2813|回复: 0

课程第27次(2018-08-16星期四)

[复制链接]

1005

主题

1469

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
12012
发表于 2018-8-16 19:25:20 | 显示全部楼层 |阅读模式
默认的Filewatcher作业其实是一个queue:
1.png


当我们创建自己的Filewatcher时,其实就是上面这个Filewatcher的一个实例。

间隔性地进行Filewatcher:
2.png

  1. BEGIN
  2. sys.dbms_scheduler.set_attribute( name => '"SYS"."FILE_WATCHER_SCHEDULE"', attribute => 'repeat_interval', value => 'FREQ=MINUTELY;INTERVAL=2');
  3. END;
复制代码

在64为Linux上,首先要做:
[root@station90 lib64]# ls -l libpam.so*
lrwxrwxrwx  1 root root    16  8月  4 15:48 libpam.so -> libpam.so.0.82.2
lrwxrwxrwx. 1 root root    16  7月 17 04:41 libpam.so.0 -> libpam.so.0.82.2
-rwxr-xr-x. 1 root root 55280  7月 10 2017 libpam.so.0.82.2
-----------------------------------------------------------------------------------------

  1. begin
  2.    dbms_scheduler.create_file_watcher(
  3.        file_watcher_name => 'filewatcher1',
  4.        directory_path => '/home/oracle/myfile',
  5.        file_name => 'botang*.txt',
  6.        credential_name => 'credential1');
  7. end;
复制代码
  1. select  j.state, j.next_run_date
  2. from  dba_scheduler_jobs  j where j.job_name='FILE_WATCHER';
复制代码
   STATENEXT_RUN_DATE
1SCHEDULED16-AUG-18 08.00.24.578708 PM PRC


  1. select  * from dba_scheduler_file_watchers;
复制代码
   OWNERFILE_WATCHER_NAMEENABLEDDESTINATION_OWNERDESTINATIONDIRECTORY_PATHFILE_NAMECREDENTIAL_OWNERCREDENTIAL_NAMEMIN_FILE_SIZESTEADY_STATE_DURATIONLAST_MODIFIED_TIMECOMMENTS
1SYSFILEWATCHER1TRUE /home/oracle/myfilebotang*.txtSYSCREDENTIAL10 16-AUG-18 07.50.24.582733 PM +08:00

  1. grant execute on filewatcher1 to hr;
  2. grant execute on SYS.SCHEDULER_FILEWATCHER_RESULT to hr;

  3. create table hr.tfilewatcher1 ( a  varchar2(200)  ) ;

  4. create or replace procedure hr.procfilewatcher ( p_1   SYS.SCHEDULER_FILEWATCHER_RESULT)
  5. is
  6. begin
  7.   insert into hr.tfilewatcher1  values ( to_char( p_1.file_timestamp,'YYYY-MM-DD:HH24:MI:SS') ||'      '
  8.                                                       ||p_1.directory_path||'        '
  9.                                                       ||p_1.actual_file_name||'       '
  10.                                                       ||p_1.file_size  ) ;
  11.   commit;
  12. end;

  13. begin
  14.     dbms_scheduler.create_program(
  15.      program_name => 'HR.program10',
  16.      program_type => 'STORED_PROCEDURE',
  17.      program_action => 'HR.procfilewatcher',
  18.      number_of_arguments => 1,
  19.      enabled => false);
  20. end;

  21. begin
  22.    dbms_scheduler.define_metadata_argument(
  23.    program_name => 'HR.program10',
  24.    metadata_attribute => 'event_message',argument_position => 1 ) ;
  25. end;

  26. begin
  27.   dbms_scheduler.enable('HR.program10');
  28. end;

  29. BEGIN
  30.   DBMS_SCHEDULER.CREATE_JOB(
  31.    jOB_NAME=> 'hr.job10',
  32.    PROGRAM_NAME=> 'hr.program10',
  33.    EVENT_CONDITION => 'tab.user_data.file_size > 10',
  34.    QUEUE_SPEC=> 'filewatcher1',
  35.    AUTO_DROP=> FALSE,
  36.    ENABLED=> true);
  37. END;

  38. begin
  39.    dbms_scheduler.set_attribute('hr.job10','parallel_instances',true);
  40. end;


  41. select  * from  hr.tfilewatcher1;


复制代码
  1. BEGIN
  2. dbms_resource_manager.clear_pending_area();
  3. dbms_resource_manager.create_pending_area();
  4. dbms_resource_manager.create_plan( plan => 'PLAN2',
  5.                                                                comment => 'PLAN2',
  6.                                                                cpu_mth => 'RATIO' );
  7. dbms_resource_manager.create_plan_directive(
  8.     plan => 'PLAN2',
  9.     group_or_subplan => 'SYS_GROUP',
  10.     comment => 'SYS_GROUP',
  11.     mgmt_p1 => 50   
  12. );
  13. dbms_resource_manager.create_plan_directive(
  14.     plan => 'PLAN2',
  15.     group_or_subplan => 'GROUP1',
  16.     comment => 'GROUP1',
  17.     mgmt_p1 => 30   
  18. );
  19. dbms_resource_manager.create_plan_directive(
  20.     plan => 'PLAN2',
  21.     group_or_subplan => 'GROUP2',
  22.     comment => 'GROUP2',
  23.     mgmt_p1 => 15   
  24. );
  25. dbms_resource_manager.create_plan_directive(
  26.     plan => 'PLAN2',
  27.     group_or_subplan => 'OTHER_GROUPS',
  28.     comment => 'OTHER_GROUPS',
  29.     mgmt_p1 => 5   
  30. );
  31. dbms_resource_manager.submit_pending_area();
  32. end;

  33. select  p.plan, p.cpu_method,p.active_sess_pool_mth,
  34.     p.parallel_degree_limit_mth , p.queueing_mth
  35. from dba_rsrc_plans  p
  36.   where p.plan like 'PLAN%';
复制代码
   PLANCPU_METHODACTIVE_SESS_POOL_MTHPARALLEL_DEGREE_LIMIT_MTHQUEUEING_MTH
1PLAN2RATIOACTIVE_SESS_POOL_ABSOLUTEPARALLEL_DEGREE_LIMIT_ABSOLUTEFIFO_TIMEOUT
2PLAN1EMPHASISACTIVE_SESS_POOL_ABSOLUTEPARALLEL_DEGREE_LIMIT_ABSOLUTEFIFO_TIMEOUT


子计划出现在哪里:
3.png

4.png

  1. begin
  2.   dbms_resource_manager.create_simple_plan(simple_plan => 'PLAN3',
  3.   consumer_group1 => 'group1',
  4.   group1_cpu => 80,
  5.   consumer_group2 => 'group2',
  6.   group2_cpu => 20);
  7. end;
复制代码
  1. select  p.plan, p.cpu_method,p.active_sess_pool_mth,
  2.     p.parallel_degree_limit_mth , p.queueing_mth
  3. from dba_rsrc_plans  p
  4.   where p.plan like 'PLAN%';
复制代码
   PLANCPU_METHODACTIVE_SESS_POOL_MTHPARALLEL_DEGREE_LIMIT_MTHQUEUEING_MTH
1PLAN1EMPHASISACTIVE_SESS_POOL_ABSOLUTEPARALLEL_DEGREE_LIMIT_ABSOLUTEFIFO_TIMEOUT
2PLAN3EMPHASISACTIVE_SESS_POOL_ABSOLUTEPARALLEL_DEGREE_LIMIT_ABSOLUTEFIFO_TIMEOUT
3PLAN2RATIOACTIVE_SESS_POOL_ABSOLUTEPARALLEL_DEGREE_LIMIT_ABSOLUTEFIFO_TIMEOUT

  1. select  pd.mgmt_p1,
  2.             pd.mgmt_p2,
  3.             pd.mgmt_p3
  4.   from dba_rsrc_plan_directives pd
  5. where pd.plan='PLAN3';
  6.   
复制代码
   MGMT_P1MGMT_P2MGMT_P3
10800
210000
300100
40200

RATIO没有第二级:
1.png

2.png

测一下cpu:
4.png


3.png

---------------------------------------------------------------------------------------
并行度:
5.png

  1. select    pd.group_or_subplan  ,pd.parallel_degree_limit_p1
  2.   from dba_rsrc_plan_directives pd
  3. where pd.plan='PLAN2';
复制代码
   GROUP_OR_SUBPLANPARALLEL_DEGREE_LIMIT_P1
1SYS_GROUP
2GROUP11
3GROUP2
4OTHER_GROUPS

-----------------------------活跃会话
1.png


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Bo's Oracle Station   

GMT+8, 2024-11-22 11:37 , Processed in 0.040507 second(s), 27 queries .

快速回复 返回顶部 返回列表