oracle闪回

闲来无事,把以前的笔记整理一下放到这里。

默认情况下,oracle10g可以直接闪回表,闪回表数据,但是如果要闪回整个数据库,则需要预先设定。

1、闪回删除的表:
SQL>flashback table test_drop to before drop;

2、闪回表数据:

   alter table tableA enable row movement;   --先启动行移动命令,

flashback table tableA to timestamp to_timestamp('2009-10-12 10:50:00','yyyy-mm-dd   hh24:mi:ss'); 
--闪回数据

   alter table tableA disable row movement;  --关闭行移动命令



3、闪回整个数据库的设定方式以及闪回命令。

SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount;
ORACLE 例程已经启动。

Total System Global Area  612368384 bytes
Fixed Size                  1250428 bytes
Variable Size             176163716 bytes
Database Buffers          427819008 bytes
Redo Buffers                7135232 bytes
数据库装载完毕。
SQL> archive log list
数据库日志模式             非存档模式
自动存档             禁用
存档终点            USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列     1
当前日志序列           3
SQL> alter database archivelog;  

数据库已更改。

SQL> alter database open ;

数据库已更改。

SQL> archive log list
数据库日志模式            存档模式
自动存档             启用
存档终点            USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列     1
下一个存档日志序列   3
当前日志序列           3

SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。

Total System Global Area  612368384 bytes
Fixed Size                  1250428 bytes
Variable Size             167775108 bytes
Database Buffers          436207616 bytes
Redo Buffers                7135232 bytes
数据库装载完毕。
数据库已经打开。
SQL> alter system switch logfile;

系统已更改。

SQL> archive log list;
数据库日志模式            存档模式
自动存档             启用
存档终点            USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列     2
下一个存档日志序列   4
当前日志序列           4
SQL>  shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL>  startup mount
ORACLE 例程已经启动。

Total System Global Area  612368384 bytes
Fixed Size                  1250428 bytes
Variable Size             171969412 bytes
Database Buffers          432013312 bytes
Redo Buffers                7135232 bytes
数据库装载完毕。
SQL> alter database flashback on;

数据库已更改。

SQL> alter database open;

数据库已更改。

SQL> select FLASHBACK_ON from v$database;

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




---------------------上面是开启设置闪回数据库的功能,下面是使用闪回数据库的功能--------------------------




SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount;
ORACLE 例程已经启动。

Total System Global Area  612368384 bytes
Fixed Size                  1250428 bytes
Variable Size             176163716 bytes
Database Buffers          427819008 bytes
Redo Buffers                7135232 bytes
数据库装载完毕。
SQL> flashback database  to timestamp to_timestamp('2010-11-03 22:11:00','yyyy-mm-dd hh24:mi:ss');

闪回完成。

SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项


SQL> alter database open resetlogs;

数据库已更改。

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