10G flashback学习日记(1)-启动flashback

zhuan:http://space.itpub.net/16128/viewspace-426863

数据库

BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE    10.2.0.1.0      Production
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production

实验过程:

SQL> shutdown abort;
ORACLE 例程已经关闭。

SQL> startup mount;
ORACLE 例程已经启动。

Total System Global Area  612368384 bytes
Fixed Size                  1250428 bytes
Variable Size             289409924 bytes
Database Buffers          314572800 bytes
Redo Buffers                7135232 bytes
数据库装载完毕。
SQL> alter database flashback on;
alter database flashback on
*
第 1 行出现错误:
ORA-38706: 无法启用 FLASHBACK DATABASE 事件记录。
ORA-38707: 尚未启用介质恢复。


****通过实验获知使用FLASHBACK 需要开启 archive log

SQL> archive log list
数据库日志模式             非存档模式
自动存档             禁用
存档终点            USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列     30
当前日志序列           32
SQL> alter database archivelog;
alter database archivelog
*
第 1 行出现错误:
ORA-00265: 要求实例恢复, 无法设置 ARCHIVELOG 模式

 

SQL> alter system switch logfile;
alter system switch logfile
*
第 1 行出现错误:
ORA-01109: 数据库未打开

 


SQL> recover database;
完成介质恢复。

***无法打开归档时,在MOUNT后使用介质恢复
SQL> alter database open;

数据库已更改。

SQL>
SQL> alter system switch logfile;

系统已更改。

SQL> alter system switch logfile;

系统已更改。

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

SQL> startup mount
ORACLE 例程已经启动。

Total System Global Area  612368384 bytes
Fixed Size                  1250428 bytes
Variable Size             293604228 bytes
Database Buffers          310378496 bytes
Redo Buffers                7135232 bytes
数据库装载完毕。
SQL> alter database archivelog
  2  ;

数据库已更改。

SQL> alter database open;

数据库已更改。

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

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

数据库已更改。

SQL> alter database open;

数据库已更改。

 


18:06:13 SQL> connect flash/flash
已连接。
18:07:02 SQL> flashback table t to timestamp to_timestamp('2008-08-13 17:00:00',
'yyyy-mm-dd hh24:mi:ss');
flashback table t to timestamp to_timestamp('2008-08-13 17:00:00','yyyy-mm-dd hh
24:mi:ss')
                *
第 1 行出现错误:
ORA-08189: 因为未启用行移动功能, 不能闪回表


18:08:32 SQL> alter table t enable row movement;

表已更改。

18:09:35 SQL> flashback table t to timestamp to_timestamp('2008-08-13 17:00:00',
'yyyy-mm-dd hh24:mi:ss');
flashback table t to timestamp to_timestamp('2008-08-13 17:00:00','yyyy-mm-dd hh
24:mi:ss')
                *
第 1 行出现错误:
ORA-01466: 无法读取数据 - 表定义已更改


18:10:03 SQL> select * from t;

A
----------
www.ncn.cn

18:10:15 SQL> delete t;

已删除 1 行。

18:12:10 SQL> commit;

提交完成。

18:12:14 SQL> select * from t;

未选定行

18:12:21 SQL>  flashback table t to timestamp to_timestamp('2008-08-13 18:12:00'
,'yyyy-mm-dd hh24:mi:ss');

闪回完成。

18:13:06 SQL> select * from t;

A
----------
www.ncn.cn

总结:1.flashback 是利用UNDO 实现闪回

             2.需开启数据库归档模式

              3.如果归档无法实现,执行介质恢复

              4.需开启行移动功能

你可能感兴趣的:(flashback)