实验:基于cancel的不全然恢复

实验环境查看

lsnrctl status

select open_mode from v$database;

  --监听与数据库状态

show parameter recovery;

select flashback_on from v$database;

archive log list;

  --闪回与归档的配置

1)准备环境:RMAN全库备份

RMAN> backup as compressed backupset full database;

       --压缩备份

       --backup full database ;备份集备份

Starting backup at 20-MAR-13

using target database control file instead of recovery catalog

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=45 device type=DISK

channel ORA_DISK_1: starting compressed full datafile backup set

channel ORA_DISK_1: specifying datafile(s) in backup set

input datafile file number=00001 name=/u01/app/oracle/oradata/ORA11GR2/system01.dbf

input datafile file number=00002 name=/u01/app/oracle/oradata/ORA11GR2/sysaux01.dbf

input datafile file number=00003 name=/u01/app/oracle/oradata/ORA11GR2/undotbs01.dbf

input datafile file number=00005 name=/u01/app/oracle/oradata/ORA11GR2/example01.dbf

input datafile file number=00004 name=/u01/app/oracle/oradata/ORA11GR2/users01.dbf

channel ORA_DISK_1: starting piece 1 at 20-MAR-13

channel ORA_DISK_1: finished piece 1 at 20-MAR-13

piece handle=/u01/app/FRA/ORA11GR2/backupset/2013_03_20/o1_mf_nnndf_TAG20130320T151949_8nlrrrfm_.bkp tag=TAG20130320T151949 comment=NONE

channel ORA_DISK_1: backup set complete, elapsed time: 00:02:17

channel ORA_DISK_1: starting compressed full datafile backup set

channel ORA_DISK_1: specifying datafile(s) in backup set

including current control file in backup set

including current SPFILE in backup set

channel ORA_DISK_1: starting piece 1 at 20-MAR-13

channel ORA_DISK_1: finished piece 1 at 20-MAR-13

piece handle=/u01/app/FRA/ORA11GR2/backupset/2013_03_20/o1_mf_ncsnf_TAG20130320T151949_8nlrx2qs_.bkp tag=TAG20130320T151949 comment=NONE

channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01

Finished backup at 20-MAR-13

2)创建測试数据

SYS@ORA11GR2>create table scott.t1 as select 1 as id from dual;

Table created.

SYS@ORA11GR2>alter system archive log current;

System altered.

SYS@ORA11GR2>create table scott.t2 as select 2 as id from dual;

Table created.

SYS@ORA11GR2>alter system archive log current;

System altered.

SYS@ORA11GR2>create table scott.t3 as select 3 as id from dual;

Table created.

SYS@ORA11GR2>alter system archive log current;

System altered.

SYS@ORA11GR2>

SYS@ORA11GR2>select table_name,tablespace_name from dba_tables where owner='SCOTT' AND table_name LIKE 'T_';

TABLE_NAME                   TABLESPACE_NAME

------------------------- ------------------------------

T3                             USERS

T2                             USERS

T1                             USERS

完毕測试数据构造后。查看生成的归档日志

ls /u01/app/oracle/fast_recovery_area/PROD/archivelog/2014_10_08

ls -lrt

3)删除全部数据文件和在线数据文件

在sqlplus里面删除:

SYS@PROD>select name from v$datafile;

NAME

--------------------

/u01/app/oracle/oradata/PROD/datafile/o1_mf_system_b2251bs1_.dbf

/u01/app/oracle/oradata/PROD/datafile/o1_mf_sysaux_b2251bvo_.dbf

/u01/app/oracle/oradata/PROD/datafile/o1_mf_undotbs1_b2251bw5_.dbf

/u01/app/oracle/oradata/PROD/datafile/o1_mf_users_b2251byw_.dbf

/u01/app/oracle/oradata/PROD/datafile/o1_mf_example_b2257d0c_.dbf

/u01/app/oracle/oradata/PROD/datafile/tbs_move_01.dbf

SYS@PROD>select member from v$logfile;

