Oracle 11g和调度程序

问题描述

如何在禁用计划程序作业的情况下启动数据库

我有一个内部oracle错误,导致数据库停止。该错误在作业可以访问的表上。当我启动数据库(使用sqlplus启动)时,由于作业已启动,数据库立即停止。

一个选择是,当我关闭数据库时,是否可以以某种方式删除损坏的表或作业?

解决方法

以挂载模式启动数据库并将作业队列进程设置为零

sql>startup mount
sql>show parameter job_queue_processes
PARAMETER_NAME                                               TYPE        VALUE
------------------------------------------------------------ ----------- ----------
job_queue_processes                                          integer     4000
sql>alter system set job_queue_processes=0;
sql> alter database open;

修复导致实例崩溃的表,并将作业队列进程恢复为原始值,然后弹回实例

SQL>ALTER SYSTEM SET job_queue_processes=4000;
SQL>startup force;

alert.log文件中的相关行

2020-09-24T10:10:17.295728-05:00
Completed: ALTER DATABASE   MOUNT
2020-09-24T10:11:07.875673-05:00
ALTER SYSTEM SET job_queue_processes=0 SCOPE=BOTH; 
2020-09-24T10:13:30.255114-05:00
alter database open
---------
2020-09-24T10:33:10.232345-05:00
ALTER SYSTEM SET job_queue_processes=4000 SCOPE=BOTH;