恢复目录比控制文件的优势

1)在没有控制文件的情况下,RMAN也能知道备份的位置
只要启动到nomount状态,就可以执行list backupset summary来查看备份位置。

2)显示数据文件的历史结构
运行report schema at,示例:

点击(此处)折叠或打开

  1. #显示20分钟前的物理结构
  2. RMAN> REPORT SCHEMA AT TIME 'sysdate-20/1440';

  3. Report of database schema for database with db_unique_name PROD
     
    List of Permanent Datafiles
    ===========================
    File Size(MB) Tablespace           RB segs Datafile Name
    ---- -------- -------------------- ------- ------------------------
    1    450      SYSTEM               YES     /disk1/oradata/prod/system01.dbf
    2    197      SYSAUX               YES     /disk1/oradata/prod/sysaux01.dbf
    3    20       UNDOTBS              YES     /disk1/oradata/prod/undotbs01.dbf
    4    10       CWMLITE              YES     /disk1/oradata/prod/cwmlite01.dbf
    5    10       DRSYS                YES     /disk1/oradata/prod/drsys01.dbf
    6    10       EXAMPLE              YES     /disk1/oradata/prod/example01.dbf
    7    10       INDX                 YES     /disk1/oradata/prod/indx01.dbf
    8    10       TOOLS                YES     /disk1/oradata/prod/tools01.dbf
    9    10       USERS                YES     /disk1/oradata/prod/users01.dbf
     
    List of Temporary Files
    =======================
    File Size(MB) Tablespace           Maxsize(MB) Tempfile Name
    ---- -------- -------------------- ----------- --------------------
    1    40       TEMP                 32767       /disk1/oradata/prod/temp01.dbf

3)在恢复目录中创建保存RMAN脚本

点击(此处)折叠或打开

  1. create script recover_controlfile {
  2. startup force nomount;
  3. restore controlfile;
  4. mount database;
  5. recover database;
  6. alter database open resetlogs;
  7. }

  8. #或者通过本地文件创建脚本
  9. create scirpt backup_db from file '/home/oracle/backup.rman';
以上创建的是本地脚本,只能在当前目标数据库上执行;也可以通过create global script创建全局脚本,将可以在所有已注册的数据库上运行。

查看脚本

点击(此处)折叠或打开

  1. #列出所有脚本
  2. list script names;
  3. list global script names;

  4. #查看脚本内容
  5. print script backup_db;
  6. print global script backup_db;
运行脚本

点击(此处)折叠或打开

  1. run { execute script recover_controlfile };
  2. run { execute global script recover_controlfile };
4)通过reset database恢复到以前的化身。

请使用浏览器的分享功能分享到微信等