在Oracle数据库上删除日志文件如何重新创build它?

对于我的数据库分配,我们正在研究“数据库损坏”,并要求删除我已经使用命令完成的第二个重做日志文件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,但不是我删除的那个。 我怎样才能恢复这个现在,以便我可以再次打开我的数据库?

我已经查看了数据库创build脚本,并指定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; 

没有。 据说改变了数据库,但它仍然不会启动。 任何想法我可以做到重新创build这个,并能够打开我的数据库了吗?

除非您碰巧拥有c的备份,否则无法重新创build它,包括其中的数据。 您可以启动数据库重置日志并重新创build一个空文件

尝试:

  startup nomount; alter database mount; alter database open resetlogs; 

更多信息http://web.njit.edu/info/limpid/DOC/backup.102/b14191/osrecov009.htm