闪回数据库的表,保证其它表数据正常

因对某个表进行了截断操作。过后发现问题,进行闪回数据库操作。并保证在这其间产生的数据不丢。


conn wyj/wyj@orcdb 已连接。 WYJ on orcdb > select * from a; ID ---------- NAME -------------------------------------------------------------------------------- 4 e 2 b 2 b ID ---------- NAME -------------------------------------------------------------------------------- 3 c WYJ on orcdb > set linesize 130 WYJ on orcdb > conn sys/sys@orcdb as sysdba 已连接。 SYS on orcdb > select current_scn from v$database; CURRENT_SCN ----------- 1424380 SYS on orcdb > truncate table wyj.a; 表被截断。 SYS on orcdb > select * from wyj.a; 未选定行 SYS on orcdb > shutdown immediate 数据库已经关闭。已经卸载数据库。 ORACLE 例程已经关闭。 SYS on orcdb > startup mount ORACLE 例程已经启动。 Total System Global Area 612368384 bytes Fixed Size 1250452 bytes Variable Size 322964332 bytes Database Buffers 285212672 bytes Redo Buffers 2940928 bytes 数据库装载完毕。 SYS on orcdb > flashback database to scn 1424380 2 ; 闪回完成。 SYS on orcdb > alter database open read only 2 ; 数据库已更改。 SYS on orcdb > select * from wyj.a; ID NAME ---------- ---------------------------------------------------------------------------------------------------- 4 e 2 b 2 b 3 c SYS on orcdb > shutdown immediate 数据库已经关闭。已经卸载数据库。 ORACLE 例程已经关闭。 SYS on orcdb > startup mount ORACLE 例程已经启动。 Total System Global Area 612368384 bytes Fixed Size 1250452 bytes Variable Size 322964332 bytes Database Buffers 285212672 bytes Redo Buffers 2940928 bytes 数据库装载完毕。 SYS on orcdb > alter database open resetlogs; 数据库已更改。 SYS on orcdb > SELECT GROUP#,SEQUENCE# FROM V$LOG; GROUP# SEQUENCE# ---------- ---------- 1 0 2 0 3 1">SYS on orcdb > conn wyj/wyj@orcdb
已连接。
WYJ on orcdb > select * from a;

ID
----------
NAME
--------------------------------------------------------------------------------
4
e

2
b

2
b


ID
----------
NAME
--------------------------------------------------------------------------------
3
c


WYJ on orcdb > set linesize 130

WYJ on orcdb > conn sys/sys@orcdb as sysdba
已连接。
SYS on orcdb > select current_scn from v$database;

CURRENT_SCN
-----------
1424380


SYS on orcdb > truncate table wyj.a;

表被截断。

SYS on orcdb > select * from wyj.a;

未选定行

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

Total System Global Area 612368384 bytes
Fixed Size 1250452 bytes
Variable Size 322964332 bytes
Database Buffers 285212672 bytes
Redo Buffers 2940928 bytes
数据库装载完毕。
SYS on orcdb > flashback database to scn 1424380
2 ;

闪回完成。

SYS on orcdb > alter database open read only
2 ;

数据库已更改。


SYS on orcdb > select * from wyj.a;

ID NAME
---------- ----------------------------------------------------------------------------------------------------
4 e
2 b
2 b
3 c

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

Total System Global Area 612368384 bytes
Fixed Size 1250452 bytes
Variable Size 322964332 bytes
Database Buffers 285212672 bytes
Redo Buffers 2940928 bytes
数据库装载完毕。
SYS on orcdb > alter database open resetlogs;

数据库已更改。

SYS on orcdb > SELECT GROUP#,SEQUENCE# FROM V$LOG;

GROUP# SEQUENCE#
---------- ----------
1 0
2 0
3 1
可将所需要恢复的表导出来,然后再对数据库进行recover database.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/526592/viewspace-236722/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/526592/viewspace-236722/

你可能感兴趣的:(闪回数据库的表,保证其它表数据正常)