Oracle Flashback和RMAN示例
作者:Grey
原文地址:http://www.cnblogs.com/greyzeng/p/5346833.html
环境:
- Windows 10 专业版
- Oracle Database 12c Release 1
Flashback示例
场景1:
|
新建了一张表t_table1, 在某个时间点插入两条数据,后续又误插入一条数据,现在需要恢复到误插入数据之前的状态。 |
打开SQL Plus
用普通用户登录:

新建一张表t_table1:
create table t_table1 (t_id number, t_name varchar2(30));

插入两条数据并提交:
insert into t_table1 values (111,'hui');
insert into t_table1 values (222,'wq');
commit;


在2016年4月2日00:13分左右误插入一条数据:
insert into t_table1 values (333,'errordata');
commit;


接下来恢复到误差数据之前的情况,
查询一下误差入之前的数据情况,由于数据是2016年4月2日00:13分左右插入的,所以查看一下00:10分的表状态:
select * from t_table1 as of timestamp to_timestamp('2016-04-02 00:10','yyyy-mm-dd hh24:mi');

开启行迁移:
alter table t_table1 enable row movement;

闪回:
flashback table t_table1 to timestamp to_timestamp('2016-04-02 00:10','yyyy-mm-dd hh24:mi');

检查一下,数据已经恢复

场景2:
|
新建一张表,误删除(drop)了这张表,现在需要恢复这张表。 |
接场景1,drop这个表t_table1,

闪回:
flashback table t_table1 to before drop;

验证:

RMAN示例
场景:
|
启用RMAN备份以后,同时数据库文件(.DBF)丢失,通过RMAN恢复数据文件。 |
说明:
RMAN备份/恢复之前必须要开启数据库归档功能
在SQL Plus下:
启动归档前先要停止数据库:
用管理员登录:
conn / as sysdba;

停止数据库:
shutdown immediate;

数据库以mount方式启动:
startup mount;

启动数据库归档:
alter database archivelog;

改变归档日志路径,windows系统使用盘符:
alter system set log_archive_dest_1="location=C:\Users\Public\Documents\arch";

打开数据库,查看归档是否已经打开:
alter database open;
archive log list;


在Windows控制台输入以下命令启动RMAN:
rman target/

启用RMAN备份:
backup database;

此时,模拟一下误删数据库文件:
先关闭数据库:

删除:C:\app\orcl\oradata\orcl目录下的.DBF文件


重启RMAN:
RMAN target sys/

利用RMAN恢复数据库文件:

数据文件恢复成功:

验证:
启动数据库:
startup;

打开SQL Plus,用普通用户连接,验证一下删除的数据是否恢复:

Oracle Flashback和RMAN示例的更多相关文章
- Oracle Flashback Technologies - 闪回数据库
Oracle Flashback Technologies - 闪回数据库 根据指定的SCN,使用rman闪回数据库 #查看可以闪回到多久前 SQL> select * from v$flash ...
- oracle flashback
一.Flashback闪回技术概述:当Oracle数据库发生逻辑错误时,必须使用flashback技术,实现快速和方便的恢复数据.对于人为错误,要确定受到错误事务影响的对象或者记录是非常困难的.使用f ...
- ORACLE FLASHBACK DATABASE 知识整理
1.知识储备 1) 只有SYSDBA有权执行,闪回前一定要记录当前SCN 2) 需要停机,并要求处于ARCHIVELOG模式中 3) 闪回日志不能被复用和归档,是自动管理的.RVWR ...
- oracle flashback data archive闪回数据归档天坑之XID重用导致闪回查询数据重复
我们有个系统使用了Oracle flashback data archive闪回数据归档特性来作为基于时间点的恢复机制,在频繁插入.更新期间发现SYS_FBA_HIST_NNNN表中的XID被两个事务 ...
- Oracle DB 使用RMAN恢复目录
• 对恢复目录和RMAN 资料档案库控制文件的使用进行比较• 创建和配置恢复目录• 在恢复目录中注册数据库• 同步恢复目录• 使用RMAN 存储脚本• 备份恢复目录• 创建虚拟专用目录 RMAN 资料 ...
- Oracle 11gR2 使用RMAN Duplicate复制数据库
Oracle 11gR2 使用RMAN Duplicate复制数据库 前言: 上周刚做完一个项目,用户要求RAC的数据库可以自己主动备份到另外一个单节点上,单节点可以正常拿起来就能用. ...
- Oracle Flashback Database
Oracle Flashback Database Ensure that the prerequisites described in Prerequisites of Flashback Data ...
- Oracle 物理备份--rman
Oracle 物理备份--rman 1.直接在服务器,打开命令行,输入: rman target/ 2.配置参数也一同备份 configure controlfile autobackup on; 如 ...
- Oracle Flashback Technologies - 闪回查询
Oracle Flashback Technologies - 闪回查询 查看表中,某行数据的修改记录 #创建一个表,并插入和修改数据 SQL> create table y3(id )); T ...
随机推荐
- Emberjs之Observer
Observer Person.reopen({ fullNameChanged: Ember.observer('fullName', function() { // deal with the c ...
- 今天心情好,给各位免费呈上200兆SVN代码服务器一枚,不谢!
开篇先给大家讲个我自己的故事,几个月前在网上接了个小软件开发的私活,平日上班时间也比较忙,就中午一会儿休息时间能抽出来倒腾着去做点.每天下班复制一份到U盘带回去继续摸索,没多久U盘里躺着的文件列表那叫 ...
- [ACM_动态规划] 数字三角形(数塔)_递推_记忆化搜索
1.直接用递归函数计算状态转移方程,效率十分低下,可以考虑用递推方法,其实就是“正着推导,逆着计算” #include<iostream> #include<algorithm> ...
- Linux—解压缩
压缩和解压("//"命令的解释) 常用压缩格式 .zip .gz .bz2 .tar.bz2 .tar.gz .zip格式压缩: zip 压缩 ...
- Java基础之打印万年历
今天刚开的博客,第一篇博文,一篇关于Java基础的内容,水平有限,多多见谅,希望和大家在学习编程的路上共同进步. 问题:输入年,月,打印对应年月的日历. 示例: ----------- ...
- lua的私有性(privacy)
很多人认为私有性是面向对象语言的应有的一部分.每个对象的状态应该是这个对象自己的事情.在一些面向对象的语言中,比如C++和Java你可以控制对象成员变量或者成员方法是否私有.其他一些语言比如Small ...
- C#并行编程-Task
菜鸟学习并行编程,参考<C#并行编程高级教程.PDF>,如有错误,欢迎指正. 目录 C#并行编程-相关概念 C#并行编程-Parallel C#并行编程-Task C#并行编程-并发集合 ...
- 快速入门系列--MVC--05行为
Action执行包含内容比较多,主要有同步/异步Action的概念和执行过程,Authorationfilter, ActionFiltor, ResultFilter, ExceptionFilte ...
- HTML5语义标签的实践
<article> 定义一篇文章 论坛发帖 博客文章 一篇文章 <article> <h1>标题</h1> <p>内容</p> ...
- 如何查看某个查询用了多少TempDB空间
最近帮助客户调优的过程中,发现客户的TempDB存在非常大的压力,经过排查是发现某些语句对TempDB的巨量使用所导致. 在SQL Server中,TempDB主要负责供下述三类情况使 ...