昨天看到一朋友提的关于rman的问题,自己以前没弄过,于是上网搜了一些资料,但是却没得到预期的结果,请高手看看我做的过程有什么问题。谢谢了!!
cmd-->set oracle_sid=database-->rman target \ (提示需要输入“目标数据库口令”,这个地方有个问题:是要求输入sys用户的口令吧?反正我随便输几个字就行了,当然不输不行)-->shutdown immediate;-->startup mount-->backup database;-->startup-->(到developer中做了些drop和delete的操作)-->cmd-->set oracle_sid=database-->rman target \(问题和之前一样)-->shutdown immediate;-->startup mount-->recover database;
然后重新打开数据库,发现刚才drop和delete等操作并没有恢复。操作哪个地方有问题吗?(而且有个奇怪的问题是刚开始的一段时间developer登录界面的... 按钮是灰色不可用,过了一会不知道怎么就正常了,这个问题先不管了)

解决方案 »

  1.   

    rman target \ 
    应该是
    rman target /
      

  2.   

    当然不会恢复了,
    recover,只是在数据库打开时候发现 数据文件有问题时候用,
    你shutdown immediate,正常关闭,
    recover就没有效果,你要是想恢复到drop之前的,
    应该要 recover database until time 'drop之前的时间点'
      

  3.   

    recover database until time '2009-09-09:09:00:00';  
      

  4.   

    不过我都没有试过这么用,一般都是restore之后,recover
      

  5.   

    建议先了解一些backup和recovery的基础知识。recovery不是flashback,
      

  6.   

    不就是需要做个不完全恢复吗?
    在sqlplus中可以recover database until time ...
    用rman来做的话,是在run块中set until time=... then restore database then recover database
    非归档模式的话,recover可能成功可能失败。主要看所需日志在redo logfile中是否还有。
      

  7.   

    楼主没弄明白恢复(recover)和转储(restore)的概念
    简单说一下,你备份的时候假设scn是10,然后你操作了一下scn变成12,下边你就直接恢复了......当你scn向前走了,你能恢复到scn<12的状态吗?明显不能,所以需要你先转储,也就是restore database,这个时候scn变为10,下边你就可以恢复到你想要的状态了,比如说scn=11的状态,不知道我这么说,楼主能明白意思不?
      

  8.   

    谢谢各位的解答!看了这个http://leng.javaeye.com/blog/64347后又有所了解,但还是有点疑惑。暂时留个记号,等完全明白了再结贴,呵呵。