ORACLE之不完全恢复:基于时间的恢复

ORACLE之不完全恢复:基于时间的恢复

  • 使用备份控制文件,基于时间的恢复。

一、制造场景:创建数据

记录当前信息,插入一行数据(5),再观察时间和SCN号,再插入一行数据(6),再观察时间和SCN号,每次执行后都记录这些信息。commit

SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';

Session altered.

SQL> select CURRENT_SCN from v$database;

CURRENT_SCN
-----------
    2241126

SQL> select sysdate from dual;

SYSDATE
-------------------
2021-02-15 09:54:53

SQL> select * from hr.t1;

        ID
----------
         1
         2
         3
         4

SQL> insert into hr.t1 values(5);

1 row created.

SQL> select CURRENT_SCN from v$database;

CURRENT_SCN
-----------
    2241161

SQL> select sysdate from dual;

SYSDATE
-------------------
2021-02-15 09:56:27

SQL> commit;

Commit complete.

SQL> select CURRENT_SCN from v$database;

CURRENT_SCN
-----------
    2241189

SQL> select sysdate from dual;

SYSDATE
-------------------
2021-02-15 09:57:28

SQL> insert into hr.t1 values(6);

1 row created.

SQL> select CURRENT_SCN from v$database;

CURRENT_SCN
-----------
    2241199

SQL> select sysdate from dual;

SYSDATE
-------------------
2021-02-15 09:57:45

SQL> commit;

Commit complete.

SQL> select CURRENT_SCN from v$database;

CURRENT_SCN
-----------
    2241204

SQL> select sysdate from dual;

SYSDATE
-------------------
2021-02-15 09:57:52

SQL>


二、执行恢复:恢复到5的数据,6之前。

从上面记录的数据,我们确定SCN号为:2241189(插入5,然后commit的SCN号),此时的时间为:2021-02-15 09:57:28

  1. shutdown abort

  2. 将数据文件全部干掉
    在这里插入图片描述

  3. 然后从我们的备份中拷贝回来:
    在这里插入图片描述

  4. 启动数据库到mount状态,并执行恢复

    恢复命令:
    recover database unsing backup controlfile until time ‘2021-02-15 09:57:28’;

    SQL> startup mount;
    ORACLE instance started.
    
    Total System Global Area  838860800 bytes
    Fixed Size                  8626240 bytes
    Variable Size             348131264 bytes
    Database Buffers          473956352 bytes
    Redo Buffers                8146944 bytes
    Database mounted.
    SQL> recover database unsing backup controlfile until time '2021-02-15 09:57:28';
    ORA-00905: missing keyword
    
    
    SQL> recover database unsing backup controlfile until time '2021-02-15 09:57:28';
    ORA-00905: missing keyword
    
    
    SQL> recover database using backup controlfile until time '2021-02-15 09:57:28';
    ORA-00279: change 2239494 generated at 02/14/2021 04:40:36 needed for thread 1
    ORA-00289: suggestion : /u01/app/oracle/archive2/arch_orcl_1_3_1064464371.dbf
    ORA-00280: change 2239494 for thread 1 is in sequence #3
    
    
    Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
    /u01/app/oracle/archive2/arch_orcl_1_3_1064464371.dbf
    ORA-00279: change 2240089 generated at 02/14/2021 04:55:35 needed for thread 1
    ORA-00289: suggestion : /u01/app/oracle/archive2/arch_orcl_1_4_1064464371.dbf
    ORA-00280: change 2240089 for thread 1 is in sequence #4
    ORA-00278: log file '/u01/app/oracle/archive2/arch_orcl_1_3_1064464371.dbf' no
    longer needed for this recovery
    
    
    Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
    /u01/app/oracle/archive2/arch_orcl_1_4_1064464371.dbf
    Log applied.
    Media recovery complete.
    SQL>
    
    
  5. 恢复完成打开数据库,查看,已经恢复完成

    SQL> alter database open resetlogs;
    
    Database altered.
    
    SQL> select * from hr.t1;
    
            ID
    ----------
             1
             2
             3
             4
             5
    
    SQL>
    
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值