用PL/SQL Deverloper来登陆用户的时候,老是出现这样的提示:ORA-01033:ORACLE initialization or shutdown inprogress ,说明上次装Oracle时刚开始还可以用,数据库名是哦ORACLE,第二天我再打开也出现以上情况,之后又重新装了一下,这次数据库名是ORC1,又出项同样的情况。
是怎么回事,小弟为这事郁闷死了,哪位高手指教一下,谢谢
是怎么回事,小弟为这事郁闷死了,哪位高手指教一下,谢谢
sql>connect / as sysdba
sql>shutdown immediate;
sql>startup执行以上几条命令,就OK了
SQL>conn /as sysdba
已连接
SQL>shutdown immediae;
ORA-01109 :数据库未打开已经卸载数据库
ORCALE 例程已经关闭
SQL>STARTUUP
ORACLE 例程已经启动
Total System Global Area 36071044 bytes
Fixed Size 1249008 bytes
Variable Size 117440784 bytes
Database Buffers 239075328 bytes
Redo Buffers 2945024 bytes
数据库装载完毕。
ORA-00313: 无法打开日志组 2 (用于线程 1) 的成员
ORA-00312: 联机日志 2 线程 1:
'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG'
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。还是无法登陆scott用户
recover database until cancel;
alter database open resetlogs;如果是生产库,这之后需要马上做一个全备份; 如果是个人实验而已,就不用了。
sql>connect / as sysdba
sql>shutdown immediate;
sql>startup
1.首先检查重做日志文件状态,看看报错的日志文件的状态是否为Current
SQL> select * from v$log;
SQL> select * from v$logfile;
2.如果重做日志文件状态为Inactive,我们可以直接清除该日志文件的内容:
SQL> alter database clear logfile 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG';
3.如果重做日志文件状态为Current,恢复工作较为复杂,有以下四种情况:
1)通过下面步骤,数据库顺利打开
SQL> recover database until cancel;
Type Cancel when prompted
SQL>alter database open resetlogs; 2)第一种情况的'recover database until cancel' 操作遇到ORA-01547,ORA-01194,ORA-01110错误,需要整个数据库的物理备份,并根据归档日志恢复到错误时间点,前提是数据库是归档模式。
restore old backup
SQL> startup mount
SQL> recover database until cancel using backup controlfile;
SQL> alter database open resetlogs; 3)如果数据库是非归档模式,只能恢复整个物理备份,然后直接打开数据库。这种情况将丢失物理备份至故障发生前的全部数据。4)如果数据库是非归档模式,且没有物理备份,只能通过特殊的隐含参数,允许数据库不一致的状况下打开数据库。这种恢复方法是没有办法之后的恢复方法,将导致数据库不一致,一般情况下不要采用。如确有需要,请在Oracle的技术人员指导下使用该方法。
关闭数据库
SQL>shutdown immediate
SQL>alter system set "_allow_resetlogs_corruption"=true;
或者在init<sid>.ora中加入如下参数 _allow_resetlogs_corruption=TRUE 重新启动数据库,利用until cancel恢复
SQL>recover database until cancel;
Cancel 打开数据库
SQL>alter database open resetlogs;
数据库被打开后,马上执行一个全库导出。
关闭数据库,
SQL>shutdown immediate;
SQL>alter system set "_allow_resetlogs_corruption"=false;
或者
在init<sid>.ora中去掉_all_resetlogs_corrupt参数