oracle不小心删除了一些数据,没关系 ,有flashback ,!

只能在sqlplus 中执行!  闪回只能对dml语句有用 ddl无效!
1.查询是否打开了闪回功能
SQL> select flashback_on,force_logging from V$database;
FLA FOR
--- ---
NO  NO
SQL> alter database flashback on;
alter database flashback on
*
第 1 行出现错误:
ORA-38759: 数据库必须以 EXCLUSIVE 方式装载并且不能打开。

2.打开闪回功能:
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> connect sys/test as sysdba;
已连接到空闲例程。
SQL> startup mount;
ORACLE 例程已经启动。
Total System Global Area  171966464 bytes
Fixed Size                   787988 bytes
Variable Size             145488364 bytes
Database Buffers           25165824 bytes
Redo Buffers                 524288 bytes
数据库装载完毕。
SQL> alter database flashback on;
数据库已更改。
SQL> startup
ORA-01081: 无法启动已在运行的 ORACLE - 请首先关闭它
SQL> alter database open;
数据库已更改。
3.查询当前的SCN,记录并测试。
select current_scn
from v$database; 13806079
select *
from flash_recovery
update flash_recovery set score='111';
执行
flashback table flash_recovery to scn 13806079 时出错,需打开表的row movement 功能。
alter table flash_recovery enable row movement;
再次执行 flashback table flash_recovery to scn 13806079
4,使用时间标签恢复
flashback table flash_recovery to timestamp to_timestamp(to_date('2011/05/11:12:00:00','yyyy/mm/dd:hh24:mi:ss'));

你可能感兴趣的:(oracle,sql,Flash)