ARCHIVELOG模式下用户管理的完全恢复—恢复打开的数据库,并且数据库最初是关闭的

继续使用前面的试验环境,可以看见user1用户下面有两条记录

  1. SQL> show user  
  2. USER 为 "USER1"  
  3. SQL> select * from test;  
  4.   
  5.         ID VALUE  
  6. ---------- --------------------  
  7.          1 a  
  8.          2 b  
SQL> show user
USER 为 "USER1"
SQL> select * from test;

        ID VALUE
---------- --------------------
         1 a
         2 b

现在我就正常关闭数据库,删除现在的最新的数据文件

  1. SQL> conn /as sysdba  
  2. 已连接。  
  3. SQL> shutdown immediate  
  4. 数据库已经关闭。  
  5. 已经卸载数据库。  
  6. ORACLE 例程已经关闭。  
  7. SQL> ! rm -rf /u01/app/oracle/oradata/orcl/ttb1.dbf  
SQL> conn /as sysdba
已连接。
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> ! rm -rf /u01/app/oracle/oradata/orcl/ttb1.dbf

启动数据库会发现缺少数据文件

  1. SQL> conn /as sysdba  
  2. 已连接到空闲例程。  
  3. SQL> startup  
  4. ORACLE 例程已经启动。  
  5.   
  6. Total System Global Area  167772160 bytes  
  7. Fixed Size                  1266392 bytes  
  8. Variable Size             117443880 bytes  
  9. Database Buffers           46137344 bytes  
  10. Redo Buffers                2924544 bytes  
  11. 数据库装载完毕。  
  12. ORA-01157: 无法标识/锁定数据文件 14 - 请参阅 DBWR 跟踪文件  
  13. ORA-01110: 数据文件 14: '/u01/app/oracle/oradata/orcl/ttb1.dbf'  
SQL> conn /as sysdba
已连接到空闲例程。
SQL> startup
ORACLE 例程已经启动。

Total System Global Area  167772160 bytes
Fixed Size                  1266392 bytes
Variable Size             117443880 bytes
Database Buffers           46137344 bytes
Redo Buffers                2924544 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 14 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 14: '/u01/app/oracle/oradata/orcl/ttb1.dbf'

还记得前面备份过一次ttb1表空间吗,但是它不是最新的数据文件

  1. SQL> ! cp /u01/app/oracle/backup/ttb1.dbf /u01/app/oracle/oradata/orcl/ttb1.dbf  
  2.   
  3. SQL> select status from v$instance;  
  4.   
  5. STATUS  
  6. ------------  
  7. MOUNTED  
  8.   
  9. SQL> alter database open;  
  10. alter database open  
  11. *  
  12. 第 1 行出现错误:  
  13. ORA-01113: 文件 14 需要介质恢复  
  14. ORA-01110: 数据文件 14: '/u01/app/oracle/oradata/orcl/ttb1.dbf'  
SQL> ! cp /u01/app/oracle/backup/ttb1.dbf /u01/app/oracle/oradata/orcl/ttb1.dbf

SQL> select status from v$instance;

STATUS
------------
MOUNTED

SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01113: 文件 14 需要介质恢复
ORA-01110: 数据文件 14: '/u01/app/oracle/oradata/orcl/ttb1.dbf'

将数据文件离线就能够open数据库了

  1. SQL> alter database datafile 14 offline;  
  2.   
  3. 数据库已更改。  
  4.   
  5. SQL> alter database open;  
  6.   
  7. 数据库已更改。  
  8.   
  9. SQL> select * from v$recover_file;  
  10.   
  11.      FILE# ONLINE  ONLINE_ ERROR                                                                CHANGE# TIME  
  12. ---------- ------- ------- ----------------------------------------------------------------- ---------- --------------  
  13.         14 OFFLINE OFFLINE                                                                      1004104 08-10月-11  
  14.   
  15. SQL> recover datafile 14;  
  16. 完成介质恢复。  
  17. SQL> alter database datafile 14 online;  
  18.   
  19. 数据库已更改。  
SQL> alter database datafile 14 offline;

数据库已更改。

SQL> alter database open;

数据库已更改。

SQL> select * from v$recover_file;

     FILE# ONLINE  ONLINE_ ERROR                                                                CHANGE# TIME
---------- ------- ------- ----------------------------------------------------------------- ---------- --------------
        14 OFFLINE OFFLINE                                                                      1004104 08-10月-11

SQL> recover datafile 14;
完成介质恢复。
SQL> alter database datafile 14 online;

数据库已更改。

查看结果

  1. SQL> conn user1/user1  
  2. 已连接。  
  3. SQL> select  * from test;  
  4.   
  5.         ID VALUE  
  6. ---------- --------------------  
  7.          1 a  
  8.          2 b  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值