用rman如何恢复一个表?

[复制链接]
查看11 | 回复9 | 2007-3-10 13:09:08 | 显示全部楼层 |阅读模式
tablespace test
有a,b两个表
truncate table a;
insert into b xx;
commit;
然后,我发现a表truncate错了,我也不想丢失b表之后插入的数据,如何用rman快速恢复a表?
btw:有truncate前的rman全库备份,数据库归档状态。
[ 本帖最后由 hcl 于 2008-3-31 11:50 编辑 ]
回复

使用道具 举报

千问 | 2007-3-10 13:09:08 | 显示全部楼层
http://warehouse.itpub.net/post/777/241004
回复

使用道具 举报

千问 | 2007-3-10 13:09:08 | 显示全部楼层
用rman的表空间不完全恢复应该可以
回复

使用道具 举报

千问 | 2007-3-10 13:09:08 | 显示全部楼层
必须要先重建一个辅助库吗?有没有更快速的方法?
回复

使用道具 举报

千问 | 2007-3-10 13:09:08 | 显示全部楼层
关注!
回复

使用道具 举报

千问 | 2007-3-10 13:09:08 | 显示全部楼层
搞个测试库把恢复到a表truncate之前的时间点,imp到产品库就ok
回复

使用道具 举报

千问 | 2007-3-10 13:09:08 | 显示全部楼层
原帖由 棉花糖ONE 于 2008-3-31 11:29 发表
搞个测试库把恢复到a表truncate之前的时间点,imp到产品库就ok

有没有不用创建测试库的方法。
是这样吗?
用rman
{
set until time '删除a数据前的时间点';
restore tablespace test;
recover tablespace test;
}
alter database open read only;
exp xxxxxx tables=(a)
然后再用rman恢复到最新的状态。
后,用imp导入表a?
[ 本帖最后由 hcl 于 2008-3-31 11:44 编辑 ]
回复

使用道具 举报

千问 | 2007-3-10 13:09:08 | 显示全部楼层
不完全恢复后,alter database open read only;
如何再回到原来数据库最新的状态,
alter database open resetlogs;后是否还可以回到恢复前的最新状态?
回复

使用道具 举报

千问 | 2007-3-10 13:09:08 | 显示全部楼层
原帖由 hcl 于 2008-3-31 11:35 发表

有没有不用创建测试库的方法。
是这样吗?
用rman
{
set until time '删除a数据前的时间点';
restore tablespace test;
recover tablespace test;
}
alter database open read only;
exp xxxxxx tables=(a)
然后再用rman恢复到最新的状态。
后,用imp导入表a?

肯定要用到测试库或辅助库
把在测试库恢复的表导回到正式库

正式库不做任何动作即可
回复

使用道具 举报

千问 | 2007-3-10 13:09:08 | 显示全部楼层
flashback 可以做到吗?
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行