问题描述
如何在禁用计划程序作业的情况下启动数据库?
我有一个内部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;