MEMBER

----------------------------------------------------------------------------------------------------------------------------------

/u01/app/oracle/oradata/PROD/onlinelog/o1_mf_3_b22567o2_.log

/u01/app/oracle/fast_recovery_area/PROD/onlinelog/o1_mf_3_b2256827_.log

/u01/app/oracle/oradata/PROD/onlinelog/o1_mf_2_b2255zsg_.log

/u01/app/oracle/fast_recovery_area/PROD/onlinelog/o1_mf_2_b22560gb_.log

/u01/app/oracle/oradata/PROD/onlinelog/o1_mf_1_b2255npg_.log

/u01/app/oracle/fast_recovery_area/PROD/onlinelog/o1_mf_1_b2255nxl_.log

SYS@PROD>!rm /u01/app/oracle/oradata/PROD/datafile/*.dbf;

SYS@PROD>!rm /u01/app/oracle/oradata/PROD/onlinelog/*.log;

SYS@PROD>!rm /u01/app/oracle/fast_recovery_area/PROD/onlinelog/*.log;

在OS里面删除:

[oracle@ocmu ORA11GR2]$ pwd

/u01/app/oracle/oradata/ORA11GR2

[oracle@ocmu ORA11GR2]$ ls

control01.ctl  example01.dbf  redo02.log  sysaux01.dbf  temp01.dbf     users01.dbf

control02.ctl  redo01.log     redo03.log  system01.dbf  undotbs01.dbf

[oracle@ocmu ORA11GR2]$ rm *.log

[oracle@ocmu ORA11GR2]$ ls

control01.ctl  example01.dbf  system01.dbf  undotbs01.dbf

control02.ctl  sysaux01.dbf   temp01.dbf    users01.dbf

[oracle@ocmu ORA11GR2]$

4)数据库启动到mount模式

SYS@ORA11GR2>shutdown abort;

ORACLE instance shut down.

SYS@ORA11GR2>startup mount;

ORACLE instance started.

Total System Global Area  841162752 bytes

Fixed Size                  1339768 bytes

Variable Size             532680328 bytes

Database Buffers          301989888 bytes

Redo Buffers                5152768 bytes

Database mounted.

SYS@ORA11GR2>

5)RMAN还原数据库

RMAN> restore database;

Starting restore at 20-MAR-13

using target database control file instead of recovery catalog

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=18 device type=DISK

channel ORA_DISK_1: starting datafile backup set restore

channel ORA_DISK_1: specifying datafile(s) to restore from backup set

channel ORA_DISK_1: restoring datafile 00001 to /u01/app/oracle/oradata/ORA11GR2/system01.dbf

channel ORA_DISK_1: restoring datafile 00002 to /u01/app/oracle/oradata/ORA11GR2/sysaux01.dbf

channel ORA_DISK_1: restoring datafile 00003 to /u01/app/oracle/oradata/ORA11GR2/undotbs01.dbf

channel ORA_DISK_1: restoring datafile 00004 to /u01/app/oracle/oradata/ORA11GR2/users01.dbf

channel ORA_DISK_1: restoring datafile 00005 to /u01/app/oracle/oradata/ORA11GR2/example01.dbf

channel ORA_DISK_1: reading from backup piece /u01/app/FRA/ORA11GR2/backupset/2013_03_20/o1_mf_nnndf_TAG20130320T151949_8nlrrrfm_.bkp

channel ORA_DISK_1: piece handle=/u01/app/FRA/ORA11GR2/backupset/2013_03_20/o1_mf_nnndf_TAG20130320T151949_8nlrrrfm_.bkp tag=TAG20130320T151949

channel ORA_DISK_1: restored backup piece 1

channel ORA_DISK_1: restore complete, elapsed time: 00:03:26

Finished restore at 20-MAR-13

RMAN>

6)基于cancel恢复

SYS@ORA11GR2>recover database until cancel;

   --在sqlplus中完毕

ORA-00279: change 883460 generated at 03/20/2013 15:19:50 needed for thread 1

ORA-00289: suggestion :

/u01/app/FRA/ORA11GR2/archivelog/2013_03_20/o1_mf_1_8_8nlrzy8w_.arc

ORA-00280: change 883460 for thread 1 is in sequence #8

Specify log: {<RET>=suggested | filename | AUTO | CANCEL}

--应用sequence #8为8。名字为o1_mf_1_8_8nlrzy8w_.arc的归档日志文件,直接按回车键

ORA-00279: change 884069 generated at 03/20/2013 15:23:42 needed for thread 1

ORA-00289: suggestion :

/u01/app/FRA/ORA11GR2/archivelog/2013_03_20/o1_mf_1_9_8nls091w_.arc

ORA-00280: change 884069 for thread 1 is in sequence #9

ORA-00278: log file

'/u01/app/FRA/ORA11GR2/archivelog/2013_03_20/o1_mf_1_8_8nlrzy8w_.arc' no longer

needed for this recovery

Specify log: {<RET>=suggested | filename | AUTO | CANCEL}

--应用sequence #9为9的这个归档日志文件。直接按回车键

ORA-00279: change 884101 generated at 03/20/2013 15:23:53 needed for thread 1

ORA-00289: suggestion :

/u01/app/FRA/ORA11GR2/archivelog/2013_03_20/o1_mf_1_10_8nls0os6_.arc

ORA-00280: change 884101 for thread 1 is in sequence #10

ORA-00278: log file

'/u01/app/FRA/ORA11GR2/archivelog/2013_03_20/o1_mf_1_9_8nls091w_.arc' no longer

needed for this recovery

Specify log: {<RET>=suggested | filename | AUTO | CANCEL}

cancel

  --手动输入cancel结束恢复。无论后面有没有可恢复文件。都会结束。

Media recovery cancelled.

SYS@ORA11GR2>

SYS@ORA11GR2>alter database open resetlogs;

Database altered.

SYS@ORA11GR2>

7)检查

SYS@ORA11GR2>select table_name,tablespace_name from dba_tables where owner='SCOTT' AND table_name LIKE 'T_';

TABLE_NAME                   TABLESPACE_NAME

------------------------- ------------------------------

T2                             USERS

T1                             USERS

SYS@ORA11GR2>

注 应用了两个归档日志。第三个归档日志cancel了。从结果中也能够看到。恢复以后的数据库中。仅仅

 存在T1,T2两张表,它们俩的重做日志就在前两个归档中,T3表的全部重做条目都在第三个归档中,

 因为採取了cancel,所以,T3表并未恢复

基于cancel的不全然恢复的更多相关文章

  1. oracle数据库全然恢复和不全然恢复以及运行用户管理辈分恢复

    比較全然恢复和不全然恢复: 一.全然恢复:将数据库恢复到当前最新状态,包含直至请求恢复时进行的全部已提交的数据更改 二.不全然恢复:将数据库恢复到请求恢复操作之前指定的过去时间点 一.全然恢复过程 以 ...

  2. 【RMAN】TSPITR--RMAN表空间基于时间点的自动恢复

    [RMAN]TSPITR--RMAN表空间基于时间点的自动恢复 一.1  BLOG文档结构图 一.2  前言部分 一.2.1  导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其 ...

  3. 基于从库+binlog方式恢复数据

    基于从库+binlog方式恢复数据 将bkxt从库的全备份在rescs5上恢复一份,恢复到6306端口,用cmdb操作 恢复全备后执行如下操作 set global read_only=OFF; st ...

  4. 基于全备份+binlog方式恢复数据

    基于全备份+binlog方式恢复数据 将bkxt从库的全备份在rescs5上恢复一份,用cmdb操作 恢复全备后执行如下操作 set global read_only=OFF; stop slave; ...

  5. MySQL基于mysqldump及lvmsnapshot备份恢复

    一.备份对象 数据 配置文件 代码:存储过程,存储函数,触发器 跟复制相关的配置 二进制日志文件 二.备份工具 mysqldump:逻辑备份工具 InnoDB热备.MyISAM温备.Aria温备 备份 ...

  6. MySQL 5.7 基于复制线程SQL_Thread加快恢复的尝试

    1. MySQL 数据恢复常用办法 MySQL恢复的方法一般有三种: 1. 官方推荐的基于全备+binlog , 通常做法是先恢复最近一次的全备,然后通过mysqlbiinlog --start-po ...

  7. MySQL基于LVM快照的备份恢复(临时)

    目录1.数据库全备份2.准备LVM卷3.数据恢复到LVM卷4.基于LVM快照备份数据5.数据灾难恢复6.总结 写在前面:测试环境中已安装有mysql 5.5.36数据库,但数据目录没有存放在LVM卷, ...

  8. 转 基于MySQL MEB的备份恢复

    几种备份方式的介绍 mysqlbackup是一个热备份工具.也就是说它不像mysqldump那样给表上一个全局锁,由于mysqldump上了这个锁,所以就造成客户端只能对 数据库进行读操作不能写,这也 ...

  9. XDB基于Library的备份及恢复

    基于standalone全备份 语句: xdb backup --federation xhive://localhost:1235 --standalone --file E:\xdbData\xD ...

随机推荐

  1. systemtap 探针定制

    http://blog.163.com/digoal@126/blog/static/163877040201391123645546/

  2. Knockout官网实例在MVC下的实现-02,实现计次

    本篇使用Knockout在MVC下实现"Hello World",对应的官网实例在这里. 当次数达到3: View视图 页面包含三个部分:1.显示点击按钮的次数2.button按钮 ...

  3. tomcat 启动时设置 java 参数,mark

    在文件  startup.bat/.sh 中添加 set "JAVA_OPTS=-Xms2048m -Xmx4096m -XX:NewSize=256m -XX:MaxNewSize=102 ...

  4. Oracle中Instr用法

    在项目中用到了Oracle中 Instr 这个函数,顺便仔细的再次学习了一下这个知识. Oracle中,可以使用 Instr 函数对某个字符串进行判断,判断其是否含有指定的字符. 其语法为:Instr ...

  5. 缓存算法:LRU、LFU、FIFO

      LRU全称是Least Recently Used,即最近最久未使用的意思.如果一个数据在最近一段时间没有被访问到,那么在将来它被访问的可能性也很小.也就是说,当限定的空间已存满数据时,应当把最久 ...

  6. sqlalchemy批量删除数据、全量删除

    问题:sqlalchemy如何批量删除多条数据解决:使用参数synchronize_session=False,或for循环方法:        users = self.db.query(User) ...

  7. 【BZOJ】【4052】【CERC2013】Magical GCD

    DP/GCD 然而蒟蒻并不会做…… Orz @lct1999神犇 首先我们肯定是要枚举下端点的……嗯就枚举右端点吧…… 那么对于不同的GCD,对应的左端点最多有log(a[i])个:因为每次gcd缩小 ...

  8. Mysql 查询注意和运行shell命令

    Mysql 查询注意 1. 在mysql查询的时候须要注意在表的前面加上数据库的前缀,不然就是默认是当前的数据库(当多个库查询的时候,可能会出现反复的查同样的表多次) 2. \! ls –al ,my ...

  9. HBase性能优化方法总结(转)

    原文链接:HBase性能优化方法总结(一):表的设计 本文主要是从HBase应用程序设计与开发的角度,总结几种常用的性能优化方法.有关HBase系统配置级别的优化,可参考:淘宝Ken Wu同学的博客. ...

  10. 第三章 JVM内存回收区域+对象存活的判断+引用类型+垃圾回收线程

    注意:本文主要参考自<深入理解Java虚拟机(第二版)> 说明:查看本文之前,推荐先知道JVM内存结构,见<第一章 JVM内存结构> 1.内存回收的区域 堆:这是GC的主要区域 ...