Oracle 9.2 ORA-01122 与 UNDOTBS01.DBF 相关的问题

Oracle 9.2 ORA-01122 与 UNDOTBS01.DBF 相关的问题

我们的备份出了问题。我做了什么

关闭数据库

恢复备份

重启数据库

之后我收到了这个错误

ORA-01122: Datenbank-Datei 2 bringt Fehler bei Verifizierungspruefung
ORA-01110: Datendatei 2: 'D:\ORACLE\ORA92ABO\ABO\UNDOTBS01.DBF'
ORA-01207: Datei neuer als Kontrolldatei - alte Kontrolldatei

控制文件位于 C:\oracle ... 而数据库文件位于 d:\oracle\ora92abo...

我的猜测是,备份程序在备份 d:\oracle 文件和 c:\controlfile 之间重新启动数据库。因此,在两次备份之间存在数据库运行的时间。

我觉得那很糟糕。

我在 Google 上搜索到 UNDOTBS01.DBF 与克隆有关,但我们目前不使用/不需要。

编辑:备份方法的详细信息

步骤 1:通过关机

spool d:\oracle\01shutdon.log
connect / AS SYSDBA
shutdown immediate
exit

步骤2:数据传输

使用 syncback 将数据库文件夹备份到 NAS 使用 xcopy 将控制文件备份到 NAS

步骤3:重启

spool d:\oracle\02startup.log
connect / AS SYSDBA
startup
exit

答案1

好的,这就是要做的事情。显然,在这里代入您自己的值。

  1. 从磁盘中删除 UNDOTBS DBF。您仍然有备份,所以没问题。
  2. sqlplus / 作为 sysdba
  3. 启动
  4. 它会抱怨缺少 DBF,不用担心
  5. 改变系统设置undo_management = 手动范围=spfile;
  6. 关机并重新启动
  7. 修改数据库数据文件'D:\ORACLE\ORA92ABO\ABO\UNDOTBS01.DBF' 脱机删除;
  8. 改变数据库打开;
  9. 删除表空间undotbs;
  10. 重新创建 UNDO 表空间。需要它。
  11. 关机并重新启动

你真的真的需要读一些远程管理文档...

答案2

首先 - 当你进行恢复时,你是否也恢复了控制文件?我知道这很明显,但无论如何还是要检查一下。

在 Oracle 中,有一种东西叫做 SCN,即系统控制编号。每次执行 COMMIT 时,SCN 都会增加 1。数据库的 SCN 保存在每个 DBF 的标题和控制文件中。此错误意味着您的 UNDO 表空间(克隆???不,它与回滚 - 撤消 - 事务有关)数据文件的 SCN 高于控制文件。也就是说,控制文件比 DBF 更旧。

您究竟是如何进行备份的?是用 RMAN 吗?还是在数据库运行时复制 DBF……?好消息是,如果您有一个好的备份,那么就不需要担心其中正在进行的事务。

您可以通过以下两种方法之一来解决这个问题。首先,您可以继续尝试启动它 - 每次启动尝试都会将 SCN 增加 1,因此最终控制文件将通过 DBF。这可能需要一段时间。或者您可以尝试重新创建控制文件。找到另一个可以运行的 Oracle,然后执行ALTER DATABASE BACKUP CONTROLFILE TO TRACE AS 'c:\temp\mycontrolfile.ctl';使用 DB 名称和 DBF 的新位置编辑该文件,启动并运行该脚本,它将生成一个新的控制文件。然后您应该能够OPEN RESETLOGS

然而,如果您的备份不好,您就无能为力了。

相关内容