ORACLE闪回----flashback database

flashback分类:
   1)flashback drop
   2)flashback query
   3)flashback data archive
   4)flashback table
   5)flashback version query
   6)flashback transaction
   7)flashback database

闪回数据库

首先将闪回空间调大一些测试环境1G  2G都行。

SYS@ prod>show parameter recovery_file

NAME                                 TYPE                              VALUE
------------------------------------ --------------------------------- ------------------------------
db_recovery_file_dest                string                            /u01/oradata/prod/flash_recove
                                                                       ry_area
db_recovery_file_dest_size           big integer                       300M
SYS@ prod>
SYS@ prod>alter system set db_recovery_file_dest_size=1G;

系统已更改。

SYS@ prod>
SYS@ prod>
SYS@ prod>show parameter recovery_file

NAME                                 TYPE                              VALUE
------------------------------------ --------------------------------- ------------------------------
db_recovery_file_dest                string                            /u01/oradata/prod/flash_recove
                                                                       ry_area
db_recovery_file_dest_size           big integer

保留时间1440单位分钟

SYS@ prod>show parameter flash

NAME                                 TYPE                              VALUE
------------------------------------ --------------------------------- ------------------------------
db_flash_cache_file                  string
db_flash_cache_size                  big integer                       0
db_flashback_retention_target        integer                           1440
SYS@ prod>

两个视图V$RECOVERY_FILE_DEST and V$RECOVERY_AREA_USAGE查看空间使用百分比

SYS@ prod>select * from v$RECOVERY_AREA_USAGE;

FILE_TYPE                                                    PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES
------------------------------------------------------------ ------------------ ------------------------- ---------------
CONTROL FILE                                                                  0                         0 0
REDO LOG                                                                      0                         0 0
ARCHIVED LOG                                                              10.99                         0 9
BACKUP PIECE                                                                  0                         0 0
IMAGE COPY                                                                    0                         0 0
FLASHBACK LOG                                                                 0                         0 0
FOREIGN ARCHIVED LOG                                                          0                         0 0

已选择7行。

SYS@ prod>select * from V$RECOVERY_FILE_DEST
  2  ;

NAME                           SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES
------------------------------ ----------- ---------- ----------------- ---------------
/u01/oradata/prod/flash_recove  1073741824  118024704                 0               9
ry_area

查看是否开启归档和闪回数据库

SYS@ prod>archive log list;
数据库日志模式            存档模式
自动存档             启用
存档终点            /u01/oradata/prod/archive/
最早的联机日志序列     33
下一个存档日志序列   35
当前日志序列           35
SYS@ prod>alter database flashback on;

数据库已更改。

SYS@ prod>select flashback_on from v$database
  2  ;

FLASHBACK_ON
------------------------------------------------------
YES

SYS@ prod>

查看当前SCN和创建保存点

SYS@ prod>select current_scn from v$database;

CURRENT_SCN
-----------
    2074335

SYS@ prod>create restore point abc;

还原点已创建。

SYS@ prod>create restore point abcd guarantee flashback database;

还原点已创建。

删除用户操作

将数据库启动mount状态

闪回数据库到SCN号或者restore to point。

SYS@ prod>drop user test cascade;

用户已删除。

SYS@ prod>
SYS@ prod>shutdown immeidate;
SP2-0717: 非法的 SHUTDOWN 选项
SYS@ prod>shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SYS@ prod>startup mount exclusive
ORACLE 例程已经启动。

Total System Global Area  768294912 bytes
Fixed Size                  2257192 bytes
Variable Size             465571544 bytes
Database Buffers          297795584 bytes
Redo Buffers                2670592 bytes
数据库装载完毕。
SYS@ prod>select status from v$instance;

STATUS
------------------------------------
MOUNTED

SYS@ prod>flashback database to scn 2074335;

闪回完成。

SYS@ prod>alter database open read only;

数据库已更改。

SYS@ prod>select * from test.emp;

     EMPNO ENAME                          JOB                                MGR HIREDATE                   SAL       COMM     DEPTNO
---------- ------------------------------ --------------------------- ---------- ------------------- ---------- ---------- ----------
      7369 SMITH                          CLERK                             7902 1980-12-17 00:00:00       1000               20
      7499 ALLEN                          SALESMAN                          7698 1981-02-20 00:00:00       1600        300    30
      7521 WARD                           SALESMAN                          7698 1981-02-22 00:00:00       1250        500    30
      7566 JONES                          MANAGER                           7839 1981-04-02 00:00:00       2975               20
      7654 MARTIN                         SALESMAN                          7698 1981-09-28 00:00:00       1250       1400    30
      7698 BLAKE                          MANAGER                           7839 1981-05-01 00:00:00       2850               30
      7782 CLARK                          MANAGER                           7839 1981-06-09 00:00:00       2450               10
      7788 SCOTT                          ANALYST                           7566 1987-04-19 00:00:00       3000               20
      7839 KING                           PRESIDENT                              1981-11-17 00:00:00       5000               10
      7844 TURNER                         SALESMAN                          7698 1981-09-08 00:00:00       1500     0         30
      7876 ADAMS                          CLERK                             7788 1987-05-23 00:00:00       1100               20
      7900 JAMES                          CLERK                             7698 1981-12-03 00:00:00       1000               30
      7902 FORD                           ANALYST                           7566 1981-12-03 00:00:00       3000               20
      7934 MILLER                         CLERK                             7782 1982-01-23 00:00:00       1300               10

