日期:2014-05-16 浏览次数:20490 次
1、首先,关闭数据库,然后备份所有的数据文件,注意,包括:system表空间的文件,用户表空间的文件、undo表空间的文件。
2、登录数据库,然后,创建一个表data01,并插入数据,提交,显示scn号。
C:\Users\Administrator>sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on 星期二 3月 11 14:48:53 2014
Copyright (c) 1982, 2010, Oracle. All rights reserved.
已连接到空闲例程。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 1068937216 bytes
Fixed Size 2182592 bytes
Variable Size 675283520 bytes
Database Buffers 385875968 bytes
Redo Buffers 5595136 bytes
数据库装载完毕。
数据库已经打开。
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
232765
SQL> create table data01(v int) tablespace data01;
表已创建。
SQL> insert into data01 values(1);
已创建 1 行。
SQL> commit;
提交完成。
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
232805
SQL> truncate table scott.emp;
表被截断。
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
232858
SQL> shutdown immediate; 数据库已经关闭。 已经卸载数据库。 ORACLE 例程已经关闭。 SQL> startup mount; ORACLE 例程已经启动。 Total System Global Area 1068937216 bytes Fixed Size 2182592 bytes Variable Size 675283520 bytes Database Buffers 385875968 bytes Redo Buffers 5595136 bytes 数据库装载完毕。
SQL> recover automatic database until change 232805; 完成介质恢复。 SQL> alter database open resetlogs; 数据库已更改。
6、之所以要这样,是因为把数据库恢复到过去的状态,而联机日志是最新的状态,所以需要重置日志,日志序列号会重新从1开始:
SQL> archive log list 数据库日志模式 存档模式 自动存档 启用 存档终点 d:\demo\archive3 最早的联机日志序列 1 下一个存档日志序列 1 当前日志序列 1
SQL> select count(*) from scott.emp;
COUNT(*)
----------
12
SQL> select * from data01;
V
----------
1