Oracle 学习之RMAN(十四)恢复实战--基于时间点恢复

1. 我们先做一个全备

RMAN> backup database ;

Starting backup at 2015/07/09 13:40:47
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=28 device type=DISK
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00001 name=/u01/app/oracle/oradata/devdb/system01.dbf
input datafile file number=00002 name=/u01/app/oracle/oradata/devdb/sysaux01.dbf
input datafile file number=00005 name=/u01/app/oracle/oradata/devdb/example01.dbf
input datafile file number=00003 name=/u01/app/oracle/oradata/devdb/undotbs01.dbf
input datafile file number=00004 name=/u01/app/oracle/oradata/devdb/users01.dbf
channel ORA_DISK_1: starting piece 1 at 2015/07/09 13:40:48
channel ORA_DISK_1: finished piece 1 at 2015/07/09 13:42:34
piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/backupset/2015_07_09/o1_mf_nnndf_TAG20150709T134048_bsw2c0xq_.bkp tag=TAG20150709T134048 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:01:46
channel ORA_DISK_1: starting 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 2015/07/09 13:42:35
channel ORA_DISK_1: finished piece 1 at 2015/07/09 13:42:36
piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/backupset/2015_07_09/o1_mf_ncsnf_TAG20150709T134048_bsw2gcly_.bkp tag=TAG20150709T134048 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 2015/07/09 13:42:36

2. 创建一个表,往里面插入一些数据。记录下时间,等待一会再将表truncate。

SQL> alter user scott account unlock;

User altered.

SQL> alter user scott identified by tiger;

User altered.

SQL> conn scott/tiger
Connected.
SQL> select sysdate from dual;

SYSDATE
-------------------
2015/07/09 13:44:30

SQL> create table t1 as select * from emp;

Table created.

SQL> select sysdate from dual;

SYSDATE
-------------------
2015/07/09 13:45:32

SQL> truncate table t1;

Table truncated.

在2015/07/09 13:45:32以前,表t1中有14条数据。之后做了truncate。我们现在来看看能不能将数据库恢复到2015/07/09 13:45:32这一时刻。也就是t1被truncate掉之前。

3. 关闭数据库,再启动到mount状态

SQL> conn / as sysdba
Connected.
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.

Total System Global Area  839282688 bytes
Fixed Size		    2233000 bytes
Variable Size		  494931288 bytes
Database Buffers	  339738624 bytes
Redo Buffers		    2379776 bytes
Database mounted.

4. 恢复数据库

RMAN> RUN {
  ALLOCATE CHANNEL c1 TYPE DISK;
  ALLOCATE CHANNEL c2 TYPE DISK;
  SET UNTIL TIME = ‘2015/07/09 13:45:32‘;
  RESTORE DATABASE;
  RECOVER DATABASE;
  ALTER DATABASE OPEN RESETLOGS;
 }2> 3> 4> 5> 6> 7> 8> 

using target database control file instead of recovery catalog
allocated channel: c1
channel c1: SID=20 device type=DISK

allocated channel: c2
channel c2: SID=21 device type=DISK

executing command: SET until clause

Starting restore at 2015/07/09 13:50:59

channel c1: starting datafile backup set restore
channel c1: specifying datafile(s) to restore from backup set
channel c1: restoring datafile 00001 to /u01/app/oracle/oradata/devdb/system01.dbf
channel c1: restoring datafile 00002 to /u01/app/oracle/oradata/devdb/sysaux01.dbf
channel c1: restoring datafile 00003 to /u01/app/oracle/oradata/devdb/undotbs01.dbf
channel c1: restoring datafile 00004 to /u01/app/oracle/oradata/devdb/users01.dbf
channel c1: restoring datafile 00005 to /u01/app/oracle/oradata/devdb/example01.dbf
channel c1: reading from backup piece /u01/app/oracle/fast_recovery_area/DEVDB/backupset/2015_07_09/o1_mf_nnndf_TAG20150709T134048_bsw2c0xq_.bkp
channel c1: piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/backupset/2015_07_09/o1_mf_nnndf_TAG20150709T134048_bsw2c0xq_.bkp tag=TAG20150709T134048
channel c1: restored backup piece 1
channel c1: restore complete, elapsed time: 00:01:15
Finished restore at 2015/07/09 13:52:14

Starting recover at 2015/07/09 13:52:15

starting media recovery
media recovery complete, elapsed time: 00:00:01

Finished recover at 2015/07/09 13:52:16

database opened
released channel: c1
released channel: c2

5. 验证数据是否存在。

SQL> conn scott/tiger 
Connected.
SQL> select count(*) from t1;

  COUNT(*)
----------
	14

SQL>

可见数据已经找回。

基于时间点的恢复,是不完全恢复的一种,我们还可以基于SCN和日志sequence恢复。

