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