1、设置SQL*Plus提示符

临时设置

set sqlprompt "_user'@'_connect_identifier>"

永久设置

为了对所有SQL*Plus会话自动设置sqlprompt.将上面的命令放置在ORACLE_HOME_HOME/sqlplus/admin目录中的glogin.sql文件内

2、查看是否启用闪回临视

SQL> select flashback_on from v$database;

FLASHBACK_ON

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

YES

3、查询回收站

show recyclebin;会显示当前的用户有三个删除的表并显示:原先的名称、回收站名称以及删除的时间。

右要了解更详细的信息,查询数据字典视图USER_RECYCLEBIN或DBA_RECYCLEBIN来查看全局视图

select owner,original_name,type,droptime,can_undrop,space fromdba_recyclebin;

4、PURGE命令永久性地清除删除的对象

(1)删除表并且不将它转移到回收站

drop table <table_name> purge;

(2)从回收站中清除表,如果存在多个具有相同原始名称的对象,那么将清除时间最久的对象。也可以通过指定回收站名称来避免这种混淆

purge table <table_name>;

(3)从回收站中清除索引

purge index<index_name>;

(4)从表空间中清除所有删除的对象

purge tablespace<tablespace_name>;

(5)从表空间中清除属于一个用户的所有删除的对象

purge tablespace<tablespace_name> user <user_name>;

(6)清除您删除的所有对象

purge user_recyclebin;

(7)清除所有删除的对象,但是执行它需要DBA权限。

purge dba_recyclebin;

5、配置闪回数据库

(1)确保数据库处于归档日志模式

归档日志模式是启用闪回数据库的先决条件

SQL> select log_mode from v$database;

LOG_MODE

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

ARCHIVELOG

(2)创建闪回恢复区

SQL> alter system setdb_recovery_file_dest='/opt/oracle/flash_recovery_area';

SQL> alter system set db_recovery_file_dest_size=8G;

(3)设置闪回保留目标时间

SQL> alter system set db_flashback_retention_target=240;

(4)干净地关闭并加载数据库

SQL> shutdown immediate

SQL> startup mount;

(5)启用闪回日志记录。

SQL> alter database flashback on;

(6)打开数据库

SQL> alter database open;

6、创建闪回数据归档

(1)创建一个供闪回数据库归档使用的表空间:

create tablespace fda datafile 'fda1.dbf'size 10m;

(2)在表空间创建一个保留时间为7年的闪回数据归档:

create flashback archive fla1 tablespacefda retention 7 year;

(3)创建用于此练习的模式,并授予它DBA角色:

grant dba to fbdauser identified byfbdauser;

(4)授予用户操作归档的必要权限:

grant flashback archive on fla1 tofbdauser;

(5)作为fbdauser进行连接。创建一个表并为此表启用闪回数据归档:

conn fbdauser/fbdauser

create table t1 as select * from all_users;

alter table t1 flashback archive fla1;

(6)运行这些查询来确定归档创建的对象。可能必须等待几分钟,因为对象不是立即创建的。

select object_name,object_type from user_objects;

select segment_name,segment_type from dba_segments wheretablespace_name='FDA';

(7)对保护的表执行一些DML:

delete from t1;

commit;

(8)使用标准的闪回查询语法对保护的表执行闪回查询,然后查询归档中的历史表。

select count(*) from t1;

select count(*) from t1 as of timestamp(sysdate-20/1440);

select ENDSCN,USER_ID,CREATED from SYS_FBA_HIST_75307;

(9)尝试对保护的表执行一些DDL命令:

alter table t1 drop column created;

truncate table t1;

drop table t1;

作为SYSDBA连接,并尝试执行如下命令:

drop user fbdauser cascade;

drop tablespace fda including contents and datafiles;

注意,这些命令将会生成与归档和保护的表的存在有关的错误。

(10)删除表的除归档保护:

alter table fdbauser.t1 no flashbackarchive;

