Oracle闪回技术(笔记)
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闪回技术(笔记)相关推荐
- Oracle闪回技术
Oracle闪回技术 我们都清楚的知道,当我们数据库中的数据删除或者更新之后,数据很难再还原回来,在没有了解闪回技术之前,就觉得是没办法还原了,这样子会付出很大的代价. 现在我来总结一下闪回技术的 ...
- Oracle 闪回技术详解
概述 闪回技术是Oracle强大数据库备份恢复机制的一部分,在10g的时候就被推出一直延续到现在.在数据库发生逻辑错误的时候,闪回技术能提供快速且最小损失的恢复(多数闪回功能都能在数据库联机状态下完成 ...
- 【转载】oracle闪回技术详解之闪回drop(神奇的flashback)
写在前面:删库跑路,相信这是绝大多数程序员会经常听到的一个词.俗话说:常在河边走,哪有不湿鞋,作为经常和数据打交道的程序员也好,运维实施也好,有时难免会出现数据误删除,误操作等情况.如果你是一个ora ...
- Oracle闪回技术(Flashback)
闪回技术有闪回表.闪回删除.闪回查询.闪回事务查询.闪回事务.闪回数据库.闪回数据归档.其中,闪回查询.闪回事务查询用来"观察"过去:闪回数据归档并不是一个独立的功能,其功能是扩展 ...
- Oracle闪回技术详解
Oracle的闪回技术提供了一组功能,可以访问过去某一时间的数据并从人为错误中恢复.闪回技术是Oracle 数据库独有的,支持任何级别的恢复,包括行.事务.表和数据库范围.使用闪回特性,您可以查询以前 ...
- oracle flash_back oracle闪回技术详解,oracle flashback 闪回技术实例
oracle flashback 闪回技术实例 相关操作 1.DBA必须设定undo保持力足够大以能够重构需要闪回的数据 ALTER SYSTEM SET UNDO_RETENTION=; secon ...
- oracle闪回技术详解之闪回drop(神奇的flashback)
写在前面:删库跑路,相信这是绝大多数程序员会经常听到的一个词.俗话说:常在河边走,哪有不湿鞋,作为经常和数据打交道的程序员也好,运维实施也好,有时难免会出现数据误删除,误操作等情况.如果你是一个ora ...
- oracle闪回15分钟前,Oracle闪回技术(Flashback)
闪回技术有闪回表.闪回删除.闪回查询.闪回事务查询.闪回事务.闪回数据库.闪回数据归档.其中,闪回查询.闪回事务查询用来"观察"过去:闪回数据归档并不是一个独立的功能,其功能是扩展 ...
- Oracle 闪回技术详解(flashback)
文章目录 1 概述 2 实例说明 2.1 闪回查询 2.2 闪回版本查询 2.3 闪回事务查询 2.4 闪回表 2.5 闪回删除 3 扩展 1 概述 为了使 Oracle 数据库从误操作中迅速地恢复, ...
最新文章
- 通过JS如何获取IP地址
- CF508D Tanya and Password(欧拉回路)
- Android两种常见错误(ANR和FC)解决办法
- iOS开发多线程篇—线程的状态
- JDK源码学习之 java.util.concurrent.automic包
- VS解决方案目录和工程目录
- 阿里云网盘来了,来搭建自己“免费“私人网盘
- iweboffice之word——自定义菜单的使用
- 计算机共享cmd,怎么用cmd共享文件
- 计算机基础考试题及答案多选,2016年计算机一级考试PS及基础多选模拟试题及答案...
- python实现归结演绎推理_归结演绎推理
- 计算机保存文件夹纵向排序,文件夹怎么自己排序,文件夹里怎么排序
- win7系统文件夹共享后有锁图标怎么去掉?
- 计算机基础我的课堂调控,计算机基础课堂析及实验安排.doc
- Android ImageView: resolveUri failed on bad bitmap uri
- UAP安装使用FindBugs
- 华为大数据云issues
- Java 用UDP协议实现远程关机
- C语言预处理、宏定义
- 矿大计算机学院国奖公示,中国矿大学子在2020年中国大学生计算机设计大赛省级赛中荣获特等奖...
热门文章
- 添加请求头 retrofit_Python爬虫偷懒神器 — 快速构造请求头!
- 国家智能计算机研究开发中心 地址,油藏数值模拟-国家智能计算机研究开发中心.PDF...
- 数据库系统概论:第九章 关系查询和关系优化
- java 用户登录token_Java,SpringBoot采用token方式实现登录认证
- c语言调用python变量_Python变量
- C# winform 后台控制删除动态生成的控件
- 个人项目对方代码分析(随机生成不同难度试卷)
- HBase解决海量图片存储方案
- HDU 2037 今年暑假不AC
- 利用javascript和WebGL绘制地球 【翻译】