上一主题: 手工恢复下一主题: 从脱机完全备份中恢复


恢复控制文件已丢失或损坏的数据库

如果控制文件已丢失或损坏,必须先关闭数据库并恢复控制文件,然后才能恢复数据库。 要关闭数据库,恢复控制文件,然后恢复数据库,请执行以下步骤。

恢复控制文件已丢失或损坏的数据库

  1. 通过在 SQL*Plus 提示符下输入以下命令来关闭数据库:
    SHUTDOWN;
    
  2. 在相应的提示符下,启动和挂接数据库,然后开始恢复进程。 在 SQL*Plus 提示符下输入以下命令:
    CONNECT SYS/SYS_PASSWORD AS SYSDBA;
    STARTUP MOUNT;
    RECOVER DATABASE USING BACKUP CONTROLFILE;
    
  3. Oracle 提示您输入日志文件名。 Oracle 会先查找存档日志文件,然后自动为存在的文件提供正确的名称。 如果 Oracle 找不到所需的存档日志文件,您必须手工应用所需的联机重做日志。

    手工应用联机重做日志时,必须提供完整的路径和文件名。 如果输入了错误的日志,请重新输入以下命令:

    RECOVER DATABASE USING BACKUP CONTROLFILE;
    

    出现提示时,请提供正确的联机重做日志文件名。 继续该操作步骤,直至 Oracle 成功应用所有的日志。

  4. 在 SQL*Plus 提示符下输入以下命令来使数据库返回到联机状态,并重置日志:
    ALTER DATABASE OPEN RESETLOGS;
    
  5. 转到存储存档重做日志的目录,并删除所有日志文件。
  6. 如果某些表空间仍处于脱机状态,请在 SQL*Plus 提示符下输入以下命令来使其返回到联机状态:
    ALTER TABLESPACE TABLESPACE_NAME ONLINE;
    
  7. 如果正在使用 RMAN 恢复包含已备份控制文件的整个数据库,请重新同步 RMAN 中的数据库信息,以反映新恢复的数据库。 要重新同步数据库信息,请执行以下步骤:
    1. 以 oracle 身份登录。
    2. 输入以下命令将 oracle SID 设置为恢复后的数据库 SID:
      ORACLE_SID=database SID
      
    3. 输入以下命令完成该过程:
      rman target dbuser/ dbuserpassword rcvcat
      catowner/catownerpassword@rman service name
      reset database
      

      其中:

      • dbuser 是对已恢复的数据库具有 dba 权限的用户。
      • dbuserpassworddbuser 的密码。
      • catowner 是 Oracle 恢复管理器编录所有者的 Oracle 用户名。
      • rman service name 是用来访问装有 rman 编录的数据库的服务名。