ZDNetChina中文社区 » 数据库开发 » 巧用Flashback database功能恢复用户错误 (1)


2007-12-22 01:33 卢浮宫
巧用Flashback database功能恢复用户错误 (1)

Oracle10g中有一个新增得功能Flashback Database,当你启动它以后,它会定期将已发生变化的块写入到闪回日志的日志文件中。请注意这些日志不是由传统的Log Writer (LGWR) 过程写入,而是由一种称作Recovery Writer的新过程来写入。 [table=400][tr][td]$ ps -ef|grep rvwr|grep -v greporacle 27231     1  0 17:10:30 ?        0:00 ora_rvwr_eygle[/td][/tr][/table]注释:与常规的重做日志有所不同,回闪日志既不需要DBA创建,也不需要DBA来维护;它们由Oracle Managed Files(OMF)自动在闪回恢复区域所指定的目录中创建。请注意这些文件不会归档,所以,如果在该目录发生介质故障后就不可能再进行恢复了。 (1)首先启用闪回数据库特性 [table=400][tr][td]SYS AS SYSDBA on 2005-03-29 16:42:19 >startup mount;ORACLE instance started.Total System Global Area  314572800 bytesFixed Size                  1301704 bytesVariable Size             261890872 bytesDatabase Buffers           50331648 bytesRedo Buffers                1048576 bytesDatabase mounted.SYS AS SYSDBA on 29-MAR-05 >alter database archivelog;Database altered.SYS AS SYSDBA on 29-MAR-05 >alter database flashback on;Database altered.SYS AS SYSDBA on 29-MAR-05 >alter database open;Database altered.SYS AS SYSDBA on 29-MAR-05 >alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';Session altered.SYS AS SYSDBA on 2005-03-29 17:01:42 >SELECT OLDEST_FLASHBACK_SCN, OLDEST_FLASHBACK_TIME  2  FROM V$FLASHBACK_DATABASE_LOG;OLDEST_FLASHBACK_SCN OLDEST_FLASHBACK_TI-------------------- -------------------            10642627 2005-03-29 17:01:02[/td][/tr][/table]

2007-12-22 01:33 卢浮宫
(4)下面我们来进行闪回操作


SYS AS SYSDBA on 2005-03-29 17:03:43 >shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SYS AS SYSDBA on 2005-03-29 17:04:04 >startup mount;
ORACLE instance started.

Total System Global Area  314572800 bytes
Fixed Size                  1301704 bytes
Variable Size             261890872 bytes
Database Buffers           50331648 bytes
Redo Buffers                1048576 bytes
Database mounted.

SYS AS SYSDBA on 29-MAR-05 >alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';

Session altered.

SYS AS SYSDBA on 2005-03-29 17:05:31 >select * from V$FLASHBACK_DATABASE_LOG;

OLDEST_FLASHBACK_SCN OLDEST_FLASHBACK_TI RETENTION_TARGET FLASHBACK_SIZE ESTIMATED_FLASHBACK_SIZE
-------------------- ------------------- ----------------
            10642627 2005-03-29 17:01:02             1440        8192000                        0


SYS AS SYSDBA on 2005-03-29 17:06:38 >flashback database to timestamp
  2  to_timestamp ('2005-03-29 17:02:28','yyyy-mm-dd hh24:mi:ss');

Flashback complete.


(5)只读打开,验证数据


SYS AS SYSDBA on 2005-03-29 17:06:58 >alter database open read only;

Database altered.

SYS AS SYSDBA on 2005-03-29 17:07:07 >desc t3   
ERROR:
ORA-04043: object t3 does not exist


SYS AS SYSDBA on 2005-03-29 17:07:39 >desc t1
ERROR:
ORA-04043: object t1 does not exist

2008-1-3 12:46 高浩荣
可以行的

2008-10-17 09:22 ahsxw255
:) :) 我学习一下啊

页: [1]


Powered by Discuz!  Archiver   © 2001-2006 Comsenz Inc.