botang 发表于 2017-11-13 19:25:04

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

64位Linux要做Filewatcher一定要:
# ls -l libpam.so*
lrwxrwxrwx. 1 root root    16 10月6 00:23 libpam.so.0 -> libpam.so.0.82.2
-rwxr-xr-x. 1 root root 552807月 10 18:59 libpam.so.0.82.2
# ln -s libpam.so.0.82.2 libpam.so
# pwd
/lib64
#
关于总file_watcher_job和原来就有的file_watcher_scheduler(而且都是关闭或disabled):


--------


SYS:
select* from dba_scheduler_credentials;

select* from dba_scheduler_file_watchers;

begin
   dbms_scheduler.create_file_watcher(
       file_watcher_name => 'filewatcher1',
       directory_path => '/home/oracle/myfile',
       file_name => 'botang*.txt',
       credential_name => 'cred1');
end;

grant execute on filewatcher1 to hr;
grant execute on SYS.SCHEDULER_FILEWATCHER_RESULT to hr;
grant create external job to hr;
grant create job to hr;


HR:
create table hr.tfilewatcher1 ( avarchar2(200)) ;


create or replace procedure hr.procfilewatcher ( p_1   SYS.SCHEDULER_FILEWATCHER_RESULT)
is
begin
insert into hr.tfilewatcher1values ( to_char( p_1.file_timestamp,'YYYY-MM-DD:HH24:MI:SS') ||'      '
                                                      ||p_1.directory_path||'      '
                                                      ||p_1.actual_file_name||'       '
                                                      ||p_1.file_size) ;
commit;
end;

----

begin
    dbms_scheduler.create_program(
   program_name => 'HR.program10',
   program_type => 'STORED_PROCEDURE',
   program_action => 'HR.procfilewatcher',
   number_of_arguments => 1,
   enabled => false);
end;

----
begin
   dbms_scheduler.define_metadata_argument(
   program_name => 'HR.program10',
   metadata_attribute => 'event_message',argument_position => 1 ) ;
end;
-----
begin
dbms_scheduler.enable('HR.program10');
end;
----

BEGIN
DBMS_SCHEDULER.CREATE_JOB(
   jOB_NAME=> 'hr.job10',
   PROGRAM_NAME=> 'hr.program10',
   EVENT_CONDITION => 'tab.user_data.file_size > 10',
   QUEUE_SPEC=> 'filewatcher1',
   AUTO_DROP=> FALSE,
   ENABLED=> true);
END;

begin
   dbms_scheduler.set_attribute('hr.job10','parallel_instances',true);
end;
select* from hr.tfilewatcher1;


Remote Scheduler:
$ sqlplus /nolog

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

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

SQL> conn / as sysdba
Connected.
SQL> show parameter dispa

NAME                                     TYPE         VALUE
------------------------------------ ----------- ------------------------------
dispatchers                           string         (PROTOCOL=TCP) (SERVICE=orclXD
                                                 B)
max_dispatchers                      integer
SQL> alter system set dispatchers=
2' (PROTOCOL=TCP) (dispatchers=3)';

System altered.

SQL> show parameter dispa

NAME                                     TYPE         VALUE
------------------------------------ ----------- ------------------------------
dispatchers                           string          (PROTOCOL=TCP) (dispatchers=3
                                                 )
max_dispatchers                      integer
SQL> !lsnrctl services

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

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=station90.example.com)(PORT=1521)))
Services Summary...
Service "+ASM" has 1 instance(s).
Instance "+ASM", status READY, has 1 handler(s) for this service...
    Handler(s):
      "DEDICATED" established:259 refused:0 state:ready
         LOCAL SERVER
Service "orcl.example.com" has 1 instance(s).
Instance "orcl", status READY, has 4 handler(s) for this service...
    Handler(s):
      "DEDICATED" established:259 refused:0 state:ready
         LOCAL SERVER
      "D000" established:0 refused:0 current:0 max:1022 state:ready
         DISPATCHER <machine: station90.example.com, pid: 27496>
         (ADDRESS=(PROTOCOL=tcp)(HOST=station90.example.com)(PORT=22919))
      "D001" established:0 refused:0 current:0 max:1022 state:ready
         DISPATCHER <machine: station90.example.com, pid: 8105>
         (ADDRESS=(PROTOCOL=tcp)(HOST=station90.example.com)(PORT=13743))
      "D002" established:0 refused:0 current:0 max:1022 state:ready
         DISPATCHER <machine: station90.example.com, pid: 8110>
         (ADDRESS=(PROTOCOL=tcp)(HOST=station90.example.com)(PORT=32283))
Service "orclXDB.example.com" has 1 instance(s).
Instance "orcl", status READY, has 0 handler(s) for this service...
The command completed successfully

SQL> show parameter shared

NAME                                     TYPE         VALUE
------------------------------------ ----------- ------------------------------
hi_shared_memory_address             integer         0
max_shared_servers                     integer
shared_memory_address                     integer         0
shared_pool_reserved_size             big integer 36909875
shared_pool_size                     big integer 0
shared_server_sessions                     integer
shared_servers                           integer         1
SQL> alter system set shared_servers=3;

System altered.

SQL>
走以下脚本会多一个人:


SQL> @?/rdbms/admin/prvtrsch.plb

BEGIN
DBMS_XDB.SETHTTPPORT(8888);
END;


SELECT DBMS_XDB.GETHTTPPORT() FROM DUAL;

BEGIN
DBMS_SCHEDULER.SET_AGENT_REGISTRATION_PASS('buhaoji');
END;

组策略:


select* from dba_scheduler_external_dests;

DECLARE
versionnum VARCHAR2(30);
BEGIN
versionnum := DBMS_SCHEDULER.GET_AGENT_VERSION('192.168.0.199');
DBMS_OUTPUT.PUT_LINE(versionnum);
END;

grant all on station199 to hr;

select* from dba_scheduler_external_dests;
select* from dba_scheduler_dests;

begin
   dbms_scheduler.drop_agent_destination(destination_name => 'station14');
end;

DECLARE
versionnum VARCHAR2(30);
BEGIN
versionnum := DBMS_SCHEDULER.GET_AGENT_VERSION('192.168.0.199');
DBMS_OUTPUT.PUT_LINE(versionnum);
END;



----
begin
   dbms_scheduler.create_file_watcher(
   file_watcher_name => 'filewatcher2',
   directory_path => 'c:\Users\oracle\yourfile',
   file_name =>'botang*.txt',
   credential_name => 'cred1',
   destination => 'STATION199');
end;

grant execute on filewatcher2 to hr;

select* fromhr.tfilewatcher1;

BEGIN
DBMS_SCHEDULER.CREATE_JOB(
   jOB_NAME=> 'hr.job12',
   PROGRAM_NAME=> 'hr.program10',
   EVENT_CONDITION => 'tab.user_data.file_size > 10',
   QUEUE_SPEC=> 'filewatcher2',
   AUTO_DROP=> FALSE,
   ENABLED=> true);
END;


begin
   dbms_scheduler.set_attribute('hr.job12','parallel_instances',true);
end;

页: [1]
查看完整版本: 第32次活动:2017-11-13(星期一晚上7:00-9:30)