Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【DB笔试面试483】通过DBMS_SCHEDULER如何调用SHELL脚本?

【DB笔试面试483】通过DBMS_SCHEDULER如何调用SHELL脚本?

作者头像
AiDBA宝典
发布于 2019-09-30 08:23:15
发布于 2019-09-30 08:23:15
87500
代码可运行
举报
运行总次数:0
代码可运行

题目部分

通过DBMS_SCHEDULER如何调用SHELL脚本?

答案部分

可以直接创建JOB来调用SHELL脚本,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
BEGIN DBMS_SCHEDULER.CREATE_JOB(JOB_NAME=>'TEST13',
JOB_TYPE=>'EXECUTABLE',
ENABLED =>FALSE,
AUTO_DROP =>FALSE,
JOB_ACTION=>'/u01/dw/regain/test1.sh',
NUMBER_OF_ARGUMENTS => 1);
END;
/
BEGIN DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE(JOB_NAME=>'TEST13',
ARGUMENT_POSITION => 1,
ARGUMENT_VALUE => 'AAAA');
END;
/

若是以普通用户执行上述代码的话,在执行过程中会遇到ORA-27486: insufficient privileges和ORA-27399: job type EXECUTABLE requires the CREATE EXTERNAL JOB privilege的错误,这是由于权限不足的缘故导致的。

解决方法:以SYSDBA连接,然后执行上述代码,或者用SYS用户进行赋权操作,这里假设普通用户的用户名为LHR:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
GRANT CREATE ANY JOB TO LHR;
GRANT CREATE EXTERNAL JOB TO LHR;

赋权之后接着执行就好了:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SQL> EXEC DBMS_SCHEDULER.ENABLE('TEST13');
SQL> EXEC DBMS_SCHEDULER.RUN_JOB('TEST13');
SQL> EXEC DBMS_SCHEDULER.DROP_JOB('TEST13');

本文选自《Oracle程序员面试笔试宝典》,作者:李华荣。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-01-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DB宝 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
关于奇怪的并行进程分析(二) (r6笔记第46天)
前几天的并行问题自己分析了下,也算有了一些进展,但是目前还没有找到让人信服的理由,有些读者也比较关心这个问题,所以第二篇中会把自己的分析过程写出来,第三篇中应该会对这个问题做一个了结。 之前发现剧烈的性能抖动似乎和数据库中存在的scheduler有一定的关系。自己就顺着这个思路进行了排查。 首先得到了离问题时间点比较接近的一个scheduler,然后抓取了对应的ddl语句。 OWNER JOB_NAME LAST_START_DATE ------- --
jeanron100
2018/03/16
7220
参数job_queue_processes与Oracle jobs
Oracle jobs为Oracle开发人员和数据库管理员提供了数据库层面维护的极大便利性。对于Oracle jobs在Oracle 9i之前,是由dbms_jobs来实现,而到了10g之后,多出了dbms_scheduler方式。两者同样可以添加Oracle job,只不过dbms_scheduler的功能更为强大。在使用Oracle jobs时,我们不得不关注job_queue_processes参数,用于设定job队列可以启动的进程数。本文即是围绕此展开。
Leshami
2018/08/14
8290
Oracle Scheduler Chain 的用法
      Oracle CHAIN,也就是链,是将一串需要完成的作业连在一起,根据每一个步骤完成的不同结果来确定下面的哪一个动作需要被完成。实际上也就是if .. then ..else。比如,可能有如下的定义,step 1成功执行,执行step 2,如果step 1执行失败,执行step 3,如果step 2或step 3 执行成功,退出整个chain,如果step 2 或step 3执行失败,发送邮件并退出。CHAIN的主要步骤包括定义程序(做什么)、定义CHAIN步骤(总步骤),以及CHAIN的规则(如何做)。本文主要描述了chain的一些步骤并给出示例供大家参考。有关job,program可以参考Oracle在线文档。
