结合EM快速解决复杂的配置问题(r4笔记第91天)

时间:2022-05-04
本文章向大家介绍结合EM快速解决复杂的配置问题(r4笔记第91天),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

图形工具在学习中一般是不作为推荐工具使用的,很多时候可能工作环境都是字符界面,远程连接,基本没有可能接触到图形工具,图形工具的好处真是一把双刃剑,功能丰富全面而且极其方面,这是优点也是缺点,如果一旦脱离了图形工具,可能就会发现自己会的东西越来越少。在工作中,有时候有些同事会问我 一些关于toad,SQLDeveloper的使用细节,很多时候自己都有些陌生,因为确实使用这些图形工具的机会相对比比较少,但是也不能一味排斥这些工具,一旦有紧急问题的时候,有些图形工具的功能还是很给力的。 前段时间客户有个需求,需要在在某个用户下创建一个物化视图,通过db link来从源数据中刷新得到数据,但是刷新的频率有一定的要求,他们希望在每天凌晨4点半的时候刷新这个物化视图,这个工作看起来还是很简单的。 操作系统层面可以通过crontab来完成。 如果通过脚本,可以通过shell运行,然后设定sleep时间,基本能够满足要求。 如果从数据库层面,scheduler job就是一个很不错的选择。dbms_scheduler算是dbms_job的升级版,可以灵活地搭配对应的程序(pl/sql)和调度来完成,这个时候程序和调度就像零件一样,可以在不同的job中灵活组配。 客户倾向于从数据库层面来完成。这个时候思路就很清晰,需要创建program,创建scheduler,然后在job中加载program,scheduler 说起来容易做起来难,如果在文档中查找,也能做出来,但是需要花一些时间来验证,而且很有可能出错,这个时候如果通过图形工具也是一个不错的选择。可能这个时候工作环境中没有图形界面,通过远程连接这些都是不可以实现的, 没有条件我们要创造条件,我们可以在本地安装一套数据库软件,配置EM就可以开工了,但是EM或者Grid control有一个很不错的选项就是show sql的功能,本地创建没有意义,但是我们可以把对应的sql语句拷贝出来,略作修改就是最终的脚本了。 看看通过EM创建job是多么的简单。 创建scheduler的截图如下:

创建program的截图如下:

创建job的截图如下:

来看看show sql生成的语句吧。 创建scheduler的语句。

BEGIN
sys.dbms_scheduler.create_schedule( 
repeat_interval => 'FREQ=DAILY;BYHOUR=4;BYMINUTE=30;BYSECOND=0',
start_date => systimestamp at time zone 'Pacific/Pago_Pago',
schedule_name => '"SYSTEM"."REFRESH_SNAP_BY_DAY"');
END;

创建program的语句

BEGIN
DBMS_SCHEDULER.CREATE_PROGRAM(
program_name=>'"SYSTEM"."PROGRAM_REFRESH_SNAP"',
program_action=>'exec dbms_mview.refresh(''XX'',''C'');',
program_type=>'PLSQL_BLOCK',
number_of_arguments=>0,
comments=>'',
enabled=>TRUE);
END;

创建job的语句

BEGIN
sys.dbms_scheduler.create_job( 
job_name => '"SYSTEM"."JOB_REFRESH_SNAP"',
program_name => '"SYSTEM"."PROGRAM_REFRESH_SNAP"',
schedule_name => '"SYSTEM"."REFRESH_SNAP_BY_DAY"',
job_class => '"DEFAULT_JOB_CLASS"',
auto_drop => FALSE,
enabled => TRUE);
END;

所以也不要一味排斥图形工具,毕竟我们只是为了让自己工作效率提高,白猫黑猫啊,抓住老鼠就是好猫,合理使用图形工具还是值得推荐的。