已选择14行。

SYS@ prod>startup force;
ORACLE 例程已经启动。

Total System Global Area  768294912 bytes
Fixed Size                  2257192 bytes
Variable Size             465571544 bytes
Database Buffers          297795584 bytes
Redo Buffers                2670592 bytes
数据库装载完毕。
ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项


SYS@ prod>alter database open noresetlogs;
alter database open noresetlogs
*
第 1 行出现错误:
ORA-01610: 使用 BACKUP CONTROLFILE 选项的恢复必须已完成


SYS@ prod>recover database;
完成介质恢复。
SYS@ prod>alter database open noresetlogs;
alter database open noresetlogs
*
第 1 行出现错误:
ORA-01139: RESETLOGS 选项仅在不完全数据库恢复后有效


SYS@ prod>alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ORA-01139: RESETLOGS 选项仅在不完全数据库恢复后有效


SYS@ prod>alter database open;

数据库已更改。

SYS@ prod>select * from test.emp;
select * from test.emp
                   *
第 1 行出现错误:
ORA-00942: 表或视图不存在


SYS@ prod>startup force mount;
ORACLE 例程已经启动。

Total System Global Area  768294912 bytes
Fixed Size                  2257192 bytes
Variable Size             465571544 bytes
Database Buffers          297795584 bytes
Redo Buffers                2670592 bytes
数据库装载完毕。
SYS@ prod>
SYS@ prod>
SYS@ prod>select status from v$instance;

STATUS
------------------------------------
MOUNTED

SYS@ prod>flashback database to restore point abc;

闪回完成。

SYS@ prod>alter database open read only;

数据库已更改。

SYS@ prod>select * from test.emp;

     EMPNO ENAME                          JOB                                MGR HIREDATE                   SAL       COMM     DEPTNO
---------- ------------------------------ --------------------------- ---------- ------------------- ---------- ---------- ----------
      7369 SMITH                          CLERK                             7902 1980-12-17 00:00:00       1000               20
      7499 ALLEN                          SALESMAN                          7698 1981-02-20 00:00:00       1600        300    30
      7521 WARD                           SALESMAN                          7698 1981-02-22 00:00:00       1250        500    30
      7566 JONES                          MANAGER                           7839 1981-04-02 00:00:00       2975               20
      7654 MARTIN                         SALESMAN                          7698 1981-09-28 00:00:00       1250       1400    30
      7698 BLAKE                          MANAGER                           7839 1981-05-01 00:00:00       2850               30
      7782 CLARK                          MANAGER                           7839 1981-06-09 00:00:00       2450               10
      7788 SCOTT                          ANALYST                           7566 1987-04-19 00:00:00       3000               20
      7839 KING                           PRESIDENT                              1981-11-17 00:00:00       5000               10
      7844 TURNER                         SALESMAN                          7698 1981-09-08 00:00:00       1500     0         30
      7876 ADAMS                          CLERK                             7788 1987-05-23 00:00:00       1100               20
      7900 JAMES                          CLERK                             7698 1981-12-03 00:00:00       1000               30
      7902 FORD                           ANALYST                           7566 1981-12-03 00:00:00       3000               20
      7934 MILLER                         CLERK                             7782 1982-01-23 00:00:00       1300               10

已选择14行。

SYS@ prod>startup force
ORACLE 例程已经启动。

Total System Global Area  768294912 bytes
Fixed Size                  2257192 bytes
Variable Size             465571544 bytes
Database Buffers          297795584 bytes
Redo Buffers                2670592 bytes
数据库装载完毕。
ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项


SYS@ prod>recover database;
完成介质恢复。
SYS@ prod>alter database open;

数据库已更改。

SYS@ prod>select * from test.emp;
select * from test.emp
                   *
第 1 行出现错误:
ORA-00942: 表或视图不存在


SYS@ prod>
  • 其他事项

1)适合或不适合闪回数据库

适合:

①truncate table xxx

②drop table xxx purge

③drop user xxx cascade

不适合:

①使用了备份的控制文件或trace文件

②drop表空间的操作

③段重组后的表,收缩后的数据文件。

 

v$flashback_database_log显示所能回退到的最早时间,取决与保留的Flashback Database Log 的多少。

v$flashback_database_stat以一个时间段为一行(大约1小时), 记录单位时间内数据库的活动量。

SYS@ prod>select * from v$flashback_database_log;

OLDEST_FLASHBACK_SCN OLDEST_FLASHBACK_TI RETENTION_TARGET FLASHBACK_SIZE ESTIMATED_FLASHBACK_SIZE
-------------------- ------------------- ---------------- -------------- ------------------------
             2074284 2021-03-29 16:39:35             1440      104857600                        0

SYS@ prod>select * from v$flashback_database_stat;

BEGIN_TIME          END_TIME            FLASHBACK_DATA    DB_DATA  REDO_DATA ESTIMATED_FLASHBACK_SIZE
------------------- ------------------- -------------- ---------- ---------- ------------------------
2021-03-29 16:53:13 2021-03-29 17:03:25        3112960    2662400     398336                        0

OLDEST_FLASHBACK_SCN表示能够让你闪回到最早的那个scn点。

相比来看,v$flashback_database_log信息对于flash database更有帮助。

 

 

 

Jrojyun

2021-03-29

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值