当前位置:Gxlcms > 数据库问题 > 闪回数据库

闪回数据库

时间:2021-07-01 10:21:17 帮助过:3人阅读

*db_recovery_file_dest参数为0时,不能设定flash_recovery_area参数*\
  • SQL> alter system set db_recovery_file_dest_size=2147483648 scope=spfile;
  • SQL> alter system set db_recovery_file_dest=‘/u01/app/oracle/flash_recovery_area‘ scope=spfile;
  • 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)

    闪回数据库

    标签:

    人气教程排行