Oracle数据库恢复问题

我对Oracle非常陌生,试图在win 2000服务器上恢复oracle 8i数据库。

  • 我有一个星期的数据库备份(使用exp命令备份),我想现在恢复它。
  • 现在我无法login通过sqlplus(得到closures正在进行的错误)
  • 我有一个备份,我想恢复它,但甲骨文并没有开始,'imp'命令失败。

我开始sqlplus / as sysdba和以下是我正在尝试做的日志。 有人可以进一步指导我吗?

SQL> shutdown immediate; ORA-01109: database not open Database dismounted. ORACLE instance shut down. SQL> startup; ORACLE instance started. Total System Global Area 143423516 bytes Fixed Size 75804 bytes Variable Size 58105856 bytes Database Buffers 85164032 bytes Redo Buffers 77824 bytes Database mounted. ORA-01589: must use RESETLOGS or NORESETLOGS option for database open SQL> shutdown immediate; ORA-01109: database not open Database dismounted. ORACLE instance shut down. SQL> startup mount; ORACLE instance started. Total System Global Area 143423516 bytes Fixed Size 75804 bytes Variable Size 58105856 bytes Database Buffers 85164032 bytes Redo Buffers 77824 bytes Database mounted. SQL> alter database open; alter database open * ERROR at line 1: ORA-01589: must use RESETLOGS or NORESETLOGS option for database open SQL> alter database open resetlogs; alter database open resetlogs * ERROR at line 1: ORA-01245: offline file 1 will be lost if RESETLOGS is done ORA-01110: data file 1: 'C:\ORACLE\ORADATA\ABCD\SYSTEM01.DBF' 

EXP和IMP不是“备份”。 他们是数据的副本。 他们期望被导入到一个可操作的数据库中(通常用户,授权和表空间已经存在)。 你可以尝试让现有的数据库运行,但是否可能取决于是什么导致它打破。 如果你已经丢失了重要的东西,如系统表空间的数据文件,并没有副本,那就放弃它。

正如DCookie所build议的那样,您最好创build一个新的数据库并导入到这个数据库中。

您不会说出口是针对整个数据库还是针对特定模式,或者是否具有非模式对象(例如PUBLIC SYNONYMS)。

如果你有一个完整的数据库导出,那么我build议创build一个8i数据库,并进行完整的数据库导入(其中将包括非模式对象,用户,表空间等)。 恕我直言,增加数据库版本升级将使事情复杂化。

如果有模式导出,那么您可以查看Oracle的更高版本,因为您必须创build用户,angular色,表空间等,以便无论如何加载。

是否有需要留在8i? 你可以简单的用11g或者10g创build一个空的数据库,然后导入8i数据库导出到你的数据库中,然后你就会变成最新的。 否则,您也可以创build一个空的8i数据库,并使用导入。

运行Oracle数据库configuration助手。 从那里你可以很容易地创build一个数据库实例。