步骤:
1:我执行联机备份
2:我创建了用户和表
3:我插入一条语句,并且查询SCN(我又插入一条数据,并且查询SCN)
4:我关闭数据库,用备份的数据文件覆盖数据库目前的数据文件
5:数据库启动到mount状态
6:recover database until change 293016;
7:无法恢复我又执行如下的步骤
我想知道用这种方式可以成功恢复表中插入的第一条数据吗?
小弟初学oracle,望各位指教
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
F:\ORACLE\PRODUCT\10.1.0\ORADATA\PRIMARY\SYSTEM01.DBF
F:\ORACLE\PRODUCT\10.1.0\ORADATA\PRIMARY\UNDOTBS01.DBF
F:\ORACLE\PRODUCT\10.1.0\ORADATA\PRIMARY\SYSAUX01.DBF
F:\ORACLE\PRODUCT\10.1.0\ORADATA\PRIMARY\USERS01.DBF
SQL> create user test identified by test;
用户已创建。
SQL> grant dba to test;
授权成功。
SQL> conn test/test;
已连接。
SQL> conn /as sysdba
已连接。
SQL> alter database begin backup;
数据库已更改。
SQL> host copy F:\ORACLE\PRODUCT\10.1.0\ORADATA\PRIMARY\SYSTEM01.DBF f:\backup\
已复制 1 个文件。
SQL> host copy F:\ORACLE\PRODUCT\10.1.0\ORADATA\PRIMARY\UNDOTBS01.DBF f:\backup
已复制 1 个文件。
SQL> host copy F:\ORACLE\PRODUCT\10.1.0\ORADATA\PRIMARY\SYSAUX01.DBF f:\backup
已复制 1 个文件。
SQL> host copy F:\ORACLE\PRODUCT\10.1.0\ORADATA\PRIMARY\USERS01.DBF f:\backup
已复制 1 个文件。
SQL> conn test/test
已连接。
SQL> create table test
2(id int);
表已创建。
SQL> insert into test values(1);
已创建 1 行。
SQL> commit;
提交完成。
SQL> select current_SCN from v$database;
CURRENT_SCN
-----------
293016
SQL> insert into test values(2);
已创建 1 行。
SQL> commit;
提交完成。
SQL> select current_SCN from v$database;
CURRENT_SCN
-----------
293024
SQL> shutdown immediate
ORA-01031: 权限不足
SQL> conn /as sysdba
已连接。
SQL> shutdown immediate
ORA-01149: 无法关闭 - 文件 1 设置了联机备份
ORA-01110: 数据文件 1: 'F:\ORACLE\PRODUCT\10.1.0\ORADATA\PRIMARY\SYSTEM01.DBF'
SQL> alter database end backup;
数据库已更改。
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area171966464 bytes
Fixed Size
787988 bytes
Variable Size
145488364 bytes
Database Buffers 25165824 bytes
Redo Buffers
524288 bytes
数据库装载完毕。
SQL> recover database until change293016;
ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 将出现如下错误
ORA-01195: 文件 1 的联机备份需要更多的恢复来保持一致性
ORA-01110: 数据文件 1: 'F:\ORACLE\PRODUCT\10.1.0\ORADATA\PRIMARY\SYSTEM01.DBF'
SQL> recover datafile 1 ;
完成介质恢复。
SQL> recover database;
完成介质恢复。
SQL> alter database resetlogs;
alter database resetlogs
*
第 1 行出现错误:
ORA-02231: ALTER DATABASE 选项缺失或无效
SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ORA-01139: RESETLOGS 选项仅在不完全数据库恢复后有效
SQL> recover database until change293016;
完成介质恢复。
SQL> alter database open resetlogs;
数据库已更改。
SQL> conn test/test
已连接。
SQL> select * from person;
select * from person