今天做试验,联系重命名联机日志文件的时候,误操作,导致数据库打不开了。。。
alter database rename file '...1.log' to '...2.log'
操作步骤如下:
1、关闭数据库、拷贝D:/oracle/product/10.2.0/oradata/SPMS/redo*.log到上一层目录,
2、在mount状态下,将D:/oracle/product/10.2.0/oradata/SPMS/redo03.log重命名为D:/oracle/product/10.2.0/oradata/redo03.log,然后alter database open 打开数据库,没有问题,只修改了第三组日志文件,1、2都没有改变,活动状态的第一组日志文件其实已经修改了。但是没有注意到
3、想将日志文件redo03.log放回原来的位置,目录,于是,直接拷贝了D:/oracle/product/10.2.0/oradata/redo*.log,而其中只有redo03.log是有效地当前文件,而实际上D:/oracle/product/10.2.0/oradata/redo01.log和D:/oracle/product/10.2.0/oradata/spms/redo01.log已经不一样了,系统对D:/oracle/product/10.2.0/oradata/spms/redo01.log进行了修改,是最新的,
我直接拷贝,就把最新的当前活动日志文件组给覆盖掉了
4、所以即使你在mount状态下,如何操作redo03.log,都不能打开数据库,因为他找不到当前的那个最新的活动日志组了
如图所示:
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area 281018368 bytes
Fixed Size 1248528 bytes
Variable Size 100664048 bytes
Database Buffers 171966464 bytes
Redo Buffers 7139328 bytes
数据库装载完毕。
SQL> alter databse open
2 ;
alter databse open
*
第 1 行出现错误:
ORA-00940: 无效的 ALTER 命令
SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-00322: 日志 1 (用于线程 1) 不是当前副本
ORA-00312: 联机日志 1 线程 1:
'D:/ORACLE/PRODUCT/10.2.0/ORADATA/SPMS/REDO01.LOG'