ORA-10873解决办法

今天,发现SAP系统的oracle数据库宕掉了。报错ORA-10873,经过查证解决该问题。记录一下,备忘。

一、问题

Oracle版本为12.1.0.2.0,在启动服务器后启动数据库startup,报错ORA-10873。

二、查证

到SAP Support Portal上搜索 ORA 10873,收到一个note2501445 - error ORA-10873, ORA-01110 during starting up oracle

上面的描述与该问题症状一致,建议转到note4162 - Missing "end backup"中的Problem 2.

原因是

Reason and Prerequisites

  1. Forgotten or missing "end backup" after manual ONLINE DB backup or after a backup tool (for example, BRBACKUP) has crashed  or
  1. DB crash or "shutdown abort" during an ONLINE backup after "alter tablespace <tspname> begin backup"

造成这一问题有2种可能:

  1. 手动在线备份数据库时忘记或缺失了"end backup";
  2. 在数据库在线备份的时候,数据库崩溃或被强行关闭了;

显然我们没有手动操作,应该是在备份脚本运行的时候数据库崩溃了。那么按照解决方案搞一下。

三、解决问题 

关闭数据库,忽略报错。打开数据库到mount状态,并检查一下。

shutdown immediate;
startup mount;
select instance_name, status from v$instance;
select name, open_mode from v$database;

检查一下是哪几个数据文件还在backup mode状态。虽然报错是数据文件1,但是很可能有几个数据文件在这个状态而报错只报第一个数据文件。果然,v$backup视图里面有3个数据文件是ACTIVE的。那么,我们也就没有必要一个一个来处理了,直接改一下数据库的状态吧。

select * from v$backup;

解决问题的关键步骤就是这行命令,把数据库从backup的mode里解救出来。

alter database end backup;

再检查一下没有数据文件在备份的状态了,打开数据库,问题解决 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章