ORA- 01157 /无法连接到数据库

这是这个问题的后续。

首先让我说,我不是一个DBA,所以我真的很失落。

几个星期前,我们失去了与我们的一个SID'S的联系。 所有其他服务正在工作,但这一个特别是不是。

试图连接时,我们得到了这条消息

ORA-01033:ORACLE初始化或关机正在进行中

试图alter database open结束了

 ORA-01157: cannot identify/lock data file 6 - see DBWR trace file ORA-01110: data file 6: '/u01/app/oracle/oradata/xxx/xxx_data.dbf' 

我试图closures/重新启动数据库,但得到这个消息。

 Total System Global Area 566231040 bytes Fixed Size 1220604 bytes Variable Size 117440516 bytes Database Buffers 444596224 bytes Redo Buffers 2973696 bytes Database mounted. ORA-01157: cannot identify/lock data file 6 - see DBWR trace file ORA-01110: data file 6: '/u01/app/oracle/oradata/xxx/xxx_data.dbf' 

当所有这些都继续相同时,我删除了dbf文件(rm xxx_data.dbf xxx_index.dbf),并使用touch xxx_data.dbf重新创build它们。

我也尝试使用重新创build表空间

 `CREATE TABLESPACE DATA DATAFILE XXX_DATA.DBF` 

得到了

 Database not open 

正如我所说,我不知道这是多么糟糕,或者我有多less访问我的数据库(至less,这个SID,其他人正在工作)。

我可以想象,最后一个资源就是把所有东西都扔掉,然后重新创build,但是我不知道如何去做,而且我希望有一个不太具有破坏性的解决scheme。

任何帮助将不胜感激 。 提前致谢。

删除dbf文件几乎毁了你的数据库。 你将需要一些专家的帮助,希望能够使用现有的数据库。

您将需要从备份中恢复。 你有备份,对吧?

如果您没有备份,则需要从头开始重新创build数据库,并从另一个实例导入数据。

您可以尝试打开数据库的其余部分。 正如DCookie之前所说,删除文件(xxx_data.dbf xxx_index.dbf)严重损坏了您的数据库。 如果你没有任何备份,而且数据对你来说真的很重要,那么我只能强调一点,那就是不要再用这个系统来动手了,从甲骨文的专业服务中获得一些帮助。

如果您想自己尝试恢复,则可以将损坏的表空间脱机,然后从数据库的其余部分卸载数据。

 export ORACLE_SID=<your_lost_SID> sqlplus /nolog conn / as sysdba startup mount select TABLESPACE_NAME , FILE# from v$datafile_header where FILE# = 6; 

此时,您可以在数据库中查询损坏的表空间的名称。 现在我们正在脱机。 并开始数据库的其余部分。

 alter database datafile '/u01/app/oracle/oradata/xxx/xxx_data.dbf' offline; 

如果你得到像这样的东西:

 ORA-01145: offline immediate disallowed unless media recovery enabled 

您正在以noarchivelog模式运行数据库。 在这种情况下这真的很糟糕,你应该停下来寻求帮助! 现在不要再去了。 请! 只closures实例。 也许专家可以帮忙。

如果表空间处于脱机状态,则可以继续并使数据库的其余部分联机。

 alter database open; 

祝你好运!