闪回数据库

  • Flashbacking a database means going back to a previous database state.闪回数据库到之前数据库的状态
  • The Flashback Database feature provides a way to quickly revert entire Oracle database to the state it was in at a past point in time. 闪回数据库特性提供了一种快速恢复数据库到过去一个时间点的方法 后台进程RVWR把数据块的前映像写入到闪回日志中
  • A new background process RVWR introduced which is responsible for writing flashback logs which stores pre-image(s) of data blocks 后台进程RVWR把数据块的前映像写入到闪回日志中
  • One can use Flashback Database to back out changes that:
    • Have resulted in logical data corruptions.
    • Are a result of user error.
  • This feature is not applicable for recovering the database in case of media failure. 不适用于介质恢复

配置闪回数据库

Prerequisite

a) Database must be in archivelog mode.
b) Last clean shutdown.

Steps

  • 1. Configure the following parameters in parameter file(init.ora) or spfile
参数 属性 解释
DB_RECOVERY_FILE_DEST dynamically modifiable Physical location where RVWR background process writes flashback logs
DB_RECOVERY_FILE_DEST_SIZE dynamically modifiable Maximum size flashback logs can occupy in
DB_RECOVERY_FILE_DESTDB_FLASHBACK_RETENTION_TARGET dynamically modifiable Upper limit in minutes on how far back one can flashback the database
  • Example:

    1. \**db_recovery_file_dest参数为0时,不能设定flash_recovery_area参数*\
    2. SQL> alter system set db_recovery_file_dest_size=2147483648 scope=spfile;
    3. SQL> alter system set db_recovery_file_dest=‘/u01/app/oracle/flash_recovery_area‘ scope=spfile;
    4. SQL> alter system set DB_FLASHBACK_RETENTION_TARGET=2880; (2 days) |
  • 2. Turn flashback on:
    1. SQL> Startup mount exclusive;
    2. SQL> alter database archivelog;
    3. SQL> Alter database flashback on;
    4. SQL> Alter database open; |
  • 3. Check status
    1. SQL> SELECT flashback_on, log_mode FROM gv$database;
    2.     SQL> SELECT estimated_flashback_size FROM gv$flashback_database_log;
    3. $ ps -eaf | grep rvwr |

禁用Flashback Database

  1. Alter database flashback on;

Flashback Database Using SQL or RMAN Commands

1.使用SQLPLUS

  • Use an SCN or a time stamp in the SQL version
  • Example: Flash back the database to a day before using SQL
    1. SQL> shutdown immediate;
    2. SQL> startup mount exclusive;
    3. SQL> flashback database to timestamp(sysdate-1);
    4. SQL> alter database open resetlogs;

2.使用 RMAN

  • Using RMAN, you can flash back to a time stamp, SCN, or log sequence number (SEQUENCE) and thread number (THREAD).
  • Example:
    1. RMAN> FLASHBACK DATABASE TO TIME = TO_DATE(‘2002-12-10 16:00:00‘,‘YYYY-MM-DD HH24:MI:SS‘);
    2. RMAN> FLASHBACK DATABASE TO SCN=23565;
    3. RMAN> FLASHBACK DATABASE TO SEQUENCE=223 THREAD=1;

视图

  • **VFLASHBACKDATABASELOG???monitortheestimatedandactualsizeoftheflashbacklogsintheflashrecovery?Checkflashrecoveryareadiskquota:‘‘‘SQL>selectretentiontarget,flashbacksize,estimatedflashbacksizeFROMVFLASHBACK_DATABASE_LOG;

    1. - Determine the current flashback window:

    SQL> SELECT oldest_flashback_scn,oldest_flashback_time FROM VFLASHBACKDATABASELOG;‘‘‘???VFLASHBACK_DATABASE_STAT -** monitors the overhead of logging flashback data in the flashback logs. It contains at most 24 rows, with one row for each of the last 24 hours.

    • The flashback generation for the last hour:

      1. SQL> select to_char(end_time,‘yyyy-mm-dd hh:miAM‘) end_timestamp, flashback_data, db_data, redo_data from v$flashback_database_stat where rownum=1;

从Flashback Database中排除表空间

  1. SQL> ALTER TABLESPACE <ts_name> FLASHBACK {ON|OFF}
  2. SQL> SELECT name, flashback_on 2 FROM v$tablespace;


Note

  • Take the tablespace offline before you perform the database flashback operation.
  • After performing Flashback Database, drop the tablespace or recover the offline files with traditional point-in-time recovery.

Flash back a RESETLOGS operation

可以闪回到resetlogs之前的一个时间点

  1. SQL> FLASHBACK DATABASE TO BEFORE RESETLOGS;

Limitations

  • You cannot use Flashback Database in the following situations:
  • The control file has been restored or re-created.
  • A tablespace has been dropped.
  • A data file has been shrunk
  • 需要开启FRA特性