(11)删除闪回数据归档

drop flashback archive fla1;

(12)重新运行步骤(9)中的所有命令。

7、闪回查询实验

(1)记录时间

SCOTT@orcl>select sysdate from dual;

SYSDATE

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

2015-10-06 18:46:43

(2)从表中删除一些行,并提交更改。

SCOTT@orcl>delete from regions where region_name like 'A%';

2 rows deleted.

SCOTT@orcl>commit;

Commit complete.

(3)查询确认表中只有两行。

SCOTT@orcl>select * from regions;

REGION_ID REGION_NAME

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

1 Europe

4 Middle East and Africa

(4)查询针对以前某个时间的表

SCOTT@orcl>select * from regions as of timestampto_timestamp('2015-10-06 18:46:43','yyyy-mm-dd hh24:mi:ss');

REGION_ID REGION_NAME

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

1 Europe

2 Americas

3 Asia

4 Middle East and Africa

SCOTT@orcl>select * from regions as of timestampto_timestamp('2015-10-06 18:46:43','yyyy-mm-dd hh24:mi:ss') minus select * fromregions;

REGION_ID REGION_NAME

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

2 Americas

3 Asia

8、通过SQL*Plus使用闪回删除

在本练习中创建一个新的模式并在该模式内创建一个表,然后使用flashback drop恢复它

(1)作为用户SYSTEM使用SQL*Plus连接数据库

(2)创建一个用户

SYS@orcl>create user dropper identified by dropper;

SYS@orcl>grant create session,resource to dropper;

SYS@orcl>conn dropper/dropper

(3)创建一个带有索引和约束的表,并插入一行:

DROPPER@orcl>create table names (name varchar2(10));

DROPPER@orcl>create index name_idx on names(name);

DROPPER@orcl>alter table names add (constraint name_uunique(name));

DROPPER@orcl>insert into names values('John');

DROPPER@orcl>commit;

(4)确认模式的内容

DROPPER@orcl>select object_name,object_type from user_objects;

DROPPER@orcl>select constraint_name,constraint_type,table_namefrom user_constraints;

(5)删除该表:

DROPPER@orcl>drop table names;

(6)重新运行步骤(4)中的查询。注意,已从user_objects中删除了对象,但是仍存在采用系统生成的约束。

(7)查询回收站以查看原始的名称到回收站名称的映射:

DROPPER@orcl>select object_name,original_name,type fromuser_recyclebin;

注意,该视图并没有显示约束

(8)这表明可以查询回收站但是无法对它执行DML。

DROPPER@orcl>select * from"BIN$IVfJDb9uy+zgVQAAAAAAAQ==$0";

NAME

----------

John

(9)使用flashback drop恢复表:

DROPPER@orcl>flashback table names to before drop;

转载于:https://blog.51cto.com/corasql/1700513

