【问题标题】:Oracle job that runs a batch file运行批处理文件的 Oracle 作业
【发布时间】:2013-06-03 10:42:44
【问题描述】:

所以我的数据库中有一个用户,我想用它来运行一个。 .bat 文件。最简单的方法是使用 Oracle 作业。

所以我创建了我的工作,但是当我尝试运行它时,它给了我以下错误:

ORA-27370: job slave failed to launch a job of type EXECUTABLE
ORA-27300: OS system dependent operation:accessing job scheduler service failed with status: 2
ORA-27301: OS failure message: The system cannot find the file specified.
ORA-27302: failure occurred at: sjsec 6a
ORA-27303: additional information: The system cannot find the file specified.

出于好奇,我创建了相同的作业,并在其架构中使用 SYS 用户的确切设置(是的,我知道这不是推荐的……),当我运行作业时,它运行良好。 所以我认为可能涉及一些权限,所以我给了我的用户,SYS 用户拥有的所有系统特权和角色,看看这是否是问题所在。

但是,我遇到了同样的错误。任何想法为什么这在 sys 架构中有效,而不是在我的用户架构中,尽管用户设置了所有权限?:|

【问题讨论】:

  • .bat - 所以您的数据库安装在 Windows 操作系统上?
  • 另外,什么版本的数据库?批处理文件有什么作用?
  • 是的,我使用 Windows。 DB 是 oracle 11g 标准。批处理文件使用 oracle 中的 exp 工具对数据库进行备份
  • 这份工作的所有者是谁? (从 dba_scheduler_jobs 中选择 *)SYS?另外,您可以发布调度程序设置代码吗?
  • @tbone 当job用sys创建时是sys,用其他用户创建时是其他用户

标签: oracle batch-file plsql jobs


【解决方案1】:

您没有提供有关您正在运行的确切命令的任何信息。我们将不得不猜测。

根据您的描述,我会说这种行为是典型的“SYS 很特殊”。在DBA guide 中,我们可以看到,如果帐户为 SYS 且未提供凭据,则外部本地作业的行为会有所不同。

所以我猜您是在没有凭据的情况下使用 DBMS_SCHEDULER 运行您的作业,并且默认的非 SYS 操作系统帐户与 Oracle 安装程序帐户具有不同的操作系统权限。

尝试使用具有足够特权的操作系统帐户 create a credentialDBMS_SCEDULER.CREATE_CREDENTIAL 并将此凭据分配给您的工作。

【讨论】:

    猜你喜欢
    • 2020-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-25
    • 1970-01-01
    • 2021-01-15
    • 2015-07-30
    相关资源
    最近更新 更多