Leshami
2018/08/13
5980
增量数据丢失的原因分析(r8笔记第26天)
今天开发的同事找到我,让我帮他们补一部分数据,因为有一个表的数据已经快一个月没有增量数据了,这个需求听起来有些奇怪是不? 问题的背景是在统计库中存在一个表,供部分应用做统计分析,每天会根据时间生成一条记录,这条记录汇总的数据会作为统计分析所用。但是每天的这一条增量数据的源头来自于另外两个在线交易库。两个库中的数据会做一些关联,大体的实现思路就是下面的形式。 现在OLAP的库中的表里的部分增量数据没有按照时间增加,所以对前端应用的统计造成了一定的影响。 当然对于DBA而言,这部分逻辑还是未知的,可能跨业务部
jeanron100
2018/03/19
8910
增量数据丢失的原因分析(二)(r8笔记第76天)
今天处理的一个问题比较绕,花费了我不少的时间来分析,当然最后发现是拜拜忙碌一场空,还是有一些历史原因。 大体的环境情况如下,有一台线上库OLTP,其中也有会自己的存储过程,job,结合起来处理一些数据,当然作为统计系统而言,目前有两套统计系统STATDB1,STATDB2,都哟裇相关业务的划分,两者会有一些交集。 开发的同学找到我说,统计库STATDB2 有一张表,发现最近两天的数据没有更新,当然开发的同学无从查起,就想让我帮忙看看,现在还是流行逆性工程,所以这个工作就义不容辞交给了我。 我大体梳理了一下,
jeanron100
2018/03/19
7290
增量数据丢失的原因分析(二)(r8笔记第76天)
【DB笔试面试480】 RAC中如何指定JOB的运行实例?
在RAC中,可以让JOB在某个指定的实例上运行。对于DBMS_JOB和DBMS_SCHEDULER来说,它们的指定方法不同:
AiDBA宝典
2019/09/29
5920
【DB笔试面试479】Oracle JOB分为哪几类?
Oracle的JOB分为两类,DBMS_JOB和DBMS_SCHEDULER,二者都可以完成定时任务。
AiDBA宝典
2019/09/30
5800
【DB笔试面试484】如何批量删除JOB?
可以采用SQL来生成删除JOB的语句,首先执行以下语句,可以根据情况对结果进行过滤:
AiDBA宝典
2019/09/30
5510
Oracle RAC环境下配置statspack
    Statspack是Oracle 9i时代的产物,对于监控与分析数据库性能有着跨里程碑的意义,是AWR的前身。在Oracle 10g后AWR取代了statspack。尽管如此,awr异常或者需要调试包license的情况下statpack依旧是不错的选择。然而在RAC环境中,statspack并不支持,需要单独的进行配置以及使用job来进行管理。本文描述的则是通过在RAC环境下创建service,以及job来达到各节点同时产生snapshot的效果。
Leshami
2018/08/13
6730
【DB笔试面试644】在Oracle中,如何并发地收集统计信息?
对于大表的统计信息收集可以通过DEGREE参数使得扫描大表的时候进行并行扫描,从而加快扫描速度,缩短了收集统计信息的时间。但是,即使加了DEGREE参数,在收集统计信息的时候,还是进行一个表一个表的扫描,并没有并发的同时扫描多个表。在Oracle 11.2.0.2之后,有了一个参数,可以并发扫描表,这就是CONCURRENT参数。可以通过以下SQL语句查询数据库是否启用了CONCURRENT收集统计信息,默认为FALSE,表示没有开启并发收集统计信息:
AiDBA宝典
2019/09/29
6740
【DB笔试面试644】在Oracle中,如何并发地收集统计信息?
结合EM快速解决复杂的配置问题(r4笔记第91天)
图形工具在学习中一般是不作为推荐工具使用的,很多时候可能工作环境都是字符界面,远程连接,基本没有可能接触到图形工具,图形工具的好处真是一把双刃剑,功能丰富全面而且极其方面,这是优点也是缺点,如果一旦脱离了图形工具,可能就会发现自己会的东西越来越少。在工作中,有时候有些同事会问我 一些关于toad,SQLDeveloper的使用细节,很多时候自己都有些陌生,因为确实使用这些图形工具的机会相对比比较少,但是也不能一味排斥这些工具,一旦有紧急问题的时候,有些图形工具的功能还是很给力的。 前段时间客户有个需求,需要
jeanron100
2018/03/15
6190
结合EM快速解决复杂的配置问题(r4笔记第91天)
【DB笔试面试536】在Oracle中,Oracle 10g和11g告警日志文件的位置在哪里?
作为一名DBA,必须知道告警日志是什么,在何处。实时的监控数据库的告警日志是必须进行的工作。监控并且根据不同的告警级别,通过邮件或短信发送告警信息给DBA,这可以帮助DBA及时了解数据库的变化与异常,及时响应并介入处理。
AiDBA宝典
2019/09/29
1.3K0
ORA-31623: a job is not attached to this session via the specified handle
    在使用Oracel Datapump API时碰到ORA-31623(a job is not attached to this session via the specified handle)错误,从故障描述来 看提示 job并没有成功附加到当前session指定的handle。该package的导入导出一直正常运行究竟是什么原因导致的呢?我们拭目以待......
