oracle 控制文件重建

3.5 恢复与重建

3.5.1恢复控制文件方法

控制文件一旦损坏,系统将不能正常工作。受损的控制文件会记录在告警日志中,恢复或重建控制文件必须使系统在NOMOUNT

1)单个文件损坏了:参照多元化章节,通过简单复制解决。

2)所有的控制文件丢失:

①如果有binary控制文件备份,利用备份恢复控制文件,

②如果没有备份,利用trace脚本文件重新创建控制文件(代价:丢失归档记录信息和RMAN信息)

3.5.2重建控制文件示例

第一步Mountopen下生成trace脚本

SQL>alter database backup controlfile to trace as '/u01/oradata/prod/con.trace';

第二步、启动到nomount 状态下准备执行trace脚本

SQL> startup force nomount

第三步、执行重建控制文件语句

SQL>CREATE CONTROLFILE REUSE DATABASE "prod" NORESETLOGS  ARCHIVELOG

    MAXLOGFILES 16

    MAXLOGMEMBERS 3

    MAXDATAFILES 100

    MAXINSTANCES 8

    MAXLOGHISTORY 292

LOGFILE

  GROUP 1 '/u01/oradata/prod/redo01.log'  SIZE 50M,

  GROUP 2 '/u01/oradata/prod/redo02.log'  SIZE 50M,

  GROUP 3 '/u01/oradata/prod/redo03.log'  SIZE 50M

-- STANDBY LOGFILE

DATAFILE

  '/u01/oradata/prod/system01.dbf',

  '/u01/oradata/prod/sysaux01.dbf',

  '/u01/oradata/prod/users01.dbf',

  '/u01/oradata/prod/example01.dbf',

  '/u01/oradata/prod/test01.dbf',

  '/u01/oradata/prod/undotbs01.dbf'

CHARACTER SET ZHS16GBK

;

可以看到执行后三个控制文件又重新建立了。这时数据库已在mount

 

 

根据错误信息,它指示数据库中的数据文件1需要进行媒体恢复。这可能是由于数据文件在某种情况下损坏或丢失了关键的信息。

要解决此问题,您可以采取以下步骤:

  1. 确保数据库备份:在执行媒体恢复之前,请确保拥有数据库的可靠备份。这样可以确保在恢复过程中出现问题时,您可以恢复数据库至备份无损状态。

  2. 媒体恢复:执行以下步骤进行数据库的媒体恢复:

    a. 将数据库切换至归档模式(如果尚未处于归档模式):

    ALTER DATABASE ARCHIVELOG;

    b. 关闭数据库:

    SHUTDOWN IMMEDIATE;

    c. 将数据库启动至恢复模式:

    STARTUP MOUNT;

    d. 开始媒体恢复操作:

    RECOVER DATABASE;

    e. 完成媒体恢复后,将数据库打开:

    ALTER DATABASE OPEN;
  3. 检查数据文件和磁盘状态:完成媒体恢复后,您还应检查数据文件和磁盘的状态,确保其正常运行和可用性。

如果问题仍然存在或您遇到其他错误,请提供完整的错误信息,以便我能更好地帮助您解决问题。同时请注意,在执行媒体恢复之前一定要确保备份数据库,以免发生数据丢失。

posted @ 2024-03-07 19:56  不会游泳的鱼丶  阅读(115)  评论(0编辑  收藏  举报