`
ssuhvs
  • 浏览: 8518 次
  • 性别: Icon_minigender_1
  • 来自: 济南
最近访客 更多访客>>
社区版块
存档分类
最新评论

闪回数据库(Flashback Database)

阅读更多
17.3  闪回数据库(Flashback Database)
在设置闪回恢复区之后,就可以配置和启用闪回数据库的功能了。本节将详细介绍闪回数据库的配置和使用。
17.3.1  闪回数据库概述
闪回数据库能够使数据库迅速回滚到以前的某个时间点或者某个SCN(系统更改号)上。这对于数据库从逻辑错误中恢复特别有用,而且也是大多数逻辑损害时恢复数据库的最佳选择。该功能不基于撤销数据(undodata),而是基于闪回日志。
Oracle系统为了使用数据库的闪回功能,特别创建了另外一组日志,就是Flashback_logs(闪回日志),记录数据库的闪回操作。
使用闪回数据库恢复比使用传统的恢复方法要快得多,这是因为恢复不再受数据库大小的影响。也就是说,传统的恢复时间(MTTR)是由所需重建的数据文件的大小和所要应用的归档日志的大小决定的。而使用闪回数据库恢复,恢复时间是由恢复过程中需要备份的变化的数量决定的,而不是数据文件和归档日志的大小。
闪回数据库的结构是由恢复写入器(RVWR)后台进程和闪回数据库日志组成的。
如果要启用闪回数据库功能,RVWR 进程也要启动。
闪回数据库日志是一种新的日志文件类型,它包括物理数据块先前的“图像”。
闪回恢复区是闪回数据库的先决条件,因为RVWR进程要将闪回日志写入该区域中,所以在使用闪回数据库功能时,必须要启用该区。
对于逻辑损害和用户的误操作,闪回数据库是不完全恢复的优秀替代。但是必须要指出的是,闪回数据库有其自身的局限性。
l          使用闪回数据库恢复不能解决媒介故障。若要从媒介故障中恢复,仍然需要重建数据文件和恢复归档日志文件。
l          截短数据文件(缩小数据文件到较小的尺寸),用闪回数据库不能恢复此类操作。
l          如果控制文件已被重建,不能使用闪回数据库。
l          不能完成删除一个表空间的恢复。
l          最多只能将数据库恢复到在闪回日志中最早可用的那个SCN,并不能将数据库恢复到任意的SCN值。
17.3.2  配置闪回数据库
配置闪回恢复区以后,要启用闪回数据库功能,还需要进行进一步的配置,需要注意如下几点。
l          配置闪回恢复区。
l          数据库需要运行在归档模式下(Archivelog)。
l          通过数据库参数DB_FLASHBACK_RETENTION_TARGET,来指定可以在多长时间内闪回数据库。该值以分钟为单位,默认值为1440(1天),更大的值对应更大的闪回恢复空间,类似于闪回数据库的基线。
l          需要在MOUNT状态下使用ALTER DATABASE FLASHBACK ON 命令启动闪回数据库功能。
下面我们通过具体的实例来演示如何启动闪回数据库功能。
1.登录系统
SQL> conn /as sysdba;
Connected.
SQL> show parameter db_recovery_file_dest;
NAME                           TYPE          VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest        string         /oratest/app/oracle/flash_recovery_area
db_recovery_file_dest_size    big integer     2G
SQL>
SQL> show parameter flashback;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_flashback_retention_target        integer     1440
SQL>
2.确认实例是否为归档模式(需要设置为归档模式下运行)
SQL> archive log list;
Database log mode              No Archive Mode
Automatic archival             Disabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     29
Current log sequence           31
SQL>
当前的数据库处于非归档模式下。
3.将数据库改为在归档模式下运行,并且打开flashback功能
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.
Total System Global Area  418484224 bytes
Fixed Size                  1300324 bytes
Variable Size             310380700 bytes
Database Buffers          100663296 bytes
Redo Buffers                6139904 bytes
Database mounted.
SQL> alter database archivelog;
Database altered.
4.设置参数DB_FLASHBACK_RETENTION_TARGET为希望的值,该值的单位为分钟,本例设置为3天,1440×3=4320
SQL> alter db_flash_back_retention_target=4320;
Database altered.
5.启动闪回数据库,将数据库置为open状态
SQL> alter database flashback on;
Database altered.
SQL> alter database open;
Database altered.
6.查看更改后的参数
SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     29
Next log sequence to archive   31
Current log sequence           31
SQL>
经过以上对数据库闪回功能的设置,Oracle 11g的flashback database功能可自动搜集数据,我们只要确保数据库是归档运行即可。所归档区由DB_RECOVERY_FILE_DEST参数指定。
17.3.3  使用闪回数据库
1.FLASHBACK DATABASE语法说明
Oracle 11g的FLASHBACK命令可以对表级进行恢复,也可以对数据库级进行恢复。要对数据库级进行恢复,就要用到FLASHBACK DATABASE命令,它的语法如下:
FLASHBACK  [STANDBY]  DATABASE <database>
{ TO [ SCN | TIMESTAMP ] <exp> |TO BEFORE [ SCN |TIMESTAMP] <exp>}
其中各项参数说明如下。
l          STANDBY:指定恢复备用的数据库到某个SCN或者某个时间点上。如果没有备用数据库,则系统会返回一个错误。如果省略STANDBY子项,则数据库可能是主数据库,也可能是备用数据库。
l          TO SCN <exp>:指定一个系统改变号SCN。
l          TO BERORE SCN <exp>:恢复到之前的SCN。
l          TO TIMESTATMP:需要恢复的时间表达式。
l          TO BEFORE TIMESTAMP:恢复数据库到之前的时间表达式。
用户可以从sysdate中得到系统的当前时间。
当用户发出FLASHBACK DATABASE语句以后,数据库会首先检查所需要的归档文件与联机重建日志文件的可用性。如果可用,则会将数据库恢复到指定的SCN或者时间点上。
在数据库中闪回数据库的总数和大小由DB_FLASHBACK_RETENTION_TARGET初始化参数控制。可通过查询V$FLASHBACK_DATABASE_LOG视图来确定能恢复到过去多远。
如果数据库中所保留的数据不够执行恢复,可使用标准的恢复过程恢复到过去的某个时间点上。
如果数据文件集没有保留足够的数据,则数据库会返回一个错误,在这种情况下,可先使数据文件脱机,然后再发出语句恢复剩余的部分。最后再用标准方法恢复这些脱机的数据文件。
2.闪回数据库例子
FLASHBACK语句既可以在SQL>下使用,也可以在RMAN>中使用,当然也可以在EM中使用,以下给出一个具体实例。
下面的例子是使用闪回数据库完成到某个SCN的恢复。
(1)首先,查询v$flashback_database_log视图以获得oldest_flashback_scn:
C:\Documents and Settings\Administrator>sqlplus /nolog
SQL*Plus: Release 11.1.0.6.0 - Production on 星期一 11月 19 07:12:38 2007
Copyright (c) 1982, 2007, Oracle.  All rights reserved.
SQL> conn /as sysdba;
已连接。
SQL> select oldest_flashback_scn,oldest_flashback_time from v$flashback_database_log;
OLDEST_FLASHBACK_SCN OLDEST_FLASH
-------------------- ----------------------------------------
5540916                    19-NOV-07  
(2)关闭数据库,并在mount模式下启动数据库:
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount;
ORACLE 例程已经启动。
Total System Global Area  426852352 bytes
Fixed Size                  1333648 bytes
Variable Size             327157360 bytes
Database Buffers           92274688 bytes
Redo Buffers                6086656 bytes
数据库装载完毕。
SQL>
(3)使用FLASHBACK DATABAE闪回数据库到SCN 5540916:
SQL> flashback database to scn 5540916;
Flashback complete.
SQL>
(4)用resetlogs选项打开数据库,因为要恢复到当前数据库之前的一个时刻:
SQL> alter database open resetlogs;
Database altered.
SQL>
17.3.4  与闪回数据库有关的视图
在监控闪回数据库时,常用的有以下几个重要视图。
l          V$DATABASE,用于显示闪回数据库是启动还是关闭,即闪回数据库是否被激活。
l          V$ FLASHBACK_ DATABASE _LOG,可用于查看与闪回数据库有关的SCN、TIME、闪回数据库的时间及闪回数据的大小。
l          V$FLASHBACK_DATABASE_STAT,显示闪回数据库日志的情况,可用来估算闪回数据库潜在的需求空间。
分享到:
评论

相关推荐

    ORACLE flashback database测试

    ORACLE flashback database测试,主要进行ORACLE flashbackup 闪回整个数据库的实现。

    oracle中FLASHBACK

    FLASHBACK DATABASE flashback data1base闪回到过去的某一时刻 闪回点之后的所有工作都将丢失 必须使用resetlogs创建新的场景并打开数据库(一旦resetlogs之后,将不能再闪回至resetlogs之前的时间点) .......

    oracle 12c 数据库 教程

    (八)闪回数据库:Flashback Database 94 (九)闪回删除:Flashback Drop 95 (十)闪回事务查询:Flashback Transaction Query 96 (十一)闪回数据归档:Flashback Data Archive 98 三、用户管理的备份 101 (一...

    Oracle 12c-备份恢复学习实践手册合集

    Oracle 12c 闪回技术 Flashback Database.pdf Oracle 12c 闪回技术 Oracle Flashback技术.pdf Oracle 12c 管理UNDO.pdf Oracle 12c 数据库备份和恢复概述.pdf Oracle 12c 用户管理的备份和恢复.pdf Oracle 12c SCN...

    Oracle对于误删误操作的数据进行恢复(flashback query、flashback drop、flashback table、flashback database)

    日常工作中难免遇到自己或者别人误操作、删除、修改了数据库的数据。此时我们该如何恢复数据呢。   1、我们可以应用Flashback Query查询过去的数据 Flashback Query这一特性,最常被应用的就是修复误操作的数据了。...

    OCPOCA认证考试指南全册:Oracle Database 11g(1Z0-051,1Z0-052,1Z0-053)--详细书签版(第2/2部分)

     ●oracle恢复管理器和oracle闪回技术  ●资源管理器  ●oracle自动存储管理  ●oracle调度程序  ●自动工作负荷知识库  ●性能调整 作译者  John Watson就职于BPLC Management Consultants,负责公司欧洲...

    数据库原理及应用A实验报告(实验四——数据库恢复与安全性)

    了解flashback 的使用 学会使用PLSQL/developer工具完成导入导出 掌握ORACLE中有关用户创建的方法 熟练掌握PL-SQL的数据控制语言,能通过自主存取控制进行权限管理 熟悉用户资源文件的使用 熟悉ORACLE中...

    基于Oracle闪回详解(必看篇)

    Oracle 9i 开始支持闪回,Oracle10g开始全面支持闪回...闪回DATABASE 闪回日志、undo 是 DROP 删除表 闪回DROP 回收站(recyclebin) 是 表 更新、删除、插入记录 闪回TABLE 还原数据,undo 是 查询 当前数据和历

    OCPOCA认证考试指南全册:Oracle Database 11g(1Z0-051,1Z0-052,1Z0-053)--详细书签版(第1/2部分)

     ●oracle恢复管理器和oracle闪回技术  ●资源管理器  ●oracle自动存储管理  ●oracle调度程序  ●自动工作负荷知识库  ●性能调整 作译者  John Watson就职于BPLC Management Consultants,负责公司欧洲...

    Oracle.Database.11g.DBA手册.完整中文 (97M) part1/2

    基本信息 出版社: 清华大学出版社; 第1版 (2009年1月1日) 平装: 594页 语种: 简体中文 开本: 16 ... 使用最新的Oracle Database 11g工具——Oracle Total Recall和Oracle Flashback Data Archive等。

    FLAHBACK详解

    FLAHBACK举例和使用说明,比较详细,重点介绍了3中方法恢复数据库:1.Flashback database ;2.flashback table;3.flashback drop。 本人也误操作drop了oracle中的一张表,找了半天找到这个方法文档恢复成功了表和...

    Oracle.Database.11g.DBA手册.完整中文 (97M) part2/2

    基本信息 出版社: 清华大学出版社; 第1版 (2009年1月1日) 平装: 594页 语种: 简体中文 开本: 16 ... 使用最新的Oracle Database 11g工具——Oracle Total Recall和Oracle Flashback Data Archive等。

    Mysql误删数据解决方案及kill语句原理

    使用flashback工具闪回,把数据恢复回来。原理是修改binlog的内容,拿回原库重放,需要确保binlog_format=row和binlog_row_imsge=Full 具体恢复时 如果是insert,将binlog event类型是write_rows event改为delete...

    大话OracleRAC集群高可用性备份与恢复

    第二部分是实践篇,每一章都针对RAC的一个知识点展开讲解,包括Oracle Clusterware的维护、HA与LB、备份、恢复、Flashback家族、RAC和Data Guard的结合使用、RAC和Stream的结合使用,最后对ASM进行深入介绍,并给出...

    oracle truncate恢复工具

    用户truncate误删 schema下的若干数据表,无法使用flashback query等技术恢复数据,尝试从之前的全备份中恢复,数据库restore速度较快,但是archivelog恢复时由于HP data Protecter的不明原因导致归档恢复十分缓慢,...

    《大话Oracle RAC:集群 高可用性 备份与恢复》

     《大话Oracle RAC:集群 高可用性 备份与恢复》可以作为数据库开发人员、数据库管理员、数据库初学者及其他数据库从业人员的工作参考手册,也可以作为大中专院校相关专业师生的参考用书和相关培训机构的培训教材。

    大话oracle rac

    《大话Oracle RAC集群、高可用性、备份与恢复》可以作为数据库开发人员、数据库管理员、数据库初学者及其他数据库从业人员的工作参考手册,也可以作为大中专院校相关专业师生的参考用书和相关培训机构的培训教材。

Global site tag (gtag.js) - Google Analytics