暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

需要从oracle触发器调用shell脚本的帮助。

askTom 2017-04-11
759

问题描述

嗨,汤姆,

要求:

需要在数据库反弹前后发送数据库报告。

测试用例:

1) 创建了一个调度程序作业。

BEGIN
DBMS_SCHEDULER.CREATE_JOB
(
 job_name => 'RUN_CHECK_REPORT',
 schedule_name => 'HEALTHCHECK',
 job_type => 'EXECUTABLE',
 job_action => '/export/home/oracle/hc.sh'
);
END;
/


2) 执行一项工作。

SQL> 执行dbms_scheduler.run_job('运行 _ 检查 _ 报告')

PL/SQL过程成功完成。

=

我的计划是在数据库关闭之前和启动后调用shell脚本,它需要以电子邮件的方式发送一些详细信息。但是,当我执行作业时,它只是读取与邮件相关的内容并将其作为 (“数据库会话报告”) 内容发送。但是,当我手动执行shell脚本时,它会按预期发送详细信息。从我的观察来看,它不是从sqlplus开始的内容,直到shell中的邮件内容开始。请指教。
SHELL脚本:

#!/bin/sh
export ORACLE_SID=actd1
export ORACLE_HOME=/actdbdrtp1/oracle/product/12.1.0.2
export PATH=$ORACLE_HOME/bin:$PATH
export date=`date`
$ORACLE_HOME/bin/sqlplus  -s "/ as sysdba" << EOF
SELECT NAME from v\$database;
set markup html on
SPOOL /export/home/oracle/session.log APPEND
select name,open_mode from v\$database;
select sid,username,status,sql_id,event from v\$session;
set markup html off
spool off
EOF
mv /export/home/oracle/session.log /export/home/oracle/session.html
export MAILTO="divakar.sugumar@fmr.com"
export CONTENT="/export/home/oracle/session.html"
export SUBJECT="SESSION_REPORT"
(
 echo "Subject: $SUBJECT"
 echo "MIME-Version: 1.0"
 echo "Content-Type: text/html"
 echo "Content-Disposition: inline"
 echo "DATABASE USAGE REPORT

" cat /export/home/oracle/session.html echo "

DATABASE SESSION REPORT
" ) | /usr/sbin/sendmail $MAILTO

=========

嗨,汤姆,

我需要在数据库关闭之前和数据库自动启动后发送运行状况检查报告。为此,我将在关机之前和启动触发之后使用。但是我担心如何通过电子邮件发送报告。

你能帮我这个概念吗?我们如何实现这一点,任何示例代码,请...

提前谢谢!

专家解答

你不能对你的环境做任何假设... 因为从调度程序开始,它从零开始。因此,例如,这是脚本标题的一个版本,它在我的机器上对我有用。请注意,所有变量都是完全设置的-没有现有环境的假设

ORACLE_SID=db122
export ORACLE_SID=db122

ORACLE_HOME=/u01/app/oracle/product/12.2/db_2
export ORACLE_HOME

PATH=$ORACLE_HOME/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin
export PATH



「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论