UNTIL SEQUENCE or UNTIL SCN

时间: 2024-10-23 12:20:30

Oracle 学习之RMAN(十四)恢复实战--基于时间点恢复的相关文章

Oracle 学习之RMAN(四)增量备份

RMAN不但能进行数据库.数据文件等全量备份,而且还能做增量备份.增量备份有两大优点: 减少数据库恢复的时间. 数据库恢复是利用归档日志,不断的应用归档日志,将数据库恢复到最新(或者指定状态).但是增量备份只备份被修改了的数据块,在执行恢复时,直接用备份出来的数据块去覆盖数据文件中被更改的数据块. 减少备份时间 增量备份只需备份被修改过的数据块,备份时间和备份存储空间都有相应的减少. 做增量备份的前提,是需要一个基准备份,所有的增量都是针对这个基准来说的.要不然,增量备份无从谈起. 增量备份使用

我的MYSQL学习心得(十四) 备份和恢复

原文:我的MYSQL学习心得(十四) 备份和恢复 我的MYSQL学习心得(十四) 备份和恢复 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运算符 我的MYSQL学习心得(六) 函数 我的MYSQL学习心得(七) 查询 我的MYSQL学习心得(八) 插入 更新 删除 我的MYSQL学习心得(九) 索引 我的MYSQL学习心得(十) 自定义存储过程

我的MYSQL学习心得(十四)

我的MYSQL学习心得(十四) 我的MYSQL学习心得(一) 我的MYSQL学习心得(二) 我的MYSQL学习心得(三) 我的MYSQL学习心得(四) 我的MYSQL学习心得(五) 我的MYSQL学习心得(六) 我的MYSQL学习心得(七) 我的MYSQL学习心得(八) 我的MYSQL学习心得(九) 我的MYSQL学习心得(十) 我的MYSQL学习心得(十一) 我的MYSQL学习心得(十二) 我的MYSQL学习心得(十三) 这一篇<我的MYSQL学习心得(十四)>将会讲解MYSQL的备份和恢复

马哥学习笔记二十四——分布式复制快设备drbd

DRBD: 主从 primary: 可执行读.写操作 secondary: 文件系统不能挂载 DRBD: dual primay, 双主(基于集群文件系统的高可用集群) 磁盘调度器:合并读请求,合并写请求: Procotol:drbd数据同步协议 A: Async, 异步  数据发送到本机tcp/ip协议栈 B:semi sync, 半同步  数据发送到对方tcp/ip协议 C:sync, 同步  数据到达对方存储设备 DRBD Source: DRBD资源 资源名称:可以是除了空白字符外的任意

Android学习笔记(十四)——在运行时添加碎片(附源码)

在运行时添加碎片 点击获取源码 将UI分割为多个可配置的部分是碎片的优势之一,但其真正强大之处在于可在运行时动态地把它们添加到活动中. 1.使用上一篇创建的Fragments项目,在main.xml文件中注释掉两个<fragment>元素: 2.在FragmentActivity.java中添加下面的代码: FragmentManager fragmentManager = getSupportFragmentManager();//向活动添加碎片 FragmentTransaction fr

quick-cocos2d-x 学习系列之十四 测试用例

quick-cocos2d-x 学习系列之十四 测试用例 定义变量,创建13个场景名字 local items = { "framework.helper", "framework.native", "framework.display", "framework.crypto", "framework.network", "framework.luabinding", "fra

UI学习笔记---第十四天数据持久化

一.沙盒机制 每个应用程序位于文件系统的严格限制部分 每个应用程序只能在为该程序创建的文件系统中读取文件 每个应用程序在iOS系统内斗放在了统一的文件夹目录下 沙盘路径的位置 1. 通过Finder查找程序沙盘相对路径 ~/Library/Application Support/iPhone Simulator 2. 通过代码查找程序沙盘相对路径 NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory directory,NSSearc

【Unity 3D】学习笔记三十四:游戏元素——常用编辑器组件

常用编辑器组件 unity的特色之一就是编辑器可视化,很多常用的功能都可以在编辑器中完成.常用的编辑器可分为两种:原有组件和拓展组件.原有组件是编辑器原生的一些功能,拓展组件是编辑器智商通过脚本拓展的新功能. 摄像机 摄像机是unity最为核心组件之一,游戏界面中显示的一切内容都得需要摄像机来照射才能显示.摄像机组件的参数如下: clear flags:背景显示内容,默认的是skybox.前提是必须在render settings 中设置天空盒子材质. background:背景显示颜色,如果没

Android学习路线(十四)Activity生命周期——停止和重启(Stopping and Restarting)一个Activity

先占个位置,下次翻译~ :p Properly stopping and restarting your activity is an important process in the activity lifecycle that ensures your users perceive that your app is always alive and doesn't lose their progress. There are a few of key scenarios in which