丢失Redo, 如何不用resetlogs打开数据库?

    今收到一个控制文件和一堆数据文件, 要在我的笔记本上打开这个库, 我是很不愿意用open resetlogs选项的, 因为控制文件和数据文件是一致的, 是在关闭数据库的情况下备份出来的. 结果发现日志文件原来是在E盘, 而我的笔记本上只有C盘, 直接Clear是不行的, 直接重命名也是不行的, 通过添加新日志组和删除旧日志组也不行, 因为其中有一组是当前Active的, 因此根本就不让删除.

SQL> SELECT MEMBER FROM V$LOGFILE;

MEMBER
---------------------------------------------
E:\ORACLE\PRODUCT\ORADATA\PROD\REDO01.LOG
E:\ORACLE\PRODUCT\ORADATA\PROD\REDO02.LOG
E:\ORACLE\PRODUCT\ORADATA\PROD\REDO03.LOG

    没办法了? 当然是有办法的了, 我们可以简单地骗过Oracle, 方法是我在C盘的相应目录中建了三个空文本文件, 大小全是0, 只是名字和日志文件的一样, 然后就启动到Mount方式, 进行重命名日志文件, 然后再清除每一个日志文件组, 最后就直接打开了数据库, 没有使用open resetlogs选项.

    本故事纯属虚构. 但这个方法是行得通的, 你可以试试.

留言 (6)

原来可以这样呀, 很新鲜.

今天又学了一招, learn something new everyday!

同事要激活一个standby数据库时, 我就让他这样处理联机日志的.
这个故事也不算是纯属虚构.

这样做有啥意义啊

怎么做才有意义呢?

然后就启动到Mount方式, 进行重命名日志文件 ?你这步可以说的清楚一些吗?你前面"建了三个空文本文件, 大小全是0, 只是名字和日志文件的一样"不是已经创建了吗?重命名为什么呢?

对于STANDBY,在做FAIL OVER时候,如果PRIMARY端的REDO LOG 里有没有ARCH的LOG,如果可以的情况下,可以将PRIMARY端的REDO LOG直接SCP到STANDBY端做恢复用吧?而对你你说的这种情况,是什么情况下才可以这么做呢?

发表留言:

« Previous | Main | Next »

英语900句 | English 900

  • What are you interested in?
  • 你对什么比较感兴趣?
  • What are your interests?
  • 你的爱好是什么?
  • What do you do in your spare time?
  • 空闲时间你干什么?
  • How do you spend your evenings?
  • 夜生活你都是怎么过的?
  • Lots of people like stamp collecting.
  • 许多人喜欢集邮.