为何基于时间的恢复中归档日志好像没有起到作用?

[复制链接]
查看11 | 回复6 | 2005-5-15 01:01:24 | 显示全部楼层 |阅读模式
首先插入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
admin
arch_bak local.cshrclocal.profileoradatabak test01.dbf
arch doc
local.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

为何刚才我插入的那条数据没有被还原?不完全恢复没有成功?
回复

使用道具 举报

千问 | 2005-5-15 01:01:24 | 显示全部楼层
up!
回复

使用道具 举报

千问 | 2005-5-15 01:01:24 | 显示全部楼层
基于时间的不完全恢复不是这么简单,应该是当从备份数据文件、日志文件、控制文件及归档文件后的恢复。
回复

使用道具 举报

千问 | 2005-5-15 01:01:24 | 显示全部楼层
你的那条数据在Redo里,没有被恢复到,删除前先归档Redo。
alter system archive log current;
回复

使用道具 举报

千问 | 2005-5-15 01:01:24 | 显示全部楼层
就是少在归档当前在先redo log那一步
回复

使用道具 举报

千问 | 2005-5-15 01:01:24 | 显示全部楼层
你删除的log里包含了这天记录,所以没有被恢复
回复

使用道具 举报

千问 | 2005-5-15 01:01:24 | 显示全部楼层
你删除的log里包含了这条记录,所以没有被恢复
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行