今天我测试一下rman备份和恢复表空间。
 backup tablespace ta;
 然后 drop tablespace ta including contents;
 然后在rman中 restore tablespace ta;
 报错:无法翻译tablespace ta 这个名字;不知道是为何呢?
 那我应该怎么恢复表空间呢?

解决方案 »

  1.   

    这个是不行的,你直接这样恢复,是完全恢复,现在都没有ta这个tablespace了,你恢复ta当然是有问题的。你这样的情况需要不完全回复。可以有三种方法
    一个是基于时间点的,
    也就是找到你drop tablespace前的时间点,然后以时间点为基点,来进行恢复
    类似这样的
    {
    set until time="to_date('2009-06-25 21:37:34','yyyy-mm-dd hh24:mi:ss')";  --或者在环境变量里指定NLS_DATE_FORMAT
    restore database;
    recover database;
    alter database open resetlogs;
    }一个是基于scn号的
    {
    set until scn XXXXXX;
    ....
    ....
    }还有一个也可以用,不过比这两个都不常用于你这样的情况
    基于日志序号的
    {
    set until sequence xxx thread 1;
    .....
    .....
    }  // 这个主要用于丢失了某个归档日志,就用他前面的归档日志的序号恢复
    ==================================================================
    Inthirties关注Oracle数据库 维护 优化,安全,备份,恢复,迁移,故障处理如果你需要帮助或想和我一起学习的请联系
    联系方式QQ:370140387
    电子邮件:[email protected]
    网站: http://www.inthirties.com
      

  2.   


    set until time="to_date('2009-06-25 21:37:34','yyyy-mm-dd hh24:mi:ss')";  --或者在环境变量里指定NLS_DATE_FORMAT 
    restore database; 
    recover database; 
    alter database open resetlogs; 

    这个是全库恢复吧?
    我仅仅是想恢复那一个表空间,可以吗?