默认情况数据库的flashback database是关闭的。 
启用Flashback Database 步骤:
1.配置Flash Recovery Area
检查是否启动了flash recovery area:

SQL> show parameter db_recovery_file; --或者是show parameter db_recover; 两个语句执行结果一致。

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string D:\app\Administrator\flash_recovery_area db_recovery_file_dest_size big integer 3912M

2.启动flashback database

SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount;
ORACLE 例程已经启动。 Total System Global Area 855982080 bytes
Fixed Size 2180544 bytes
Variable Size 587205184 bytes
Database Buffers 260046848 bytes
Redo Buffers 6549504 bytes
数据库装载完毕。
SQL> alter database flashback on; 数据库已更改。 SQL> alter database open; 数据库已更改。 SQL> select flashback_on from v$database; FLASHBACK_ON
------------------
YES SQL>

 SQL> select force_logging from v$database; --查看是否启用

FOR
  ---
  YES
  如果未启用,则用如查语句启用force logging:
  SQL> alter database force logging; --启用force logging

3.检查是否启用了归档(必须开户归档模式)

SQL> archive log list;
数据库日志模式 存档模式
自动存档 启用
存档终点 USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列 10
下一个存档日志序列 12
当前日志序列 12
SQL>

4. 查询当前的scn及当前时间

SQL> select current_scn from v$database;

CURRENT_SCN
-----------
1126864
SQL> select sysdate from dual; SYSDATE
--------------
15-10月-14 SQL> select to_char(sysdate,'YY-MM-DD HH24:MI:SS') TIME FROM DUAL; TIME
-----------------
14-10-15 23:43:15

5.删除scott.emp表
SQL> drop table bonus;

表已删除。

6.重启DB 到mount
Flashback Database 实际是对数据库的一个不完全恢复操作,因为需要关闭数据库重启到mount状态

SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount;
ORACLE 例程已经启动。 Total System Global Area 855982080 bytes
Fixed Size 2180544 bytes
Variable Size 587205184 bytes
Database Buffers 260046848 bytes
Redo Buffers 6549504 bytes
数据库装载完毕。
SQL>

7.执行恢复:分timestamp 或者SCN两种

SQL> flashback database to timestamp to_timestamp('14-10-15 23:43:15','YY-MM-DD HH24:MI:SS');

闪回完成。

或者:SQL> flashback database to scn 1126864;

闪回完成。

8.打开数据库
在执行完flashback database 命令之后,oracle 提供了两种方式让你修复数据库:
1). 直接alter database open resetlogs 打开数据库,当然,指定scn 或者timestamp 时间点之后产生的数据统统丢失。
2). 先执行alter database open read only 命令,以read-only 模式打开数据库,然后立刻通过逻辑导出的方式将误操作涉

及表的数据导出,再执行recover database 命令以重新应用数据库产生的redo,将数据库修复到flashback database 操作前

的状态,然后再通过逻辑导入的方式,将之前误操作的表重新导入,这样的话对现有数据的影响最小,不会有数据丢失。
使用第一种方式打开数据库后可看到之前删除的scott.bonus表已还原。

SQL> alter database open resetlogs;
数据库已更改。 SQL> conn scott/tiger@orcl;
已连接。
SQL> select * from tab; TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
BIN$xOhMA3Y1RcGfglRwvq8V+g==$0 TABLE
BONUS TABLE
DEPT TABLE
EMP TABLE
SALGRADE TABLE
SYS_TEMP_FBT TABLE 已选择6行。

二、与Flashback Database相关的3个视图
1.V$database
这个视图可以查看是否启用了Flashback database功能
SQL> select flashback_on from v$database;
FLASHBACK_ON
------------------
YES

2.V$flashback_database_log
Flashback Database 所能回退到的最早时间,取决与保留的Flashback Database Log 的多少, 该视图就可以查看许多有用的

信息。
Oldest_flashback_scn / Oldest_flashback_time : 这两列用来记录可以恢复到最早的时点
Flashback_size: 记录了当前使用的Flash Recovery Area 空间的大小
Retention_target: 系统定义的策略
Estimated_flashback_size: 根据策略对需要的空间大小的估计值

SQL> select *from v$flashback_database_stat;

BEGIN_TIME END_TIME FLASHBACK_DATA DB_DATA REDO_DATA ESTIMATED_FLASHBACK_SIZE
----------- ----------- -------------- ---------- ---------- ------------------------
2014/10/15 2014/10/16 2269184 4816896 228864 0

3. V$flashback_database_stat
这个视图用来对Flashback log 空间情况进行更细粒度的记录和估计。 这个视图以小时为单位记录单位时间内数据库的活动量


