cmd
--管理员身份打开
sqlplus / as sysdba
--管理数据库
shu immediate;
--独占方式开始
startup mount
--修改日期模式
alter database archivelog; --开始DB闪回
alter database flashback on; --开启数据库
alter database open; --查看数据库的归档模式及闪回是否启用
select log_mode,open_mode,flashback_on from v$database;
ARCHIVELOG READ WRITE NO --FLASHBACK_ON为NO,则表示闪回特性尚未启用 --she设置闪回参数 alter SYSTEM set db_recovery_file_dest_size=500M;
alter system set db_recovery_file_dest='D:\app\flashdb'; 
alter system set db_flashback_retention_target=30; --设定保留时间为半小时 --查看闪回参数
show parameter db_recovery ;

-- 查看数据库运行状态
select status from v$instance;

-- 给T_USER赋予所有权限
grant all privileges to T_USER
----查看闪回
select * from v$flashback_database_stat; --查看sga中分配的闪回空间大小
select * from v$sgastat where name like 'flashback%';

闪回测试

常用指令

--查看闪回支持的时间
SELECT
Begin_time,--闪回最早支持时间
end_time,--闪回最晚支持时间
flashback_data,--闪回的数据大小
db_data,--数据库大小
redo_data --,--操作记录大小
estimated_flashback_size --
FROM
v$flashback_database_stat; 2018-02-23 09:28:34
2018-02-23 09:50:46
827392
1253376
386560 -- 查看闪回占用空间大小
SELECT
*
FROM
v$sgastat
WHERE
name LIKE 'flashback%'; --查看闪回记录
SELECT
oldest_flashback_scn ,--允许返回的最早的SCN
oldest_flashback_time ,--允许返回的最早的时间点
retention_target ,
flashback_size / 1024 / 1024 flhbck_siz,
estimated_flashback_size / 1024 / 1024 est_flhbck_size
FROM
v$flashback_database_log; 1095821
2018-02-23 08:35:05
1
11.71875
0

dbflashback.bat

echo 进入sqlplus
sqlplus / as sysdba @dbflashback.sql

dbflashback.sql

shutdown immediate;
startup mount;
flashback database to timestamp to_timestamp('2018-02-23 10:29:00','yyyy-mm-dd hh24:mi:ss');
alter database open resetlogs;
quit;

查询表历史资料

    SELECT a."ID",a."Name" from "TUser"  AS OF TIMESTAMP  to_timestamp('2018-02-23 11:30:04','yyyy-mm-dd hh24:mi:ss')  a;

遇到的问题:

1.ORA-01139: RESETLOGS 选项仅在不完全数据库恢复后有效

alter database open; --启动数据库

2.ORA-01466: 无法读取数据 - 表定义已更改

如果查询表历史资料的时间戳,在table的结构(目前发信删除字段有影响,添加字段没有影响,查询出来资料新增字段值为Null)改变之后,则回报ORA-01466异常。

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

1.使用sqlplus实现闪回

可以接受一个时间标记或一个系统改变号实参

sqlplus几种常用的闪回数据库方法

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>--基于时点闪回

如下面的示例:

SQL> flashback database to timestamp('2010-10-24 13:04:30','yyyy-mm-dd hh24:mi:ss');

SQL> flashback database to scn 918987;

SQL> flashback database ro restore point b1_load;

a.基于时间戳闪回

SQL> select count(1) from usr1.tb1;   --查询用户usr1下表tb1中的记录数

COUNT(1)

----------

404944

SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') tm from dual;  --获得系统当前的时间

TM

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

2010-10-24 13:04:30

SQL> drop user usr1 cascade;     --删除帐户usr1,同时帐户usr1下的所有对象将被删除

SQL> conn scott/tiger;           --使用scott 帐户登陆

SQL> create table tb_emp as select * from emp;  --新创建表tb_emp

SQL> shutdown immediate;        --关系系统

SQL> startup mount ;             --重新到mount状态

SQL> flashback database to timestamp  --实施闪回

