Bo's Oracle Station

查看: 2282|回复: 0

第32次活动:2017-11-13(星期一晚上7:00-9:30)

[复制链接]

1005

主题

1469

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
12012
发表于 2017-11-13 19:25:04 | 显示全部楼层 |阅读模式
64位Linux要做Filewatcher一定要:
  1. [root@station90 lib64]# ls -l libpam.so*
  2. lrwxrwxrwx. 1 root root    16 10月  6 00:23 libpam.so.0 -> libpam.so.0.82.2
  3. -rwxr-xr-x. 1 root root 55280  7月 10 18:59 libpam.so.0.82.2
  4. [root@station90 lib64]# ln -s libpam.so.0.82.2 libpam.so
  5. [root@station90 lib64]# pwd
  6. /lib64
  7. [root@station90 lib64]#
复制代码
关于总file_watcher_job和原来就有的file_watcher_scheduler(而且都是关闭或disabled):
Screenshot.png

--------
Screenshot-1.png

SYS:
  1. select  * from dba_scheduler_credentials;

  2. select  * from dba_scheduler_file_watchers;

  3. begin
  4.    dbms_scheduler.create_file_watcher(
  5.        file_watcher_name => 'filewatcher1',
  6.        directory_path => '/home/oracle/myfile',
  7.        file_name => 'botang*.txt',
  8.        credential_name => 'cred1');
  9. end;

  10. grant execute on filewatcher1 to hr;
  11. grant execute on SYS.SCHEDULER_FILEWATCHER_RESULT to hr;
  12. grant create external job to hr;
  13. grant create job to hr;


复制代码
HR:
  1. create table hr.tfilewatcher1 ( a  varchar2(200)  ) ;  


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

  11. ----

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

  20. ----
  21. begin
  22.    dbms_scheduler.define_metadata_argument(
  23.    program_name => 'HR.program10',
  24.    metadata_attribute => 'event_message',argument_position => 1 ) ;
  25. end;
  26. -----
  27. begin
  28.   dbms_scheduler.enable('HR.program10');
  29. end;
  30. ----

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

  40. begin
  41.    dbms_scheduler.set_attribute('hr.job10','parallel_instances',true);
  42. end;
  43. select  * from hr.tfilewatcher1;
复制代码
Screenshot-2.png

Remote Scheduler:
  1. [oracle@station90 ~]$ sqlplus /nolog

  2. SQL*Plus: Release 11.2.0.1.0 Production on Mon Nov 13 20:09:24 2017

  3. Copyright (c) 1982, 2009, Oracle.  All rights reserved.

  4. SQL> conn / as sysdba
  5. Connected.
  6. SQL> show parameter dispa

  7. NAME                                     TYPE         VALUE
  8. ------------------------------------ ----------- ------------------------------
  9. dispatchers                             string         (PROTOCOL=TCP) (SERVICE=orclXD
  10.                                                  B)
  11. max_dispatchers                      integer
  12. SQL> alter system set dispatchers=
  13.   2  ' (PROTOCOL=TCP) (dispatchers=3)';

  14. System altered.

  15. SQL> show parameter dispa

  16. NAME                                     TYPE         VALUE
  17. ------------------------------------ ----------- ------------------------------
  18. dispatchers                             string          (PROTOCOL=TCP) (dispatchers=3
  19.                                                  )
  20. max_dispatchers                      integer
  21. SQL> !lsnrctl services

  22. LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 13-NOV-2017 20:09:58

  23. Copyright (c) 1991, 2009, Oracle.  All rights reserved.

  24. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=station90.example.com)(PORT=1521)))
  25. Services Summary...
  26. Service "+ASM" has 1 instance(s).
  27.   Instance "+ASM", status READY, has 1 handler(s) for this service...
  28.     Handler(s):
  29.       "DEDICATED" established:259 refused:0 state:ready
  30.          LOCAL SERVER
  31. Service "orcl.example.com" has 1 instance(s).
  32.   Instance "orcl", status READY, has 4 handler(s) for this service...
  33.     Handler(s):
  34.       "DEDICATED" established:259 refused:0 state:ready
  35.          LOCAL SERVER
  36.       "D000" established:0 refused:0 current:0 max:1022 state:ready
  37.          DISPATCHER <machine: station90.example.com, pid: 27496>
  38.          (ADDRESS=(PROTOCOL=tcp)(HOST=station90.example.com)(PORT=22919))
  39.       "D001" established:0 refused:0 current:0 max:1022 state:ready
  40.          DISPATCHER <machine: station90.example.com, pid: 8105>
  41.          (ADDRESS=(PROTOCOL=tcp)(HOST=station90.example.com)(PORT=13743))
  42.       "D002" established:0 refused:0 current:0 max:1022 state:ready
  43.          DISPATCHER <machine: station90.example.com, pid: 8110>
  44.          (ADDRESS=(PROTOCOL=tcp)(HOST=station90.example.com)(PORT=32283))
  45. Service "orclXDB.example.com" has 1 instance(s).
  46.   Instance "orcl", status READY, has 0 handler(s) for this service...
  47. The command completed successfully

  48. SQL> show parameter shared

  49. NAME                                     TYPE         VALUE
  50. ------------------------------------ ----------- ------------------------------
  51. hi_shared_memory_address             integer         0
  52. max_shared_servers                     integer
  53. shared_memory_address                     integer         0
  54. shared_pool_reserved_size             big integer 36909875
  55. shared_pool_size                     big integer 0
  56. shared_server_sessions                     integer
  57. shared_servers                             integer         1
  58. SQL> alter system set shared_servers=3;

  59. System altered.

  60. SQL>