Flashback_Data 代表Flashback log产生数量,
DB_Date 代表数据改变数量,
Redo_Date代表日志数量,
通过这3个数量可以反映出数据的活动特点,更准确的预计Flash Recovery Area的空间需求

SQL> select *from v$flashback_database_stat;

BEGIN_TIME END_TIME FLASHBACK_DATA DB_DATA REDO_DATA ESTIMATED_FLASHBACK_SIZE
----------- ----------- -------------- ---------- ---------- ------------------------
2014/10/15 2014/10/16 2433024 4849664 396800 0

《FROM:http://blog.csdn.net/tianlesoftware/article/details/4677378

===============

其它说明:

Flashback Query主要是用来恢复指定时间点的记录,Flashback Table用来恢复被删除或指定时间点的表;flashback database则直接恢复整个数据库。
Flash_recovery_area这个区域要足够大,至少可放得下所有的数据文件、控制文件、重做日志文件、备份文件……归档文件,Flashback logs……
1、修改闪回区大小及位置:
SQL> alter system set db_recovery_file_dest_size= 5g;

系统已更改。

SQL> alter system set db_recovery_file_dest='E:\flash_recovery_area';

系统已更改。

2、启用force logging
SQL> select force_logging from v$database; --查看是否启用

FOR
---
YES
如果未启用,则用如查语句启用force logging:
SQL> alter database force logging;

3、db_flashback_retention_target参数:
SQL> show parameter db_flashback_retention_target;

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_flashback_retention_target integer 1440
该参数用来控制Flashback Logs数据保留时间,或者说是flashback database能够恢复的最早时间。

4、制约因素
Flashback database用来将数据库中的数据恢复到之前的某个时间点,而非介质恢复,因此不能使用flashback database恢复之前被删除的某个数据文件。
如果控制文件被重建,则所有的flashback logs全部失效,所以不能将Flashback database恢复到控制文件被重建之前。
不支持对数据库执行过Shrink收缩操作之后进行恢复。

《FROM:http://www.2cto.com/database/201201/117266.html

相关视图:

1. V$database
 这个视图可以查看是否启用了Flashback database功能
SQL> select flashback_on from v$database;
2. V$flashback_database_log
 Flashback Database 所能回退到的最早时间,取决与保留的Flashback Database Log 的多少, 该视图就可以查看许多有用的信息。
Oldest_flashback_scn / Oldest_flashback_time : 这两列用来记录可以恢复到最早的时点
Flashback_size: 记录了当前使用的Flash Recovery Area 空间的大小
Retention_target: 系统定义的策略
Estimated_flashback_size: 根据策略对需要的空间大小的估计值
3. V$flashback_database_stat
这个视图用来对Flashback log 空间情况进行更细粒度的记录和估计。 To query the V$FLASHBACK_DATABASE_LOG to get the lowest SCN or the nearest TIMESTAMP to decide the recovery possibility.这个视图以小时为单位记录单位时间内数据库的活动量,Flashback_Data 代表Flashback log产生数量,DB_Date 代表数据改变数量,Redo_Date代表日志数量,通过这3个数量可以反映出数据的活动特点,更准确的预计Flash Recovery Area的空间需求。

SQL> select dbid,name,log_mode,flashback_on from v$database;
DBID NAME LOG_MODE FLASHBACK_ON
---------- --------- ------------ ------------------
1399092762 ORCL ARCHIVELOG YES SQL> select * from v$flashback_database_log;
OLDEST_FLASHBACK_SCN OLDEST_FLASHBACK_TIME RETENTION_TARGET FLASHBACK_SIZE ESTIMATED_FLASHBACK_SIZE
-------------------- --------------------- ---------------- -------------- ------------------------
2447065 2015/3/20 16:11:55 1440 63766528 138534912 SQL> select * from v$flashback_database_stat
2 ;
BEGIN_TIME END_TIME FLASHBACK_DATA DB_DATA REDO_DATA ESTIMATED_FLASHBACK_SIZE
----------- ----------- -------------- ---------- ---------- ------------------------
2015/3/21 1 2015/3/21 1 1712128 2654208 906752 0 SQL>

