oracle 数据库回闪,各种数据库闪回的总结
本帖最后由 guoyJoe 于 2013-3-26 21:15 编辑
一、Fashback Query闪回查询:Books-->APP-->Application Developer's Guide - Fundamentals-->Flashback
1、应用Flashback Query查询过去的数据
select * from t1 as of scn 44545454;
select * from t1 as of timestamp to_timestamp('2012-09-28:09:20:13','yyyy-mm-dd:hh24:mi:SS');
select * from t1 as of timestamp sysdate-5/1440;
--select to_char(sysdate,'yyyy-mm-dd:hh24:mi:ss') sys_time,to_char(scn_to_timestamp(current_scn),'yyyy-mm-dd:hh24:mi:ss') scn_to_time,timestamp_to_scn(sysdate) date_to_scn,dbms_flashback.get_system_change_number scn1,current_scn scn2 from v$database;
2、应用Flashback Query查询操作的事务
(1)使用Flashback Version Query 查询记录修改版本
select current_scn from v$database;
DML操作........
insert into t1 values(20,'gyj20');
commit;
update t1 set name='gyj200000' where id=20;
commit;
delete from t1 where id=20;
commit;
select current_scn from v$database;
SELECT ID,NAME,VERSIONS_STARTSCN STARTSCN,VERSIONS_ENDSCN ENDSCN,VERSIONS_OPERATION OPERATION,VERSIONS_XID XID
FROM T1 VERSIONS BETWEEN SCN 2942841 AND 2942947;
--VERSIONS_STARTSCN:该条记录操作时的SCN,如果为空,表示该行记录是在查询范围外创建的
--VERSIONS_ENDSCN:该条记录失效时的SCN,如果为空,说明记录在这段时间无操作,或者已经被删数,配合VERSIONS_OPERATION
--VERSIONS_OPERATION:I表示insert、D表示delete、U表示update
--VERSIONS_XID:该操作的事务ID
(2)使用Flashback Transaction Query 查询事务信息(可以做审计)
alter database add supplemental log data; //Oracle11g禁用了supplemental logging
select current_scn from v$database;
DML操作........
select current_scn from v$database;
select xid,commit_scn,commit_timestamp,operation,undo_sql
from flashback_transaction_query q where q.xid in (select
versions_xid from t1 versions between SCN 2943656 and 2943676);
SQL> DESC FLASHBACK_TRANSACTION_QUERY --能获得这个事务执行时的很多信息,包括UNDO语句
Name Null? Type
----------------- -------- ------------
XID RAW(8) --事务ID,对应Versions Query中的VERSIONS_XID
START_SCN NUMBER --事务开始时的SCN
START_TIMESTAMP DATE --事务开始时间
COMMIT_SCN NUMBER --事务提交时的SCN,该列为空的话,说明事务为活动事务
COMMIT_TIMESTAMP DATE --事务提交时间
LOGON_USER VARCHAR2(30) --操作用户
UNDO_CHANGE# NUMBER --UNDO SCN
OPERATION VARCHAR2(32) --执行操作,有几个值:Delete、Insert、Update、B、UNKNOWN
TABLE_NAME VARCHAR2(256)--DML操作对象的表名
TABLE_OWNER VARCHAR2(32) --表的属主
ROW_ID VARCHAR2(19) --DML操作记录的行地址
UNDO_SQL VARCHAR2(4000)--撤销该操作对应的SQL
二、Flashbackup Table闪回表:Books-->ADM-->Administrator's Guide-->flashback
1、从undo表空间恢复
select row_movement from user_tables where table_name='T1';
alter table t1 enable row movement;
select * from t1;
select current_scn from v$database;
delete from t1;
commit;
select * from t1;
select * from t as of scn 9999;
flashback table t1 to scn 9999;
flashback table t1 to timestamp sysdate-5/1440;
--create temporary tablespace temp2 tempfile '/u01/app/oracle/oradata/bxdb/temp02.dbf' size 50M;
--alter user gyj temporary tablespace temp2;
2、利用recyclebin,drop闪回
drop table t1;
select object_name,original_name,droptime from recyclebin;
flashback table t1 to before drop;
--flashback table t1 to before drop rename to t1_old;
实验:多个名为t1的表恢复会是什么顺序???
回收站清除是按什么规则的??????
恢复表时索引也同时被恢复,但索引名称是????
drop table t1 purge; --真正删除表
三、数据库闪回配置:Books-->BAK-->Backup and Recovery Advanced User's Guide-->flashback
v$flashback_database_log
1、闪回区的大小
db_recovery_file_dest
db_recovery_file_dest_size
2、闪回日志保留时间
db_flashback_retention_target
3、设闪回
startup mount
alter database flashback on;
alter database open;
4、闪回操作要在mount下做
一般在备库中做完测试,用闪回恢复到测度前状态
flashbackup database TO TIMESTAMP(SYSDATE-1/24);
alter database open;
5、建闪回点
create restore point 恢复点名字 [guarantee flashback database]
drop restore point 恢复点名字
flashback database to restore point re_data;
6、***场景1:
show parameter db_recover
arcive log list;
select flashback_on,force_logging from v$database;
alter database force logging;
select dbms_flashback.get_system_change_number from dual;
drop table t1 purge;
shutdown immediate;
startup mount;
flashback database to restore point re_data;
--flashback database to scn 1511225;
alter database open resetlogs;
select * from t1;
oracle 数据库回闪,各种数据库闪回的总结相关推荐
- oracle 闪回查询,闪回版本查询,闪回事务查询,闪回表,闪回删除,闪回数据库
文章目录 1. 闪回查询 1.1. 闪回时间查询 1.2. 闪回scn查询 (1) 获取scn号的方法 (2) 闪回scn查询命令 2. 闪回版本查询 3. 闪回事务查询 4. 闪回表 5. 闪回删除 ...
- Oracle数据库中的锁,闪回操作(二)
目录 1.锁机制 2.闪回 (1)查询闪回 (2)表闪回 (3)删除闪回 (4)回收站管理 (5)数据库闪回 (6)归档闪回 3.Undo表空间 (1)undo表空间管理的优点 (2)undo表空间管 ...
- oracle对查询结果求和_Oracle 闪回技术详解
概述 闪回技术是Oracle强大数据库备份恢复机制的一部分,在数据库发生逻辑错误的时候,闪回技术能提供快速且最小损失的恢复(多数闪回功能都能在数据库联机状态下完成).需要注意的是,闪回技术旨在快速恢复 ...
- 闪存数据库概念与技术
闪存数据库概念与技术 中国高校第一本闪存数据库研究专著 历时两年,倾心之作 内容原创,品质保证 网络发布,免费共享 版权所有,侵权必究 243页,40余万字,系统研究闪存数据库 (点击这里下载专著 ...
- mysql32位的能装在64位的电脑上吗,mysql32位能装64位电脑【excle中怎么将log值变回原来的数据库】...
excle中怎么将log值变回原来的数据库 通过数据备份跟binlog记录,可能原来的数据 恢复步骤 a)创建新的数据库 create database rollback_db; b)将数据库备份倒入 ...
- 数据库即时搜索_加速数据库恢复; 即时回滚和数据库恢复
数据库即时搜索 Accelerated database recovery will be the topic of this article, including killing an active ...
- 数据库事务开启,提交与回滚
概述 事务是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位. 基于事务的原子性.一致性.隔离性和持续性特征,可以将相关的数据操作定义到一个事务当中.如果操作过程中 ...
- Memblaze与南大通用签署战略合作,共推闪存数据库一体机方案
北京,2016年10月17日-Memblaze宣布正式与天津南大通用数据技术股份有限公司(以下简称南大通用)签署战略合作协议.未来双方将在技术研发.解决方案及市场拓展等层面建立长期稳定的战略合作关系, ...
- mysql 事务回滚语句_数据库事务回滚语句-sql事务回滚语句是-用于事务回滚的sql语句...
sql 回滚语句 这种情况的数据恢复只能利用事务日志的备份来进行,所以如果你的SQL没有进行相应的全库备份 或不能备份日志(truncate log on checkpoint选项为1),那幺就无法进 ...
- mysql有闪回吗_MySQL的闪回策略
闪回原理 既然binlog以event形式记录了所有的变更信息,那么我们把需要回滚的event,从后往前回滚回去即可. 对于单个event的回滚,我们以表test.user来演示原理 mysql> ...
最新文章
- 如何去使用Python爬虫来爬取B站的弹幕数据?
- Google App Engine:在您自己的域中托管应用程序
- 链表逆序的原理及实例
- 使用MbrFix.exe修复MBR分区表
- 使用ANT编译项目报错 com.sun.image.codec.jpeg does not exist 解决方法
- JSP九大内置对象及四个作用域
- centos安装apache+mysql_CentOS7安装apache+mysql+php环境
- C++类内初始值的初始化形式
- 郑州中小幼计算机初中级,郑州市中小幼计算机等级考试大纲.doc
- 避坑:关于两个HC-05主从一体蓝牙模块互连,连不上问题
- python制作动态时钟_python+pygame制作一个可自定义的动态时钟和详解
- day 1 | 704. 二分查找、27. 移除元素
- http 请求的7 种方法
- 谈谈百度的短视与无奈
- C#,数值计算,矩阵的乔莱斯基分解(Cholesky decomposition)算法与源代码
- Windows的此版本即將過期
- outlook 不能打开错误解决方法
- 应急制冷机房精密空调 数据中心应急制冷系统
- HTML+js实现猜字小游戏
- nginx 安装 php
热门文章
- Springboot2.x +JPA 集成 Apache ShardingSphere 同库分表
- Git bash 编码格式配置_02
- Cannot obtain primary key information from the database, generated objects may be incomplete
- Spring中,使用工具类无法自动注入service
- vue-router 动态路由匹配
- Java-Super
- Linux系统json文件打中文,如何在 Linux 终端上漂亮地打印 JSON 文件
- 点读笔客户端_新手妈妈如何选购点读笔
- QtCreator下使用c++标准输入cin输出cout没有阻塞等待输入
- centos7已有数据硬盘挂载_干货!如何给虚拟机增加虚拟硬盘,Linux再分区挂载