Oracle闪回技术(笔记)相关推荐

  1. Oracle闪回技术

    Oracle闪回技术   我们都清楚的知道,当我们数据库中的数据删除或者更新之后,数据很难再还原回来,在没有了解闪回技术之前,就觉得是没办法还原了,这样子会付出很大的代价. 现在我来总结一下闪回技术的 ...

  2. Oracle 闪回技术详解

    概述 闪回技术是Oracle强大数据库备份恢复机制的一部分,在10g的时候就被推出一直延续到现在.在数据库发生逻辑错误的时候,闪回技术能提供快速且最小损失的恢复(多数闪回功能都能在数据库联机状态下完成 ...

  3. 【转载】oracle闪回技术详解之闪回drop(神奇的flashback)

    写在前面:删库跑路,相信这是绝大多数程序员会经常听到的一个词.俗话说:常在河边走,哪有不湿鞋,作为经常和数据打交道的程序员也好,运维实施也好,有时难免会出现数据误删除,误操作等情况.如果你是一个ora ...

  4. Oracle闪回技术(Flashback)

    闪回技术有闪回表.闪回删除.闪回查询.闪回事务查询.闪回事务.闪回数据库.闪回数据归档.其中,闪回查询.闪回事务查询用来"观察"过去:闪回数据归档并不是一个独立的功能,其功能是扩展 ...

  5. Oracle闪回技术详解

    Oracle的闪回技术提供了一组功能,可以访问过去某一时间的数据并从人为错误中恢复.闪回技术是Oracle 数据库独有的,支持任何级别的恢复,包括行.事务.表和数据库范围.使用闪回特性,您可以查询以前 ...

  6. oracle flash_back oracle闪回技术详解,oracle flashback 闪回技术实例

    oracle flashback 闪回技术实例 相关操作 1.DBA必须设定undo保持力足够大以能够重构需要闪回的数据 ALTER SYSTEM SET UNDO_RETENTION=; secon ...

  7. oracle闪回技术详解之闪回drop(神奇的flashback)

    写在前面:删库跑路,相信这是绝大多数程序员会经常听到的一个词.俗话说:常在河边走,哪有不湿鞋,作为经常和数据打交道的程序员也好,运维实施也好,有时难免会出现数据误删除,误操作等情况.如果你是一个ora ...

  8. oracle闪回15分钟前,Oracle闪回技术(Flashback)

    闪回技术有闪回表.闪回删除.闪回查询.闪回事务查询.闪回事务.闪回数据库.闪回数据归档.其中,闪回查询.闪回事务查询用来"观察"过去:闪回数据归档并不是一个独立的功能,其功能是扩展 ...

  9. Oracle 闪回技术详解(flashback)

    文章目录 1 概述 2 实例说明 2.1 闪回查询 2.2 闪回版本查询 2.3 闪回事务查询 2.4 闪回表 2.5 闪回删除 3 扩展 1 概述 为了使 Oracle 数据库从误操作中迅速地恢复, ...

最新文章

  1. 通过JS如何获取IP地址
  2. CF508D Tanya and Password(欧拉回路)
  3. Android两种常见错误(ANR和FC)解决办法
  4. iOS开发多线程篇—线程的状态
  5. JDK源码学习之 java.util.concurrent.automic包
  6. VS解决方案目录和工程目录
  7. 阿里云网盘来了,来搭建自己“免费“私人网盘
  8. iweboffice之word——自定义菜单的使用
  9. 计算机共享cmd,怎么用cmd共享文件
  10. 计算机基础考试题及答案多选,2016年计算机一级考试PS及基础多选模拟试题及答案...
  11. python实现归结演绎推理_归结演绎推理
  12. 计算机保存文件夹纵向排序,文件夹怎么自己排序,文件夹里怎么排序
  13. win7系统文件夹共享后有锁图标怎么去掉?
  14. 计算机基础我的课堂调控,计算机基础课堂析及实验安排.doc
  15. Android ImageView: resolveUri failed on bad bitmap uri
  16. UAP安装使用FindBugs
  17. 华为大数据云issues
  18. Java 用UDP协议实现远程关机
  19. C语言预处理、宏定义
  20. 矿大计算机学院国奖公示,中国矿大学子在2020年中国大学生计算机设计大赛省级赛中荣获特等奖...

热门文章

  1. 添加请求头 retrofit_Python爬虫偷懒神器 — 快速构造请求头!
  2. 国家智能计算机研究开发中心 地址,油藏数值模拟-国家智能计算机研究开发中心.PDF...
  3. 数据库系统概论:第九章 关系查询和关系优化
  4. java 用户登录token_Java,SpringBoot采用token方式实现登录认证
  5. c语言调用python变量_Python变量
  6. C# winform 后台控制删除动态生成的控件
  7. 个人项目对方代码分析(随机生成不同难度试卷)
  8. HBase解决海量图片存储方案
  9. HDU 2037 今年暑假不AC
  10. 利用javascript和WebGL绘制地球 【翻译】