flashback database操作步骤的更多相关文章

  1. Flashback Database 闪回数据库

    一.  Flashback Database 说明 Flashback Database 功能非常类似与 RMAN 的不完全恢复, 它可以把整个数据库回退到过去的某个时点的状态, 这个功能依赖于 Fl ...

  2. Oracle 闪回特性(FLASHBACK DATABASE)

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

  3. ORACLE FLASHBACK DATABASE 知识整理

    1.知识储备 1)    只有SYSDBA有权执行,闪回前一定要记录当前SCN 2)    需要停机,并要求处于ARCHIVELOG模式中 3)    闪回日志不能被复用和归档,是自动管理的.RVWR ...

  4. Windows2008 R2上完全卸载Oracle操作步骤

    Windows2008 R2上完全卸载Oracle操作步骤 1.关闭Oracle所有的服务,按[win+R]运行[services.msc]找到所有Oracle开头的服务,点击停止. 2.使用Orac ...

  5. 4.2 Oracle Dataguard failover 操作步骤

    在11g里面,Oracle认为最理想的情况是,虽然Oracle数据库不能打开,但是可以启动到 mount状态.Mount状态之所以重要,就在于如果可以到这个阶段,控制文件control_file就可以 ...

  6. Windows7上完全卸载Oracle 12c操作步骤

    注:本文来源于:< Windows7上完全卸载Oracle  12c操作步骤 > 1.关闭Oracle所有的服务,按[win+R]运行[services.msc]找到所有Oracle开头的 ...

  7. ORACLE 11gR2 RAC添加删除(正常及强制)节点操作步骤(删除篇)

    ORACLE 11gR2 RAC添加删除(正常及强制)节点操作步骤(删除篇) 本文主要转载 [  http://www.cnxdug.org/?p=2511 ] 有部分细节自己实验添加,再此谢谢前辈. ...

  8. 基于Python项目的Redis缓存消耗内存数据简单分析(附详细操作步骤)

    目录 1 准备工作 2 具体实施   1 准备工作 什么是Redis? Redis:一个高性能的key-value数据库.支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使 ...

  9. MySql 新建用户与数据库的实际操作步骤

    以下的文章主要讲述的是MySql 新建用户的创建.新建数据库的实际操作步骤以及用户如何进行授权和删除用户的实际操作方案.还有对修改密码的实际操作,以下就是正文的主要内容的创建. 1.MySql 新建用 ...

随机推荐

  1. JavaScript 函数方法 - bind()

    Function.prototype.bind() ECMAScript5中新增的方法,但是在ECMAScript3可以通过模仿实现其方法作用 作用: bind() 方法会创建一个新函数,当这个新函数 ...

  2. (转)sql语句中charindex的用法

    假如你写过很多程序,你可能偶尔会碰到要确定字符或字符窜串否包含在一段文字中,在这篇文章中,我将讨论使用CHARINDEX和PATINDEX函数来搜索文字列和字符串.我将告诉你这两个函数是如何运转的,解 ...

  3. LNMP优化

        LNMP优化 LNMP优化从系统安全,系统资源占用率,及web服务并发负载这三个方面体现,并   且主要体现在web服务并发负载这一方面.     1:首先进行linux优化加固  Linux ...

  4. Access restriction: The type * is not accessible due to restrict,报错问题

    解决方案1: Eclipse 默认把这些受访问限制的API设成了ERROR.  Windows -> Preferences -> Java -> Compiler -> Er ...

  5. Codeforces Round #350 (Div. 2)A,B,C,D1

    A. Holidays time limit per test 1 second memory limit per test 256 megabytes input standard input ou ...

  6. QWidget使用qss样式的background-image属性

    最近在学习Qt使用QSS样式美化窗口部件的内容.发现在对QWidget应用background-image改变窗口背景图片时,QWidget的窗口背景并未生效.工程建立如下:    1.新建 Qt A ...

  7. Python 学习日记(第三周)

    知识回顾 在上一周的学习里,我学习了一些学习Python的基础知识下面先简短的回顾一些: 1Python的版本和和安装 Python的版本主要有2.x和3.x两个版本这两个版本在语法等方面有一定的区别 ...

  8. 深度学习word2vec笔记之应用篇

    好不容易学了一个深度学习的算法,大家是否比较爽了?但是回头想想,学这个是为了什么?吹牛皮吗?写论文吗?参加竞赛拿奖吗? 不管哪个原因,都显得有点校园思维了. 站在企业的层面,这样的方式显然是不符合要求 ...

  9. PHP之CI框架架设错误--Only variable references should be returned by reference

    解决参考 http://www.rafalinux.com/ La búsqueda fue bastante infructuosa, y hasta hace un par de días, na ...

  10. Qt实现基于G.729A(G729A)的语音聊天

    一.G.729协议简介G.729协议是由ITU-T的第15研究小组提出的,并在1996年3月通过的8Kbps的语音编码协议.G.729系列主要有以下几种:G.729—最基本的G.729标准协议,原始版 ...