如何恢复一个数据表

sn_tiantian 2011-04-08 05:29:51
刚刚我更新了一个数据表,并且提交了。现在发现有问题,请问如何恢复到更新前的状态。

我用flashback table t to TIMESTAMP to_timestamp('2011-04-08 15:00:00','yyyy-mm-dd hh24:mi:ss');试了一下,系统提示
“无法读取数据-表定义已更改”

我在更新前修改了一下表t中的一个字段长度。

还有其他什么方法么?谢谢。
...全文
276 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ora-0600 2011-04-11
  • 打赏
  • 举报
回复
有经验的管理员在做修改数据库时先创建保存点,万一出错,可以回滚
xiaozhang8383 2011-04-11
  • 打赏
  • 举报
回复
关注一下
Ling_Hun 2011-04-11
  • 打赏
  • 举报
回复
不知道你是否归档的
但是 把时间改到你修改列之后 应该是可以的
Well 2011-04-11
  • 打赏
  • 举报
回复
有没有备份。。。没有备份但时间又超过了flash所能恢复的时间范围内。。没办法。。。

还有。。有没有在线日志呢???如果有,可以用logminer进行处理。。。
fingerfox 2011-04-11
  • 打赏
  • 举报
回复
有archive log吗?

做time-based recovery
ycproc 2011-04-09
  • 打赏
  • 举报
回复
oracle数据表是drop 掉是还是其他,如果是drop可以通过如下恢复:

1. select original_name from recyclebin where type='TABLE';

2. flashback table TAB_test to before drop;

如果是删除数据的可以通过scn来恢复。
zty598416146 2011-04-09
  • 打赏
  • 举报
回复
flash table 使用的是undo 信息来闪回的, 你DDL操作以后没有UNDO 信息 当然不成功了
建议 flash database
sn_tiantian 2011-04-08
  • 打赏
  • 举报
回复
把时间改成修改后是可行的,我刚才试过了。可是万一我忘了怎么办呢,有没有什么更好的办法,查到我的更新时间?

另外,我也看了一下flashback是一种非完全的恢复,针对这个问题,还有没有其他的方法实现。比如根据系统日志恢复?
一生望云 2011-04-08
  • 打赏
  • 举报
回复
把时间改到你修改列之后

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