oracle 闪回简介
1、闪回技术
闪回技术通常用于快速简单恢复数据库中出现的认为误操作等逻辑错误,从闪回的方式可以分为基于数据库级别闪回、表级别闪回、事务
级别闪回,根据闪回对数据的影响程度又可以分为闪回恢复,闪回查询。闪回恢复将修改数据,闪回点之后的数据将全部丢失。而闪回查询则可
以查询数据被DML的不同版本,也可以在此基础之上确定是否进行恢复等
2、分类
闪回分为表级别,数据库级别,事物等级别。这里只介绍表和数据库常用的。
其中表闪回可以在线操作,而数据库需要在mount状态下了
并且闪回之后的工作全部丢失,其中flash batabase利用了闪回buffer,并且启用了一个单独的进程rwr,flashbacklog并不是记录所有的快的改变,所以使用这个特性的时候,数据库必须是在archivelog模式下
3、设置
1) 闪回表
SQL>show parameter undo;
NAME TYPE VALUE
----------------------------------------------- ---------
undo_management string AUTO
undo_retention integer 900
undo_tablespace string UNDOTBS1
需要保证undo_management = auto 另外还有就是wndo_retention的值说明了闪回查询恢复的时间保留值,我这是15分钟,这个是默认值,另外可以设置
Alter system set undo_retention= 3600是一小时
这样可以通过如下方法查询修改之前的数据,
select * from table1 as of timestamp (systimestamp - interval '60' second);
select * from table1 as of timestamp to_timestamp('2012-01-01 00:00:00','YYYY-MM-DD HH24:MI:SS');
select current_scn from v$database;
select * from table1 as of scn 66631220;
这里还有另外一种查询闪回数据的方式
1,使用sys登陆授权闪回的账户,grant execute on sys.dbms_flashback to xxx
2,可以使用基于时间的闪回或者scn的闪回,execute dbms_flashback.enable_at_time(sysdate-10/1440);然后使用一个查询语句即可查询10分钟前的数据
或者使用execute dbms_flashback.enable_at_system_change_number(current_scn); -- 需要查询当前的scn: select current_scn from v$database;或者select dbms_flashback.get_system_change_number() from dual;
3,使用,execute dbms_flash.disable()取消闪回即可;
2) 闪回数据库
查看数据库是否归档,并且是否开启闪回特性
SQL>select log_mode,open_mode,flashback_on from v$database;
LOG_MODE OPEN_MODE FLASHBACK_ON
---------------------- ------------------
ARCHIVELOG READWRITE YES
如果没有启用的话使用alter database flashback on
查看闪回目录和闪回空间
SQL>show parameter db_recovery
NAME TYPE VALUE
----------------------------------------------- ------------------------------
db_recovery_file_dest string D:\oracle\product\10.2.0\db_1/
flash_recovery_area
db_recovery_file_dest_size big integer 8G
查看闪回保留时间,可以自己增大
SQL> show parameter db_flashback
NAME TYPE VALUE
----------------------------------------------- -------
db_flashback_retention_target integer 1440
查看sga中闪回区大小
SQL>select * from v$sgastat where name like 'flashback%';
POOL NAME BYTES
-------------------------------------- ----------
shared pool flashbackgeneration buff 3981204
4、应用
使用格式
FLASHBACK[STANDBY] DATABASE [<database_name>] TO [BEFORE] SCN <system_change_number> --基于SCN闪回
FLASHBACK [STANDBY] DATABASE[<database_name>] TO [BEFORE]TIMESTMP <system_timestamp_value>--基于时间戳闪回
FLASHBACK [STANDBY] DATABASE[<database_name>] TO [BEFORE]RESTORE POINT <restore_point_name>--基于时点闪回
1) 使用基于时间戳闪回
SQL>create table a(id number);
表已创建。
SQL>insert into a values(1);
已创建 1 行。
SQL>commit
2 /
提交完成。
SQL>drop table a;
表已删除。
SQL>shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL>startup mount
ORACLE 例程已经启动。
TotalSystem Global Area 293601280 bytes
FixedSize 1248600 bytes
VariableSize 96469672 bytes
DatabaseBuffers 188743680 bytes
RedoBuffers 7139328 bytes
数据库装载完毕。
SQL>flashback database to timestamp
2 to_timestamp('2013-12-30 19:13:20','yyyy-mm-dd hh24:mi:ss');
闪回完成。
SQL>alter database open resetlogs;
数据库已更改。
然后查询数据库,将会是之前的状态
2) 基于SCN的闪回
SQL> select current_scn from v$database; --获取当前的SCN号
然后操作一样
SQL> flashback database to scn XXX
打开数据库
3) 基于闪回点的
create restore point point1; --先创建闪回点
然后操作一样
最后
flashback database to restore point point1;
打开数据库
3、回收站
在使用过程中遇到一个现象,我觉得有必要记录下,就是回收站的
查看开启状态
Show parameter recyclebin
NAME TYPE VALUE
------------------------------------ -----------------
recyclebin string on
另外注意如果创建的对象在系统表空间的时候,你drop一个表等操作之后是不妨到回收站的,
另外以下情况将不使用回收站
1、 drop user username cascade
2、 drop table table1 purge
3、 Drop tablespace ts_name including contents
4、 使用flashback命令---清空回收站
oracle 闪回简介相关推荐
- Oracle闪回恢复区(fast recovery area,FRA)
Oracle闪回恢复区(fast recovery area,FRA) 闪回恢复区(Fast Recovery Area,FRA)是一块可选的磁盘位置,可以用来存储与恢复相关的文件,例如控制文件和联机 ...
- oracle闪回 分区,Oracle 闪回区(Oracle Flash recovery area)
闪回区已经有了好几载的岁月了,在10g的时候就被推出一直延续到现在.Oracle闪回区是为RMAN准备的,尽管抛开它我们可以同样完成数据库备份恢复的相关工作,Oracle依旧强烈推荐使用且它让其成为R ...
- 6. Oracle闪回特性
Oracle 闪回 (flashback)是9i版本提供的新特性.这一特性:其他数据库(PostgreSQL,Mysql)是羡慕不已.对数据恢复提供非常便捷的方式.闪回技术通常用于快速简单恢复数据库中 ...
- oracle闪回某个时间点的数据库,oracle11g 使用闪回查询恢复表到过去某一个时间点...
一.新建测试表并插入数据:oracle 二.模拟表数据误删并提交:测试 三.使用闪回查询来查误删前表的数据:(表误删是在15:08分左右误删,所以在15:08分以前表的数据仍是在的):spa 四.用如 ...
- oracle11g创建闪回分区多大,Oracle闪回区大小预估
一个朋友问如何设置Oracle闪回区大小,有什么依据没有. 查证官方文档,有如下描述 For example, if you intend to setDB_FLASHBACK_RETENTION_T ...
- Oracle闪回报错,oracle 闪回区满了,ORA-19815
oracle 闪回区满了,查看日志报错:ORA-19815,命令行输入:sqlplus / as sysdba startup mount //如果你的数据库出现了无法连接的情况时,可以加上这句 ...
- Oracle闪回技术
Oracle闪回技术 我们都清楚的知道,当我们数据库中的数据删除或者更新之后,数据很难再还原回来,在没有了解闪回技术之前,就觉得是没办法还原了,这样子会付出很大的代价. 现在我来总结一下闪回技术的 ...
- oracle闪回ddl,Oracle闪回详解
Oracle 9i 开始支持闪回,Oracle10g开始全面支持闪回功能,Oracle11g有所完善,为大家快速的恢复数据,查询历史数据提供了很大的便捷方法. 本文主要对Oracle常用闪回使用做些详 ...
- Oracle 闪回特性(FLASHBACK DROP RECYCLEBIN)
--============================================== -- Oracle 闪回特性(FLASHBACK DROP & RECYCLEBIN) --= ...
最新文章
- 选择最好用的PyCharm IDE
- Shell 基础介绍 [1]
- dev调试时无法进入下一步_【问题解决方案】Dev C++ 无法调试的问题与解决
- 【kafka】kafka RecordAccumulator封装消息流程
- desc 枚举类型id_想让代码更优雅?Mybatis类型处理器了解一下!
- redis mysql原理_Canal(redis与mysql数据一致性)
- 关于项目404解决方法:前提条件:项目路径都是正确的
- Django在Window下的部署
- python (元祖\列表\集合\字典)基础用法
- 管家婆显示服务器没有加密狗,管家婆软件阿拉丁狗找不到加密狗
- 生物信息学服务器 cpu配置,0[生信技能树]生信服务器配置全攻略
- android平板改成电视盒子,自己动手把闲置的手机或者平板自制成电视的盒子
- 复习单片机:点亮LED(内含实物图+硬件设计+软件编程+原始代码)
- 2022数据安全法律法规标准关注文件整理
- 两个瓶子水怎样一样多_大班科学领域数学活动 | 一样多的水(容积守恒)
- Css、less和Sass(SCSS)的区别
- 计算机通电后自动断电,电脑开机自动断电,详细教您电脑开机自动断电怎么解决...
- 蒲公英wifi怎么卸载干净_蒲公英wifi怎么卸载干净
- ElasticSearch-查询语法(结构化查询)
- 自然语言处理实战——LSTM
热门文章
- 王小川,才是深「爱」李彦宏的那个人?
- 牛客网 SQL24 各城市最大同时等车人数(困难类题目)
- linux缩小根目录分区如何缩小,Linux根目录分区大小调整教程
- ng的upstream模块
- 循环嵌套案例——九九乘法表
- python 知识管理系统_MrDoc: 基于Python开发的Markdown在线文档系统,适合作为个人和小型团队的文档、笔记和知识管理工具...
- Spring Boot 实现excel 批量导入数据(模板下载 ->数据导入->导入失败表格下载)
- svn命令问题:npm WARN ajv-keywords@3.5.0 requires a peer of ajv@^6.9.1 but none is installed. You must in
- 六级(2021/6-1) Text1
- Maven环境变量的配置(详细教程)