十万火急: 归档模式下,如何恢复半小时前删除的表?

[复制链接]
查看11 | 回复9 | 2012-10-9 18:05:37 | 显示全部楼层 |阅读模式
--------------------------------------------------------------------------
偶的数据库是oracle 9i,数据库运行在归档模式下,只在昨天用exp命令进行了逻辑备份,没有做物理备份.
9:00AM的时候,表A进行了更新.由于不小心在9:30AM删除了表A.
请问:如何快速恢复9:00AM时候的表A.
另外,再请教一个问题:
1.若平时设置数据库为非归档模式,则是不是没办法恢复了?
回复

使用道具 举报

千问 | 2012-10-9 18:05:37 | 显示全部楼层
如果没有以前的冷/热备份的话,光归档是没有用的
回复

使用道具 举报

千问 | 2012-10-9 18:05:37 | 显示全部楼层
昨天的备份中如果有这个表,那么IMP这个表很方便的,只是要丢是从备份到今天的变化。如果运行在归档日志模式下,却没有数据库的完整备份,那么需要LOGMNR来从日志中获取数据,相对就麻烦些
回复

使用道具 举报

千问 | 2012-10-9 18:05:37 | 显示全部楼层
如果是delete,运气好的话,可以试试flashback。
回复

使用道具 举报

千问 | 2012-10-9 18:05:37 | 显示全部楼层
做了exp
备份还能恢复,但是数据就不能确保了
回复

使用道具 举报

千问 | 2012-10-9 18:05:37 | 显示全部楼层
找到以前的备份,将这个表恢复到上次备份的时间点,然后通过查询归档日志,将这个时间点以后的关于这个表的SQL_REDO再执行一下,就可以恢复到删除前的状态了,基本不会丢什么数据.
回复

使用道具 举报

千问 | 2012-10-9 18:05:37 | 显示全部楼层
最初由 Tom_webex 发布
[B]找到以前的备份,将这个表恢复到上次备份的时间点,然后通过查询归档日志,将这个时间点以后的关于这个表的SQL_REDO再执行一下,就可以恢复到删除前的状态了,基本不会丢什么数据. [/B]

同意这个说法
回复

使用道具 举报

千问 | 2012-10-9 18:05:37 | 显示全部楼层
不知道这个删除了的表是什么意思?DELETE还是DROP?
回复

使用道具 举报

千问 | 2012-10-9 18:05:37 | 显示全部楼层
取决于有没有备份
没有备份时的希望在于DUL/AUL之类的软件了
具体例子可以看 http://www.anysql.net/2006/09/aul_recover_truncate.html
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行