mik*_*ang 6 database oracle dbms-job
我的 dbms_job 已经运行了近三十天了。
总时间不断增加,但我找不到正在运行的作业的任何信息。
当我执行“select * from dba_jobs;”的sql时,结果显示没有作业正在运行。
我把它设置为已损坏,但不起作用。
我怎样才能安全地停止这个 dbms_job ?
DBA_JOBS
列出数据库中创建的所有作业。您可以使用DBA_JOBS_RUNNING
视图列出实例中当前正在运行的所有作业。
当我执行“select * from dba_jobs;”的sql时,结果显示没有作业正在运行。
这显示了使用包创建的所有作业DBMS_JOBS
。该作业可能是使用DBMS_SCHEDULER
包创建的。
SQL> select job from user_jobs;
JOB
----------
99
Run Code Online (Sandbox Code Playgroud)
我只使用DBMS_JOB
名为 的包创建了一项作业99
。其他是使用DBMS_SCHEDULER
包创建的,可以使用以下命令查看:
SQL> select job_name from user_scheduler_jobs;
Run Code Online (Sandbox Code Playgroud)
根据文档 -
停止作业
请注意,一旦作业启动并运行,就没有简单的方法可以停止该作业。
停止工作并不容易。
不知道您使用的是哪个版本的Oracle数据库。但从 Oracle 10g 开始,您可以使用以下查询来列出计划的作业。
SQL>select * from all_scheduler_jobs;
Run Code Online (Sandbox Code Playgroud)
ALL_SCHEDULER_JOBS
ALL_SCHEDULER_JOBS 显示有关当前用户可访问的调度程序作业的信息。更多的...
使用以下查询查找当前正在运行的作业。
SQL>select job_name, session_id, running_instance, elapsed_time, cpu_used
from user_scheduler_running_jobs;
Run Code Online (Sandbox Code Playgroud)
并停止-
SQL>EXEC DBMS_SCHEDULER.STOP_JOB (job_name => 'JOB_NAME');
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
92740 次 |
最近记录: |