|
HR:
- DECLARE
- l_enqueue_options DBMS_AQ.enqueue_options_t;
- l_message_properties DBMS_AQ.message_properties_t;
- l_message_handle RAW(16);
- l_queue_msg sys.t_event_queue_payload;
- BEGIN
- l_queue_msg := sys.t_event_queue_payload('give_me_a_prod');
- DBMS_AQ.enqueue(queue_name => 'sys.event_queue',
- enqueue_options => l_enqueue_options,
- message_properties => l_message_properties,
- payload => l_queue_msg,
- msgid => l_message_handle);
- COMMIT;
- END;
- ----------------------
- DROP TABLE scheduler_test;
- DROP SEQUENCE scheduler_test_seq;
- CREATE TABLE scheduler_test (
- id NUMBER(10) NOT NULL,
- description VARCHAR2(20) NOT NULL,
- created_date DATE NOT NULL,
- CONSTRAINT scheduler_test_pk PRIMARY KEY (id)
- );
- --------
- CREATE SEQUENCE scheduler_test_seq;
- ------
- BEGIN
- DBMS_SCHEDULER.create_program (
- program_name => 'test_program_1',
- program_type => 'PLSQL_BLOCK',
- program_action => 'BEGIN
- INSERT INTO scheduler_test (id, description, created_date)
- VALUES (scheduler_test_seq.NEXTVAL, ''test_program_1'', SYSDATE);
- COMMIT;
- END;',
- enabled => TRUE,
- comments => 'Step2');
- DBMS_SCHEDULER.create_program (
- program_name => 'test_program_2',
- program_type => 'PLSQL_BLOCK',
- program_action => 'BEGIN
- INSERT INTO scheduler_test (id, description, created_date)
- VALUES (scheduler_test_seq.NEXTVAL, ''test_program_2'', SYSDATE);
- COMMIT;
- END;',
- enabled => TRUE,
- comments => 'Step3');
- DBMS_SCHEDULER.create_program (
- program_name => 'test_program_3',
- program_type => 'PLSQL_BLOCK',
- program_action => 'BEGIN
- INSERT INTO scheduler_test (id, description, created_date)
- VALUES (scheduler_test_seq.NEXTVAL, ''test_program_3'', SYSDATE);
- COMMIT;
- END;',
- enabled => TRUE,
- comments => 'Step4');
- END;
- -------
复制代码
EM:
- BEGIN
- sys.dbms_scheduler.create_chain(
- comments => 'chain1',
- chain_name => '"HR"."CHAIN1"');
- sys.dbms_scheduler.define_chain_event_step(
- chain_name => '"HR"."CHAIN1"',
- step_name => '"STEP1"',
- event_schedule_name => '"HR"."SCHEDULE4"');
- sys.dbms_scheduler.alter_chain(
- chain_name => '"HR"."CHAIN1"',
- step_name => '"STEP1"',
- attribute => 'pause',
- value => FALSE);
- sys.dbms_scheduler.alter_chain(
- chain_name => '"HR"."CHAIN1"',
- step_name => '"STEP1"',
- attribute => 'skip',
- value => FALSE);
- sys.dbms_scheduler.alter_chain(
- chain_name => '"HR"."CHAIN1"',
- step_name => '"STEP1"',
- attribute => 'restart_on_failure',
- value => FALSE);
- sys.dbms_scheduler.define_chain_step(
- chain_name => '"HR"."CHAIN1"',
- step_name => '"STEP2"',
- program_name => '"HR"."TEST_PROGRAM_1"');
- sys.dbms_scheduler.alter_chain(
- chain_name => '"HR"."CHAIN1"',
- step_name => '"STEP2"',
- attribute => 'pause',
- value => FALSE);
- sys.dbms_scheduler.alter_chain(
- chain_name => '"HR"."CHAIN1"',
- step_name => '"STEP2"',
- attribute => 'skip',
- value => FALSE);
- sys.dbms_scheduler.alter_chain(
- chain_name => '"HR"."CHAIN1"',
- step_name => '"STEP2"',
- attribute => 'restart_on_failure',
- value => FALSE);
- sys.dbms_scheduler.define_chain_step(
- chain_name => '"HR"."CHAIN1"',
- step_name => '"STEP3"',
- program_name => '"HR"."TEST_PROGRAM_2"');
- sys.dbms_scheduler.alter_chain(
- chain_name => '"HR"."CHAIN1"',
- step_name => '"STEP3"',
- attribute => 'pause',
- value => FALSE);
- sys.dbms_scheduler.alter_chain(
- chain_name => '"HR"."CHAIN1"',
- step_name => '"STEP3"',
- attribute => 'skip',
- value => FALSE);
- sys.dbms_scheduler.alter_chain(
- chain_name => '"HR"."CHAIN1"',
- step_name => '"STEP3"',
- attribute => 'restart_on_failure',
- value => FALSE);
- sys.dbms_scheduler.define_chain_step(
- chain_name => '"HR"."CHAIN1"',
- step_name => '"STEP4"',
- program_name => '"HR"."TEST_PROGRAM_3"');
- sys.dbms_scheduler.alter_chain(
- chain_name => '"HR"."CHAIN1"',
- step_name => '"STEP4"',
- attribute => 'pause',
- value => FALSE);
- sys.dbms_scheduler.alter_chain(
- chain_name => '"HR"."CHAIN1"',
- step_name => '"STEP4"',
- attribute => 'skip',
- value => FALSE);
- sys.dbms_scheduler.alter_chain(
- chain_name => '"HR"."CHAIN1"',
- step_name => '"STEP4"',
- attribute => 'restart_on_failure',
- value => FALSE);
- sys.dbms_scheduler.define_chain_rule(
- chain_name => '"HR"."CHAIN1"',
- condition => '1=1',
- rule_name => 'RULE1',
- comments => 'rule1',
- action => 'START step1');
- sys.dbms_scheduler.define_chain_rule(
- chain_name => '"HR"."CHAIN1"',
- condition => 'step1 COMPLETED',
- rule_name => 'RULE2',
- comments => 'rule2',
- action => 'START step2');
- sys.dbms_scheduler.define_chain_rule(
- chain_name => '"HR"."CHAIN1"',
- condition => 'step2 COMPLETED',
- rule_name => 'RULE3',
- comments => 'rule3',
- action => 'START step3');
- sys.dbms_scheduler.define_chain_rule(
- chain_name => '"HR"."CHAIN1"',
- condition => 'step3 COMPLETED',
- rule_name => 'RULE4',
- comments => 'rule4',
- action => 'START step4');
- sys.dbms_scheduler.define_chain_rule(
- chain_name => '"HR"."CHAIN1"',
- condition => 'step4 COMPLETED',
- rule_name => 'RULE5',
- comments => 'rule5',
- action => 'END');
- END;
-
复制代码
附:邮件服务器
/etc/postfix/main.cf
- [root@station90 postfix]# grep -v '^#' main.cf | grep -v '^
- queue_directory = /var/spool/postfix
- command_directory = /usr/sbin
- daemon_directory = /usr/libexec/postfix
- data_directory = /var/lib/postfix
- mail_owner = postfix
- myorigin = $mydomain
- inet_interfaces = all
- inet_protocols = all
- mydestination = $myhostname, localhost.$mydomain, localhost, example.com, something.net
- unknown_local_recipient_reject_code = 550
- mynetworks = 192.168.0.0/24, 127.0.0.0/8
- alias_maps = hash:/etc/aliases
- alias_database = hash:/etc/aliases
-
-
- debug_peer_level = 2
- debugger_command =
- PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
- ddd $daemon_directory/$process_name $process_id & sleep 5
- sendmail_path = /usr/sbin/sendmail.postfix
- newaliases_path = /usr/bin/newaliases.postfix
- mailq_path = /usr/bin/mailq.postfix
- setgid_group = postdrop
- html_directory = no
- manpage_directory = /usr/share/man
- sample_directory = /usr/share/doc/postfix-2.6.6/samples
- readme_directory = /usr/share/doc/postfix-2.6.6/README_FILES
- smtpd_recipient_restrictions= hash:/etc/postfix/access2,
- permit_mynetworks,
- permit_sasl_authenticated,
- reject_unauth_destination
- smtpd_sender_restrictions= hash:/etc/postfix/access,
- permit_mynetworks,
- permit_sasl_authenticated,
- reject_unauth_destination
- [root@station90 postfix]#
复制代码 /etc/dovecot/dovecot.conf:
- login_trusted_networks = 192.168.0.0/24
- dict {
- #quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
- #expire = sqlite:/etc/dovecot/dovecot-dict-sql.conf.ext
- }
- !include conf.d/*.conf
复制代码 /etc/dovecot/conf.d/10-mail.conf:
- mail_location = mbox:~/mail:INBOX=/var/mail/%u
复制代码 建用户:
- [root@station90 ~]# passwd testzhang3
- 更改用户 testzhang3 的密码 。
- 新的 密码:
- 无效的密码: 它基于字典单词
- 无效的密码: 过于简单
- 重新输入新的 密码:
- passwd: 所有的身份验证令牌已经成功更新。
- [root@station90 ~]# su - testzhang3
- [testzhang3@station90 ~]$ mkdir -p mail/.imap/INBOX
- [testzhang3@station90 ~]$
复制代码- select * from dba_scheduler_global_attribute;
- select * from dba_scheduler_notifications;
- begin
- DBMS_SCHEDULER.SET_SCHEDULER_ATTRIBUTE
- ('email_server','station90.example.com');
- end;
- begin
- DBMS_SCHEDULER.SET_SCHEDULER_ATTRIBUTE
- ('email_sender','testzhang3@example.com');
- end;
-
- select * from dba_scheduler_global_attribute;
-
- ---
-
- begin
- DBMS_SCHEDULER.ADD_JOB_EMAIL_NOTIFICATION (
- job_name =>'HR.JOB5',
- events =>'job_failed',
- recipients =>'testzhang3@example.com');
- end;
- select * from dba_scheduler_notifications;
复制代码- select * from dba_scheduler_global_attribute;
- select * from dba_scheduler_notifications;
- begin
- DBMS_SCHEDULER.SET_SCHEDULER_ATTRIBUTE
- ('email_server','station90.example.com');
- end;
- begin
- DBMS_SCHEDULER.SET_SCHEDULER_ATTRIBUTE
- ('email_sender','oracle@example.com');
- end;
-
- begin
- DBMS_SCHEDULER.ADD_JOB_EMAIL_NOTIFICATION (
- job_name =>'HR.JOB5',
- events =>'job_succeeded,job_completed',
- recipients =>'oracle@example.com');
- end;
-
- begin
- DBMS_SCHEDULER.REMOVE_JOB_EMAIL_NOTIFICATION (
- job_name =>'HR.JOB5');
- end;
- 错误
- create or replace procedure hr.proc1
- begin
- update t123456 set a=2;
- end;
- begin
- DBMS_SCHEDULER.ADD_JOB_EMAIL_NOTIFICATION (
- job_name =>'HR.JOB51',
- recipients =>'oracle@example.com');
- end;
-
- BEGIN
- DBMS_SCHEDULER.add_job_email_notification (
- job_name => 'test_notification_job',
- recipients => 'oracle@example.com',
- events => 'job_failed',
- filter_condition => ':event.error_code=600');
- END;
- /
-
-
-
复制代码
|
|