日期:2014-05-16 浏览次数:20447 次
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