|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
DBaaS系统其实具有更大的市场机遇:像其他云服务一样,DBaaS意味着更短的销售周期,更少的启动费用,持续不断的收入,也意味着比之前更多的客户。<P>该程序剧本最次要的功效完成为经由过程oracle自带的历程包发送邮件来监控ETL的实行情形:
ORACLE_SID=orcl
ORACLE_BASE=/opt/oracle
ORACLE_HOME=/opt/oracle/product/10.2.0
exportORACLE_SIDORACLE_BASEORACLE_HOME
PWD_DIR=/home/oracle/shell
SQLPLUS=${ORACLE_HOME}/bin/sqlplus
CONFIG_INI=${PWD_DIR}/ini/config.ini
whilereadgameuser
do
echo${gameuser}
echo${SQLPLUS}
cd${PWD_DIR}
${SQLPLUS}${gameuser}<<!
@etl_monitor.sql;
/
exit;
!
done<${CONFIG_INI}
etl_monitor.sql剧本为:
DECLARE
p_txtVARCHAR2(4000);
p_txt_allVARCHAR2(4000);
BEGIN
FORrIN(SELECTjob_name,
run_cnt,
table_name,
column_name
FROMetl_monitor_config_tab)
LOOP
--CalltheEtlMonitorfunction
p_txt:=
etl_monitor(r.job_name,
r.run_cnt,
r.table_name,
r.column_name);
p_txt_all:=p_txt_allCHR(13)p_txt;
ENDLOOP;
--CalltheSendMailfunction
procsendemail(p_txt_all,
EtlMoniotr,
xxx@163.com,
xxxx@kingsoft.com,
mail.kingsoft.com,
25,
1,
xxxxxx,
xxxxxx,
,
bit7);
p_txt_all:=;
END;
createorreplacefunctionetl_monitor(job_namevarchar2,
run_cntint,
table_namevarchar2,
column_namevarchar2)
RETURNvarchar2IS
v_monitor_datedate;--Themonitoroftheprocsdate
v_job_namevarchar2(130);
v_log_idnumber;
v_result1char(1);--Thestatusoftheprocsresult1
v_result2char(1);--Thestatusoftheprocsresult2
v_status_cntint;
v_record_numint;--Thenumberofthejobrun
v_resultvarchar2(4000);
v_sqlvarchar2(1000);
begin
v_monitor_date:=trunc(sysdate);
v_job_name:=job_name;
v_result1:=0;
v_result2:=0;
v_sql:=selectcount(1)from;
ifrun_cnt=1then
selectlog_id
intov_log_id
fromuser_scheduler_job_run_details
wherejob_name=v_job_name
andtrunc(actual_start_date)=v_monitor_date;
else
selectmax(log_id)
intov_log_id
fromuser_scheduler_job_run_details
wherejob_name=v_job_name
andtrunc(actual_start_date)=v_monitor_date;
endif;
selectcount(*)
intov_status_cnt
fromuser_scheduler_job_run_details
wherelog_id=v_log_id
andstatus=SUCCEEDED;
ifv_status_cnt=0then
gotoerror1;
endif;
v_result1:=1;
v_sql:=v_sqltable_namewheretrunc(column_name
)=trunc(sysdate-1)andrownum=1;
executeimmediatev_sql
intov_record_num;
ifv_record_num>0then
v_result2:=1;
else
v_status_cnt:=0;
gotoerror1;
endif;
ifv_result1=1andv_result2=1then
v_result:=SYS_CONTEXT(USERENV,CURRENT_SCHEMA).
v_job_nameAtv_monitor_dateISSUCCEEDED;
endif;
<<error1>>
ifv_status_cnt=0then
selectOWNER.JOB_NAMEAtTRUNC(ACTUAL_START_DATE)
ISADDITIONAL_INFO
intov_result
fromuser_scheduler_job_run_details
wherelog_id=v_log_id;
endif;
returnv_result;
exception
whenothersthen
returnSYS_CONTEXT(USERENV,CURRENT_SCHEMA).v_job_nameAtv_monitor_dateISNOTEXECUTE;
end;12345下一页>全文浏览提醒:尝尝"←→"键,翻页更便利哦!MySQL数据库归MySQLAB公司所有,但是这个软件是开源的,有一个MySQL学习教程可以免费下载。稍俱常识的新入门者都可以轻松实现在一个常见硬件上安装和配置MySQL。 |
|