今收到一个控制文件和一堆数据文件, 要在我的笔记本上打开这个库, 我是很不愿意用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!
Posted by 木匠 | Aug 22, 2007 8:48 AM
同事要激活一个standby数据库时, 我就让他这样处理联机日志的.
这个故事也不算是纯属虚构.
Posted by anysql | Aug 22, 2007 8:55 AM
这样做有啥意义啊
Posted by mht | Aug 22, 2007 9:21 AM
怎么做才有意义呢?
Posted by anysql | Aug 22, 2007 9:42 AM
然后就启动到Mount方式, 进行重命名日志文件 ?你这步可以说的清楚一些吗?你前面"建了三个空文本文件, 大小全是0, 只是名字和日志文件的一样"不是已经创建了吗?重命名为什么呢?
Posted by wanghui | Aug 29, 2007 9:12 PM
对于STANDBY,在做FAIL OVER时候,如果PRIMARY端的REDO LOG 里有没有ARCH的LOG,如果可以的情况下,可以将PRIMARY端的REDO LOG直接SCP到STANDBY端做恢复用吧?而对你你说的这种情况,是什么情况下才可以这么做呢?
Posted by wanghui | Aug 29, 2007 9:15 PM