Leshami
2018/08/14
1K0
【DB笔试面试449】如何监控数据库的登陆登出、DDL语句等内容?
系统中一些常用的监控都可以使用DDL触发器和系统触发器来实现。可以先创建一张记录DDL语句的表XB_AUDIT_DDL_LHR(由于该表记录数会很大,所以,需创建成按月自动分区的分区表),并创建合适的索引,然后创建存储过程用于插入DDL信息到该日志表中。最后再创建系统触发器就可以将DDL语句或系统事件的信息插入日志表中。下面详细说明DDL触发器和系统触发器的使用。
AiDBA宝典
2019/09/30
6720
【DB笔试面试482】如何查询SCHEDULER JOB的运行日志?
可以通过查询视图DBA_SCHEDULER_JOB_RUN_DETAILS来获取SCHEDULER JOB的运行日志、产生的错误等信息。如下所示:
AiDBA宝典
2019/09/30
1.1K0
在Oracle中,如何定时清理INACTIVE状态的会话?
今天小麦苗给大家分享的是在Oracle中,如何定时清理INACTIVE状态的会话?
AiDBA宝典
2019/09/29
3.3K0
通过shell定制dbms_advisor.quick_tune(r4笔记第15天)
在平时的调优工作中,在11g中的新特性sql monitor可以极大的简化性能监控的工作,对于执行时间超过5秒的sql语句都会记入v$sql_monitor中。 但是如果某个sql语句还没有执行,或者执行时间已经是几天前了,等发现性能问题进行调优的话就会比较困难,采用dbms_advisor.quick_tune是一个不错的选择。如果sql语句比较庞大,比较迷茫的时候至少可以得到一些很重要的思路。 举个简单的例子。 创建一个表t create table t as select *from all_ob
jeanron100
2018/03/15
8660
【DB笔试面试629】在Oracle中,自动收集统计信息的机制有哪些?10g和11g在自动收集统计信息方面有哪些区别?
在Oracle中,自动收集统计信息的机制有哪些?10g和11g在自动收集统计信息方面有哪些区别?
AiDBA宝典
2019/09/29
7760
【DB笔试面试629】在Oracle中,自动收集统计信息的机制有哪些?10g和11g在自动收集统计信息方面有哪些区别?
【DB笔试面试794】在Oracle中,LogMiner是什么?
在Oracle中,LogMiner是什么?其有哪些用途?请简述LogMiner的使用过程。
AiDBA宝典
2020/05/11
1.1K0
模拟业务最小测试用例02
Oracle数据库对很多开发人员而言,基本就只是一个存储数据的仓库,只不过这个仓库功能非常强大,额外提供了很多好用的功能,需要的时候会用就好,不会纠结于某个细节。而对很多DBA而言,正好相反,喜欢沉溺于某些细节上,对某些小知识点对应的原理理解的非常透彻,但却往往很少会站在开发层面认识Oracle。 本文旨在构造一份相对较全面的测试数据,对开发常用的对象都模拟创建一份测试用例,DBA就可以直接拿去做一些基本测试。
Alfred Zhao
2022/05/06
8420
推荐阅读
相关推荐
关于奇怪的并行进程分析(二) (r6笔记第46天)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档