2  to_timestamp('2010-10-24 13:04:30','yyyy-mm-dd hh24:mi:ss') ;

SQL> alter database open resetlogs;

SQL> select count(1) from usr1.tb1;    --帐户usr1及其对象tb1被成功闪回

COUNT(1)

----------

404944

SQL> select count(1) from scott.tb_emp;   --闪回成功后,在闪回点之后修改的数据全部丢失

select count(1) from scott.tb_emp

*

ERROR at line 1:

ORA-00942: table or view does not exist

b.基于SCN号闪回

SQL> select current_scn from v$database;   --获得当前的SCN号

CURRENT_SCN

-----------

918987

SQL> drop table usr1.tb1;   --删除用户usr1下的表tb1

SQL> alter system checkpoint;    --手动执行检查点

SQL>  select file#,checkpoint_change# from v$datafile;

FILE# CHECKPOINT_CHANGE#

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

5             921478

SQL> shutdown abort;

SQL> startup mount;

SQL> flashback database to scn 918987;

SQL> select count(1) from usr1.tb1;

COUNT(1)

----------

404944

c.基于时点闪回

SQL> create table t(id int,col varchar2(20));   --创建表t

SQL> insert into t values(1,'ABC');

SQL> insert into t values(2,'DEF');

SQL> commit;

SQL> create restore point bef_damage;    --创建闪回点

SQL> insert into t values(3,'GHI');

SQL> select ora_rowscn,id,col from t;   --查看表t的记录

ORA_ROWSCN         ID COL

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

1874406          1 ABC

1874406          2 DEF

1874406          3 GHI

SQL> shutdown immediate;

SQL> startup mount exclusive;

SQL> flashback database to restore point bef_damage;  --实施时点闪回

SQL> alter database open resetlogs;

SQL> select * from t;   --闪回成功后,闪回点之后的数据丢失

ID COL

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

1 ABC

2 DEF

2.使用RMAN进行flashback database

使用RMAN进行闪回数据库的几种常用办法

RMAN> flashback database to scn=918987;

RMAN> flashback database to sequence=85  thread=1;

SQL> create table scott.tb_emp as select * from scott.emp;

SQL> select count(1) from scott.tb_emp;

COUNT(1)

----------

14

SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') tm from dual;

TM

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

2010-10-24 13:59:38

SQL> drop table scott.tb_emp;

SQL> shutdown abort;

SQL> startup mount;

RMAN>  flashback database

2> to time="to_date('2010-10-24 13:59:00','yyyy-mm-dd hh24:mi:ss')";

SQL> select count(1) from scott.tb_emp;

COUNT(1)

----------

14

查询视图:v$recovery_file_dest将显示闪回区的使用情况

SQL> select name,space_limit/1024/1024 sp_limt

2   ,space_used/1024/1024 sp_usd,space_reclaimable/1024/1024 sp_recl,

3  number_of_files num_fils from v$recovery_file_dest;

NAME                                             SP_LIMT     SP_USD    SP_RECL   NUM_FILS

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

/u01/app/oracle/flash_recovery_area                 2048 472.070313 380.671875         18

可以将某些表空间排除在闪回之外

SQL> alter tablespace users flashback off;

SQL> select name,flashback_on from v$tablespace where ts#=4;

NAME            FLA

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

USERS           NO

如果需要对上述表空间启用闪回功能,则需要在mount模式下对该表空间进行开启该功能。

http://blog.csdn.net/leshami/article/details/6100429

