To: eygle
为何基于时间的恢复中归档日志好像没有起到作用?
首先插入test中一条数据
SQL> connec test/test
Connected.
SQL> select count(*) from test;
COUNT(*)
----------
1
SQL> insert into test values(2);
1 row created.
SQL> commit;
Commit complete.
准备drop table,记录下时间,为了恢复到这一个时间
SQL>select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss' from dual;
TO_CHAR(SYSDATE,'YY
-------------------
2005-08-30 16:18:13
SQL> drop table test;
Table dropped.
然后再usera中插入数据,如果恢复成功,下面的这些动作应该不能被恢复
SQL> connect usera/usera
Connected.
SQL> select count(*) from usera;
COUNT(*)
----------
2
SQL> insert into usera values(3);
1 row created.
SQL> commit;
Commit complete.
模拟丢失所有的数据文件、日志文件、控制文件
SQL> conne /as sysdba
Connected.
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> host
$ pwd
/T3/ORACLE
$ ls
adminarch_bak local.cshrclocal.profileoradatabak test01.dbf
arch doclocal.loginoradataproduct
$ rm -rf oradata
还原以前备份的冷备份
$ cp -r oradatabak oradata
$ exit
重新启动到mount,作基于时间的不完全恢复
SQL> startup mount
ORACLE instance started.
Total System Global Area353862792 bytes
Fixed Size 730248 bytes
Variable Size 285212672 bytes
Database Buffers 67108864 bytes
Redo Buffers 811008 bytes
Database mounted.
SQL> recover database until time '2005-08-30 16:18:13';
Media recovery complete.
SQL> alter database open resetlogs;
Database altered.
验证
SQL> select count(*) from test.test;
COUNT(*)
----------
1
为何刚才我插入的那条数据没有被还原?不完全恢复没有成功?
急死了....................
From: remem 2005.08.30 01:47
|