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;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/531936.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

poj 2528 Mayor's posters(线段树+离散化)

1 /*2 poj 2528 Mayors posters 3 线段树 离散化4 5 离散化的理解:6 给你一系列的正整数, 例如 1, 4 , 100, 1000000000, 如果利用线段树求解的话,很明显7 会导致内存的耗尽。所以我们做一…

汉仪尚巍手书有版权吗_为什么“汉仪尚巍手书”会大行天下?

昨夜,我写了篇文章《莫选最丑尚巍体,要选美丽中国字!》发到朋友圈、微信群里,得到了一些朋友的反馈,有位朋友居然还认识尚巍,把他的微信推给了我。我加了尚巍的微信,待他通过后,便连…

如何查询linux服务器的网卡,Linux服务器如何查看有没有无线网卡

还是实验室那台服务器,连不上网。有没有界面,所以想着如何用一些命令来链接上热点。当然,在Linux下链接wifi没有win下那么一点就好了!首先我们需要的基本条件就是: 服务器上有无线网卡。[roottomato2 ~]# iwconfiglo n…

java中如何生成可执行的jar文件

java中如何生成可执行的jar文件最简单的方法就是:jar -cfe Card.jar CardLayoutDemo CardLayoutDemo$1.class CardLayoutDemo$myAct ionListener.class CardLayoutDemo.class myClosingListener.class myPanel.class jar命令为java自带的专用打包工具; c…

ecs硬盘数据迁移_阿里云ECS新增数据盘以及迁移数据方法

第一、检查数据占用以及数据盘我们从探针可以看到,本身有30GB的硬盘只用到不到10GB,而且系统和WDCP面板/网站都系统盘中。通过fdisk -l 我们可以看到还有21GB的没有格式化和挂载,系统只用到10.7GB。第二、对数据盘分区fdisk /dev/xvdb第三、查…

linux文件浏览 ls,linux浏览文件命令

在linux下我们要浏览文件的内容,可以通过相关的命令来执行操作,下面由学习啦小编为大家整理了linux下浏览文件命令的相关知识,希望对大家有所帮助!linux浏览文件命令1.cat[功能说明]查看文件的内容#cat本身是一个串接命令,把指定一…

python的多行语句可以使用反斜杠_python 为什么不用分号作终止符?

作者:豌豆花下猫 来源:Python猫一般而言,编程语言中使用分号“;”来实现两种目的:作为语句分隔符:使用分号来分隔语句(statement),这样就能在一行代码中书写多条语句(一行…

linux dlopen 内存,Linux下加载库的有关问题(dlopenm, dlsym)

Linux下加载库的问题(dlopenm, dlsym)如题, 程序中发现load库成功,但是加载函数的时候报错: undefined symbol functionname是很简单的一个东西,因为不熟悉,所以老是弄不好,请各位指导!代码如下&#xff1a…

grafana zabbix 模板_Grafana + Zabbix 监控系统搭建

rafana:一个静态项目,需要联合nginx、apache等使用,友好的如下显示首先安装 grafana官网http://grafana.org/download/ 有好多版本可选,好几种包形式,三种安装方式(官方说明):1、yum直接安装 rpm包&#xf…

java二维数组的常见初始化

public class Test{public static void main(String[] args){//第一种&#xff1a;//int[][] arr1 new int[][]{{1,2}, {2, 3}, {4, 5}};int[][] arr1 {{1,2}, {2, 3}, {4, 5}};System.out.println("arr1的数值&#xff1a;");for(int i0; i<3; i)for(int j0; j…

linux svn 备份脚本,SVN热备份脚本

SVN热备份脚本2011-08-03 徐磊#!/bin/sh########################################################## Script to do incremental rsync backups# modidfy: wanjie.info# date: 2010/06/04# 这个脚本不是xulei写的&#xff0c;我只是拿来主义&#xff0c;当然如果大家看不明白…

python如何删除对象属性_如何优雅的删除对象中的指定属性?

要优雅的话&#xff0c;使用 Lodash 的 omit 方法移除不要的属性&#xff1a;const object { a: 1, b: 2, c: 3 };const result _.omit(object, [a, c]);// > { b: 2 }或者用 pick 方法只留下需要的属性&#xff1a;const object { a: 1, b: 2, c: 3 };const result _.p…

java接口的应用举例

/* 接口的理解&#xff1a; 接口就是前期定义一个规则&#xff01;某一个类A&#xff0c;为了扩展自身的功能&#xff0c;对外提供这个接口&#xff0c;后期只要是符合这个接口&#xff08;规则&#xff09; 的类&#xff08;这个类是接口的子类&#xff09;&#xff0c;将子类…

linux 关闭scp服务器,Linux系统如何关闭scp和sftp命令

Linux系统如何关闭scp和sftp命令。sftp介绍sftp是Secure File Transfer Protocol的缩写&#xff0c;安全文件传送协议。可以为传输文件提供一种安全的加密方法。sftp 与 ftp 有着几乎一样的语法和功能scp介绍两台主机之间传输文件一般使用scp命令,通常用scp命令通过ssh获取对方…

自动补足算法是什么_如何自定义Shell(Fish版)的自动补全规则?

默认fish能自动补全的命令已经相当多了,常见的apt-get&#xff0c;rpm等都没问题&#xff0c;但今天却发现没有lsusb的补全规则,查看了下文档&#xff0c;发现规则比bash-completion简单不少&#xff0c;记录下&#xff5e;简单补全1. 建立自动补全规则文件默认自动补全路径由全…

嵌入式Linux安装Python环境,linux环境下安装python 3

说明&#xff1a;在linux环境下&#xff0c;都默认安装python 2的环境&#xff0c;由于python3在python2的基础上升级较大&#xff0c;所以安装python 3环境用于使用最新的python 3的语法。安装过程&#xff1a;1.下载&#xff0c;上传python 3源码包至服务器2.解压缩python 3压…

java接口中多继承的问题

java中支撑多继承吗&#xff1f; 支持-》接口啊 为什么接口支持多继承呢&#xff1f;因为接口中没有方法体&#xff01;即使可能两个接口中有一样的抽象方法&#xff0c;但是 只会调用子类中覆盖该同样抽象方法的具体方法&#xff01;不会引起调用的歧义&#xff01; interface…

图案设计灵感怎么写_平面设计理念怎么写100多字

平面设计求职者在找工作的过程中,有时个人简历起着很重要的作用。下面是由小编整理而成的平面设计简历范文参考&#xff0c;谢谢你的阅读。平面设计简历范文参考(一)xxx一年以上工作经验|男|27岁(3月11日)居住地&#xff1a;杭州电话&#xff1a;151*******(手机)E-mail&#x…

java匿名类和匿名对象及this的其他用法

/* 匿名内部类&#xff1a;就是内部类的简写格式。 必须前提&#xff1a;内部类必须继承或者实现一个类或者接口。 匿名内部类其实就是一个匿名 子类对象。 格式&#xff1a;new 父类对象 or 接口(){子类内容&#xff1b;&#xff08;覆盖父类的&#xff0c; 而且可以增加自己的…

linux下drcom无法上网,drcom为什么还是不能上网啊!

drcom为什么还是不能上网啊&#xff01;发布时间:2010-04-28 20:56:56来源:红联作者:hualong[is] 本帖最后由 hualong 于 2010-4-30 16:45 编辑 [/i]主要是因为我搞很久的drcom&#xff0c;还是不能上网啊&#xff01;&#xff01;截一个图让前辈们帮忙分析一下。安装了bulid-e…