闪回数据库的一些命令:

  1. \**闪回到指定的日期**\
  2. FLASHBACK DATABASE TO TIMESTAMP(to_data(‘2015.07.11 20:03:00‘,‘YYYY.MM.DD HH24:MI:SS‘));
  3. \**闪回到5分钟之前**\
  4. FLASHBACK DATABASE TO TIMESTAMP SYSDATE-(1/24/12);
  5. FLASHBACK DATABASE TO BEFORE TIMESTAMP my_date;
  6. \**回退到过去的某个SCN点**\
  7. FLASHBACK DATABASE TO SCN my_scn;
  8. FLASHBACK DATABASE TO BEFORE SCN my_scn;
  9. \**回退到某个Log Sequence号*\
  10. flashback database to sequence=223 thread=1;
  11. \**回退完成之后以resetlogs的方式打开数据库*\
  12. alter database open resetlogs;

  1. \**也可以创建一个恢复点*\
  2. CREATE RESTORE POINT before_changes;
  3. FLASHBACK DATABASE TO RESTORE POINT before_changes;

来自为知笔记(Wiz)

时间: 2024-08-07 04:06:14

闪回数据库的相关文章

Flashback Database 闪回数据库

一.  Flashback Database 说明 Flashback Database 功能非常类似与 RMAN 的不完全恢复, 它可以把整个数据库回退到过去的某个时点的状态, 这个功能依赖于 Flashback log 日志. 比RMAN 更快速和高效. 因此 Flashback Database 可以看作是不完全恢复的替代技术. 但它也有某些限制:(1)Flashback Database 不能解决 Media Failure, 这种错误 RMAN 恢复仍是唯一选择.(2)如果删除了数据文

11G 闪回数据库

第一种场景 库是用来培训或测试环境的,测试完毕后恢复原来的样子 [email protected] odb>archive log list; Databaselog mode            No Archive Mode Automaticarchival             Disabled Archivedestination           USE_DB_RECOVERY_FILE_DEST Oldestonline log sequence      220 Curre

[转]Oracle DB执行闪回数据库

? 配置闪回数据库 ? 执行闪回数据库操作 ? 监视闪回数据库 闪回数据库 闪回数据库操作: ? 作用类似于数据库的倒带按钮 ? 可以在用户造成了逻辑数据损坏的情况下使用 闪回数据库 使用闪回数据库,通过还原自先前某个时间点以来发生的所有更改,可快速将数据库恢复到那个时间的状态.因为不需要还原备份,所以此操作速度很快.可以使用此功能还原导致逻辑数据损坏的更改. 使用闪回数据库时,Oracle DB 可使用过去的块映像回退对数据库的更改.在正常数据库操作期间,Oracle DB 会不定期地将这些块

Oracle10g 闪回数据库 (Flashback Database)

生产上要做灾备系统的应急切换演练,灾备端是由OGG搭建的.由于生产库都比较大10多T,不想演练后重新初始化灾备库,生产库版本为10.2.0.4,于是想到10g的新特性flashback database.演练开始前记录一个还原点,演练结束后闪回到这个还原点,重新同步ogg即可. 测试闪加数据库. 一.开启FLASHBACK DATABASE 数据库版本:10.2.0.4 启用FLASHBACK DATABASE数据库必须为ARCHIVELOG模式,还需要有一个闪回恢复区用于存储闪回日志,RAC中

实验-闪回数据库

一.打开闪回数据库 1.确保数据库处于归档模式,如果为非归档模式,将数据库转换成归档模式 SQL> select name,log_mode from v$database; NAME LOG_MODE --------- ------------ ORCL NOARCHIVELOG SQL> select flashback_on from v$database; FLASHBACK_ON ------- NO 设置为归档模 Connected to Oracle Database 10g

flashbackup闪回数据库

某时间删除了一个表 SQL> delete test1; 50000 rows deleted. 1.关闭数据库,启动到mount状态(abort数据库能快速关闭,但是可能会丢数据) SQL> shutdown abort; ORACLE instance shut down. SQL> startup mount; 2.基于时间戳闪回数据库(20:55) SQL> flashback database to timestamp to_timestamp('2015-09-22 2

Oracle Flashback Technologies - 闪回数据库

根据指定的SCN,使用rman闪回数据库 #查看可以闪回到多久前 SQL> select * from v$flashback_database_log; #查看当前的SCN SQL> select current_scn from v$database; CURRENT_SCN ----------- 1462273 SQL> #关闭数据库 $ rman target / Recovery Manager: Release 11.2.0.4.0 - Production on Tue

闪回数据库的简单介绍

闪回数据库方法可以用sqlplus,也可以用RMAN执行: SQL> FLASHBACK DATABASE TO TIMESTAMP(''); --(基于时间点) SQL> FLASHBACK DATABASE TO SCN ; --(基于SCN) SQL> FLASHBACK DATABASE TO RESTORE POINT ; --(基于sestore point ,创建命令create restore point 名称) RMAN> FLASHBACK DATABASE T

oracle闪回查询和闪回数据库

oracle闪回查询和闪回数据库 区别: 数据闪回查询,只需要启用撤销表空间自动管理回滚信息. 使用闪回删除技术和闪回数据库技术,需要启动回收站,闪回恢复区.(归档模式使用) 具体设置: ---cmd sqlplus nolog sys as sysdba hanatech 具体设置----数据闪回查询的设置: 查看撤销表信息undo: show parameter undo; 设置撤销表信息: alter system set undo_managerment=auto;设置为auto才可以使