Oracle 闪回归档(Flashback Database)的更多相关文章

  1. Oracle 闪回特性(FLASHBACK DATABASE)

    --===================================== -- Oracle 闪回特性(FLASHBACK DATABASE) --======================= ...

  2. Oracle 闪回归档(Flashback Data Archive)

    --检查权限 SELECT * FROM dba_sys_privs WHERE privilege LIKE '%FLASH%'; --设置权限 GRANT dba TO testuser;--设置 ...

  3. oracle闪回(flashback)的部分实用操作(彻底删除的除外)

    一.数据delete并且commit提交之后的闪回 (一):根据时间来恢复:1.查询数据库当前时间(目的是为了检查数据库时间是否与你电脑时间相近,避免时间不同而将数据恢复到错误时间点)select  ...

  4. Oracle闪回技术(Flashback)

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

  5. Oracle闪回(FlashBack)数据库

    Flashback Database功能非常类似与RMAN的不完全恢复,它可以把整个数据库回退到过去的某个时点的状态,这个功能依赖于Flashback log日志.比RMAN更快速和高效,因此Flas ...

  6. Oracle 闪回

    Oracle 闪回特性(FLASHBACK DATABASE) 本文来源于:gerainly 的<Oracle 闪回特性(FLASHBACK DATABASE) > -========== ...

  7. Oracle闪回flashback

    参考资料:Using Oracle Flashback Technology Oracle 11g的新特性闪回操作 闪回查询 闪回查询 闪回版本查询 闪回事务查询 闪回数据 闪回表 闪回删除 闪回数据 ...

  8. 6. Oracle闪回特性

    Oracle 闪回 (flashback)是9i版本提供的新特性.这一特性:其他数据库(PostgreSQL,Mysql)是羡慕不已.对数据恢复提供非常便捷的方式.闪回技术通常用于快速简单恢复数据库中 ...

  9. Oracle 闪回总结

    一.闪回查询(Flashback Query)1.闪回查询技术1.1 闪回查询机制    闪回查询是指利用数据库回滚段存放的信息查看指定表中过去某个时间点的数据信息,或过去某个时间段数据的变化情况,或 ...

随机推荐

  1. 谷歌浏览器安装jsonview插件方法

    参考https://www.cnblogs.com/whycxb/p/7126116.html,已安装成功.

  2. CSS3透明背景表单

    在线演示 本地下载

  3. java基础之常量与变量

    概要:通过这段时间的工作,发现自己的基础还是很薄弱的,so,you know 常量 一种特殊的变量,程序运行过程中不能改变的值 语法格式:final 数据类型 常量名称 = 常量值 例子:fina i ...

  4. 一言(ヒトコト)Hitokoto API

    『想要成为无论多么悲伤的时候,也能够漂亮微笑的人吧.』 Hitokoto API 更新:2014.02.22 问题/反馈:api # hitokoto.us 数据获取:[ 数据获取 ] 调用举例:[  ...

  5. 经典的MapReduce1解析

    MapReduce1任务图解 最顶层包含4个独立的实体客户端,提交MapReduce作业jobtracker,协调作业的运行.Jobtracker是一个Java应用程序,它的主类是JobTracker ...

  6. Kafka详解六:Kafka如何通过源码实现监控

    问题导读: 1.kafka的消费者组的消费偏移存储,kafka支持两个版本?        2.ConsumerOffsetChecker类的作用是什么?        3.Kafka如何通过源码实现 ...

  7. Composer 入门使用手册

    依赖管理 官网地址:http://docs.phpcomposer.com/00-intro.html#Locally Composer 不是一个包管理器.是的,它涉及 "packages& ...

  8. 动态链接库(dll)文件的动态调用(使用动态链接库,解析Wis文件--测井数据文件的一种)

    在画出井眼轨迹后,老师又给了三口井的数据,不过这次给的数据是WIS格式的,可以使用一个动态链接库进行解析,解析结束后会生成一个固定格式的txt文件,然后再读取txt文件,画井眼轨迹. 学长给了一个可以 ...

  9. 字符串(string+StringBuilder) +正则表达式元字符

    创建字符串: System.String(string是这个类的别名) System.Text.StringBuilder System.String类: 1,创建字符串 string s = &qu ...

  10. 如何激活Windows10系统

    Win10正式企业版系统的激活方法: 按住 win+x 就会出现如下,右击桌面的左下角的“Windows”图标,从其右键菜单中选择“命令提示符(管理员)”项,以便打开 MSDOS界面.   待打开MS ...