复制代码
走以下脚本会多一个人:

Screenshot-3.png
  1. SQL> @?/rdbms/admin/prvtrsch.plb
复制代码
  1. BEGIN
  2. DBMS_XDB.SETHTTPPORT(8888);
  3. END;


  4. SELECT DBMS_XDB.GETHTTPPORT() FROM DUAL;

  5. BEGIN
  6. DBMS_SCHEDULER.SET_AGENT_REGISTRATION_PASS('buhaoji');
  7. END;
复制代码
Screenshot-4.png

组策略:
Screenshot-5.png

  1. select  * from dba_scheduler_external_dests;

  2. DECLARE
  3. versionnum VARCHAR2(30);
  4. BEGIN
  5. versionnum := DBMS_SCHEDULER.GET_AGENT_VERSION('192.168.0.199');
  6. DBMS_OUTPUT.PUT_LINE(versionnum);
  7. END;

  8. grant all on station199 to hr;
复制代码
  1. select  * from dba_scheduler_external_dests;
  2. select  * from dba_scheduler_dests;

  3. begin
  4.    dbms_scheduler.drop_agent_destination(destination_name => 'station14');
  5.   end;
  6.   
  7.   DECLARE
  8. versionnum VARCHAR2(30);
  9. BEGIN
  10. versionnum := DBMS_SCHEDULER.GET_AGENT_VERSION('192.168.0.199');
  11. DBMS_OUTPUT.PUT_LINE(versionnum);
  12. END;



  13. ----
  14. begin
  15.    dbms_scheduler.create_file_watcher(
  16.    file_watcher_name => 'filewatcher2',
  17.    directory_path => 'c:\Users\oracle\yourfile',
  18.    file_name =>  'botang*.txt',
  19.    credential_name => 'cred1',
  20.    destination => 'STATION199');
  21. end;

  22. grant execute on filewatcher2 to hr;

  23. select  * from  hr.tfilewatcher1;

  24. BEGIN
  25.   DBMS_SCHEDULER.CREATE_JOB(
  26.    jOB_NAME=> 'hr.job12',
  27.    PROGRAM_NAME=> 'hr.program10',
  28.    EVENT_CONDITION => 'tab.user_data.file_size > 10',
  29.    QUEUE_SPEC=> 'filewatcher2',
  30.    AUTO_DROP=> FALSE,
  31.    ENABLED=> true);
  32. END;


  33. begin
  34.    dbms_scheduler.set_attribute('hr.job12','parallel_instances',true);
  35. end;
复制代码


回复

使用道具 举报

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

本版积分规则

QQ|手机版|Bo's Oracle Station   

GMT+8, 2024-4-20 00:03 , Processed in 0.048952 second(s), 35 queries .

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