打开SQLPLUS,输入用户名和密码后,却总是
报ORA-01033: ORACLE initialization or shutdown in progress 的错误.在网上搜索解决办法和大家分享:
1)开始-运行-cmd
2)命令行中输入SQLPLUS SYS/SYS AS SYSDBA
3)输入SHUTDOWN
4)输入STARTUP.
在第四步的时候留意它输出的错误。我的是:
SQL> STARTUP
ORACLE 例程已经启动。
Total System Global Area 313860096 bytes
Fixed Size 1332892 bytes
Variable Size 255854948 bytes
Database Buffers 50331648 bytes
Redo Buffers 6340608 bytes
数据库装载完毕。
ORA-00313: 无法打开日志组 1 (用于线程 1) 的成员
ORA-00312: 联机日志 1 线程 1: 'D:\ORACLE\ORADATA\ORCL\REDO01.LOG'
很明显的是日志组出了问题。进到D:\ORACLE\ORADATA\ORCL\ 看看,原来是用优化大师时把日志文件给删掉了。
OK,知道问题,那就来解决问题吧。上网找找。有篇文章是这样的:
“ORA-00205错误,即某些控制文件出现了问题,解决方法.先到E:\oracle\product\10.1.0 \oradata\orcl目录下,可以看见有CONTROL01.CTL, CONTROL02.CTL, CONTROL03.CTL三个控制文件,如果错误报的是CONTROL02.CTL, CONTROL03.CTL有问题,那么就把这两个文件删掉,然后使用好的控制文件境象文件复制成删除的控制文件就可以了。”
可惜我的不是控制文件的问题,而是日志。最先冒出的想法是,我可不可以也另外的日志文件来替代呢?叫同学发个日志文件过来,放在D:\ORACLE\ORADATA\ORCL\下,
“SQL> startup
数据库装载完毕。
ORA-00305: 日志 1 (用于线程 1) 不一致; 属于另一个数据库
ORA-00312: 联机日志 1 线程 1: 'D:\ORACLE\ORADATA\ORCL\REDO01.LOG'”
结论这是不行的.
最后的解决方法是:
SQL> shutdown immediate;
SQL> startup mount;
SQL> select * from v$log; /*查看日志状态(见后面的资料)*/
SQL> alter database clear unarchived logfile group 2; /*重建日志文件*/
SQL> alter database clear unarchived logfile group 3;
SQL> alter database clear unarchived logfile group 1;
SQL> startup;
Total System Global Area 313860096 bytes
Fixed Size 1332892 bytes
Variable Size 255854948 bytes
Database Buffers 50331648 bytes
Redo Buffers 6340608 bytes
数据库装载完毕。
数据库已经打开。
SQL> conn system
输入口令:
已连接。
SQL>
到这里,问题解决了!
后话,恢复日志文件的顺序要注意。
附加些资料:
日志文件组的状态
current: 当前正在使用的工作组
inactive: 非活动组
active : 归档还没有完成
unused : 还没有使用,一般新建的工组组都是这个状态
在active,current状态下的工作组都不能删除,要日志切换后才可以
SQL> shutdown immediate; (为什么不是shutdown 呢?看下面得链接吧)
http://download.oracle.com/docs/cd/B10501_01/server.920/a96521/start.htm#6370
SQL> startup mount;
1、STARTUP NOMOUNT
NONOUNT选项仅仅创建一个Oracle实例,当实例打开后,系统将显示一个SGA内存结构和大小的列表;
2、STARTUP MOUNT
该命令创建实例并且安装数据库,但没有打开数据库,在这种打开方式下,除了可以看到SGA系统列表以外,系统还会给出"数据库装载完毕"的提示;
3、STARTUP
该命令完成创建实例、安装实例和打开数据库的所有三个步骤,这时系统除了可以看到前面Startup Mount方式下的所有提示外,还会给出一个"数据库已经打开"的提示,此时,数据库系统处于正常工作状态,可以接受用户请求。
|