备注:
本文整理自我的ITPUB博客20180614的文章《 Oracle sysman.mgmt_jobs 导致数据库自动重启》,链接如下:
https://blog.itpub.net/29785807/viewspace-2156188/
问题现象:
几年前的一家公司,刚入职时从乙方单位接手了全部的数据库,其中一个Oracle数据库,检查告警日志,发现数据库每天凌晨2点自动重启,由于数据库每次都能重启成功,并且对应的应用也能正常使用,之前的同事并没有发现这个问题。
Tue Jun 12 02:00:28 2018
Shutting down instance (immediate)
Stopping background process SMCO
Shutting down instance: further logons disabled
数据库环境:
OS:Windws Server 2012
DB:Oracle 11.2.0.1.0
问题分析:
咨询同事没有设置过数据库自动重启的任务;
检查操作系统也没发现对应的计划任务,
自动重启之前,告警日志没有报错;
查看2点生成的所有trace日志,发现每天的trace日志都和OEM有关,部分内容如下:
*** MODULE NAME:(OEM.CacheModeWaitPool)
--------Dumping Sorted Master Trigger List --------
Trigger Owner : SYSMAN
Trigger Name : JOB_SUMM_INS_TRIGGER2
Trigger Owner : SYSMAN
Trigger Name : JOB_SUMM_INS_TRIGGER
……
问题原因:
推测问题原因是:当初的数据库实施人员并不是专业的DBA,在使用DBCA创建数据库时,在第四步,选择了”配置Enterprise Manager”,这个配置会有一个"启用到恢复区的每日磁盘备份"的选项,默认时间就是每天2点,正是因为这个原因导致数据库每天2点自动重启,因为数据库是非归档模式,Oracle每天2点通过RMAN自动停库做冷备;
闪回区可以看到通过OEM自动备份的文件如下,由于闪回区空间满了,导致后续备份都失败了:
SELECT start_time, end_time, operation, status
FROM V$RMAN_STATUS
order by start_time desc;
解决方案:
How to stop Database Autobackup Every Day At 02:00 Am which was configured during Database creation using DBCA ? (文档 ID 1992075.1)
-- Identify the Backup Job name
select JOB_OWNER, JOB_NAME
from SYSMAN.MGMT_JOB
where JOB_NAME like '%BACKUP%';
-- Delete the Job from DB Control Jobs repository
begin
sysman.mgmt_jobs.delete_job('BACKUP_EASORCL_000001', 'SYS');
end;
删除时会报如下错误:
—通过下面的文档可以解决;
---How to Force Stop a Stuck Job in Grid Console (文档 ID 430626.1)
begin
sysman.mgmt_job_engine.stop_all_executions_with_id('F01FFCEEC1DD42EB94B6D12622E25EB4',
TRUE);
end;
begin
sysman.mgmt_jobs.delete_job('BACKUP_EASORCL_000001', 'SYS');
end;
select JOB_OWNER, JOB_NAME,JOB_ID
from SYSMAN.MGMT_JOB
where JOB_NAME like '%BACKUP%';
###chenjuchao 20241011###
欢迎关注我的公众号《IT小Chen》