instance和media损坏恢复-RMAN(四) --恢复

本文详细介绍Oracle数据库在不同模式下的数据恢复流程,包括非归档模式和归档模式下的恢复步骤,以及冷备份和热备份的具体操作方法。

1.非归档模式下数据恢复(原磁盘损坏的情况下)

  1、把归档模式变为非归档模式

     在mount状态下,执行:SQL> alter database noarchivelog;

 

   2、SQL>  alter database open;

   3、查看SQL> archive log list;

   4、修改pfile 

   5、根据pfile创建spfile

       SQL> create spfile from pfile='E:/oracle/product/10.2.0/admin/orcl/pfile/init.or
         a.6182010122037';

   7、查看文件

      select file#,name from v$datafile;

             FILE# NAME
--------- -------------------------------------------------------
        1 E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/SYSTEM01.DBF
        2 E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/UNDOTBS01.DBF
        3 E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/SYSAUX01.DBF
        4 E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/USERS01.DBF
        5 E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/EXAMPLE01.DBF
        6 E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/TABS.DBF

   8、修改文件路径

     SQL> alter database rename file 'E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/SYSTEM01.
DBF' to 'E:/oracle/ubackup/SYSTEM01.DBF';

 

9、查看临时文件

  select file#,name from v$temp

10、修正临时文件路径

 11、查看redo.log文件路径

 SQL> select group#,type,member from v$logfile;

12、修正redo.log文件路径

SQL> alter database rename file 'E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/REDO01.LO
G' to 'E:/oracle/ubackup/REDO01.LOG';

13、修改数据库为open状态

 alter database open;

14、验证数据库

 select * from emp;

 

2.未保留redo.log文件而创建此文件(非归档模式下数据恢复)

  1、此数据库在mount状态下。

  2、执行:SQL> recover database util cancel using backup controlfile;

  3、输入cancel

  4 、执行:SQL> alter database open resetlogs;

 

3.归档模式下的恢复

  1、相关视图

       v$recover_file,v$archived_log,v$recovery_log

 

 3.归档模式下完全恢复

     (准备)

 

1.冷备份所有文件(表T里一条记录),

2.热备份tab.dbf数据文件(表T里二条记录)   

  1、数据库在关闭状况下,恢复

 

    1.删除所有数据文件(模拟数据文件损坏)

 

    2.拷贝冷备份数据文件到原目录下

  

    3.执行startup报错

     SQL> startup;
ORACLE 例程已经启动。

Total System Global Area  293601280 bytes
Fixed Size                  1248600 bytes
Variable Size              79692456 bytes
Database Buffers          205520896 bytes
Redo Buffers                7139328 bytes
数据库装载完毕。
ORA-01113: 文件 1 需要介质恢复
ORA-01110: 数据文件 1: 'E:/ORACLE/UBACKUP/SYSTEM01.DBF'

 

4.查看需要恢复的文件

  SQL> select * from v$recover_file;

     FILE# ONLINE  ONLINE_ ERROR     CHANGE# TIME
---------- ------- ------- ------ ---------- --------------
         1 ONLINE  ONLINE            5956252 05-9月 -10
         2 ONLINE  ONLINE            5956252 05-9月 -10
         3 ONLINE  ONLINE            5956252 05-9月 -10
         4 ONLINE  ONLINE            5956252 05-9月 -10
         5 ONLINE  ONLINE            5956252 05-9月 -10
         6 ONLINE  ONLINE            5956252 05-9月 -10

已选择6行。

 

5.关闭自动恢复

 SQL> set autorecovery off; 

 

6.恢复数据文件

  SQL> recover database;

或逐个恢复文件

  SQL>recover datafile 1;

 

7.再次查看需要恢复的文件

 SQL> select * from v$recover_file;

 

8.修正数据库为open状态

9.检验表T(多条记录)

 

2.据库在关闭状况下,恢复

准备:在表T中插入一条记录

破坏数据文件tabs.dbf

向表T中插入一条记录(报错)

1.查看要恢复的文件

 SQL> select * from v$recover_file;

 

2.offline此损坏的数据文件

 SQL> alter database datafile 6(文件标号) offline;

 

3.拷贝tabs.dbf从冷备或热备中拷贝过来

 

4.恢复数据文件

 SQL> recover datafile 6;

 

5.再次查询要恢复的文件

6.查看各数据文件状态

 SQL> select file#,ts#,status,name from v$datafile;

     FILE#        TS# STATUS  NAME
---------- ---------- ------- ----------------------------------------
         1          0 SYSTEM  E:/ORACLE/UBACKUP/SYSTEM01.DBF
         2          1 ONLINE  E:/ORACLE/UBACKUP/UNDOTBS01.DBF
         3          2 ONLINE  E:/ORACLE/UBACKUP/SYSAUX01.DBF
         4          4 ONLINE  E:/ORACLE/UBACKUP/USERS01.DBF
         5          6 ONLINE  E:/ORACLE/UBACKUP/EXAMPLE01.DBF
         6          7 OFFLINE E:/ORACLE/UBACKUP/TABS.DBF

7.恢复数据文件为可用状态

 SQL> alter database datafile 6 online;

 

 8.查看验证

 SQL> select * from t;

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值