对于我的数据库任务,我们正在调查“数据库损坏”,并要求我删除第二个重做日志文件,我已使用该命令完成此操作:rm log02a.rdo
它位于 $HOME/ORADATA/u03 目录中。
现在我启动了我的数据库,startup pfile=$PFILE nomount
然后我使用该命令挂载它,alter database mount;
现在当我尝试打开它时,alter database open;
它给出了这个错误:
ORA-03113: end-of-file on communication channel
Process ID: 22125
Session ID: 25 Serial number: 1
我猜想这是因为第二个重做日志文件丢失了。仍然有 log01a.rdo,但不是我已经删除的那个。我现在该如何恢复它以便再次打开我的数据库?
我查看了数据库创建脚本,它指定 log02a.rdo 文件的大小为 10M 并且属于第 2 组的一部分。
如果我这样做,select group#, member from v$logfile;
我会得到:
1
/oradata/student_db/user06/ORADATA/u03/log01a.rdo
2
/oradata/student_db/user06/ORADATA/u03/log02a.rdo
3
/oradata/student_db/user06/ORADATA/u03/log03a.rdo
4
/oradata/student_db/user06/ORADATA/u03/log04a.rdo
因此它是组 2 的一部分。如果我尝试再次添加 log02a.rdo 文件,则“已经是数据库的一部分”。如果我删除组 2,然后使用以下命令再次添加它:
ALTER DATABASE
ADD LOGFILE GROUP 2 ('$HOME/ORADATA/u03/log02a.rdo')
SIZE 10M;
什么都没有。据说会更改数据库,但仍然无法启动。有什么想法我可以做什么来重新创建它并能够再次打开我的数据库吗?
答案1
除非您恰好有备份,否则无法重新创建它(包括其中的数据)。您可以启动数据库,重置日志并重新创建一个空文件
尝试:
startup nomount;
alter database mount;
alter database open resetlogs;
更多信息http://web.njit.edu/info/limpid/DOC/backup.102/b14191/osrecov009.htm