某个数据文件损坏,如何打开数据库——ORA-01033: ORACLE initialization or shutdown in progress错误
系统环境:
1、操作系统:Windows 2000 Server,机器内存128M
2、数据库: Oracle 8i R2 (8.1.6) for NT 企业版
3、安装路径:C:\ORACLE
错误现象:
因误操作,数据库中某一数据文件被误删,控制面板的Oracle相关服务显示已启动,但用SQL*Plus无法连接,显示以下错误:
ORA-01033: ORACLE initialization or shutdown in progress
模拟现象:
create tablespace test datafile
'c:\test.ora' size 5M
AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED
default storage (initial 128K next 1M pctincrease 0)
/
关闭所有服务stop.bat
net stop "OracleWebAssistant0"
net stop "OracleOraHome81TNSListener"
net stop "OracleServiceORADB"
shutdown
在操作系统中删除test.ora文件
重新启动服务start.bat
net start "OracleWebAssistant0"
net start "OracleOraHome81TNSListener"
net start "OracleServiceORADB"
服务里OracleServiceORADB显示已启动,但用SQL*Plus无法连接,
显示ORA-01033: ORACLE initialization or shutdown in progress
解决方法:
先让该数据文件脱机,就可以打开数据库
C:\>svrmgrl
svrmgrl>connect internal
svrmgrl>shutdown
svrmgrl>startup mount
--ARCHIVELOG模式命令,文件名要大写
svrmgrl>alter database datafile 'C:\TEST.ORA' offline;
--NOARCHIVELOG模式命令
svrmgrl>alter database datafile 'C:\TEST.ORA' offline drop;
svrmgrl>alter database open;
--查询数据文件联、脱机状态
SQL> select file#,name,status from v$datafile;
SQL> drop tablespace test;
表空间已丢弃。
丢失联机日志文件
分两种情况处理
1、丢失的是非活动的日志文件;
2、丢失的是当前激活的日志文件。
如果是第一种情况,而发生故障的日志文件组又具有多个成员,可以先将数据库shutdown,
然后用操作系统命令将损坏日志文件组中好的日志成员文件把损坏的成员文件覆盖
(在同一个日志成员组中的所有日志文件的各为镜象的),
如果其物理位置不可用可将其拷贝到新的驱动器上,使用alter database rename file ‘xxxx’ to ‘xxxx’改变文件位置,
之后启动数据库,如果正常马上进行一个冷备份。
如果损坏的日志组中只有一个日志成员,先mount上数据库,将其转换为noarchivelog模式,
执行alter database add logfile member ‘xxx’ to group ‘x’给相关组增加一个成员,
再执行alter database drop logfile member ‘bad_file’将损坏的日志文件删除,
由于数据库的结构发生变动需要备份控制文件,之后将数据库改回archivelog模式,做一个冷备份。
如果丢失的是当前激活的日志文件,数据库又没有镜像而且当前日志组中所有成员均变为不可用。
首先将数据库shutdown abort,从最近的一次全备份中恢复所有的数据文件,将数据库启动到mount状态。
如果原来的日志文件物理位置不可用,使用alter database rename file ‘xxx’ to ‘xxx’改变文件的存放位置。
然后,使用recover database until cancel命令来恢复数据库,直到提示最后一个归档日志运用完之后,输入cancel。
之后用alter database open resetlogs打开数据库,如果没有问题,立即进行一个冷备份。
注意!所有包含在损坏的redo log中的信息将会丢失,也就是说数据库崩溃前已经提交的数据有可能会丢失。
这对于某些要求很高的应用将会损失惨重,因此应尽量使每个日志组具有多个日志成员,
并且放置在不同的驱动器上防止发生介质故障。
分享到:
相关推荐
ora-01033:oracle initialization or shutdown in progress 解决方法 ora-01033:oracle initialization or shutdown in progress 解决方法 ora-01033:oracle initialization or shutdown in progress 解决方法 ora-...
数据库导致连接出现异常的解决办法整理,这是 oracle连接问题的具体解决方案
ORA-01110: 数据文件 19: ''''C:\oracle\oradata\oradb\FYGL.ORA'' 这个提示文件部分根据每个人不同情况有点差别。 继续输入 SQL>alter database datafile 19 offline drop; 提示:数据库已更改。 循环使用最后两...
oracle数据库服务报错 【 ORA-01033:ORACLE initialization or shutdown in progress】,网上搜了很多,总结了一个有效的解决方案,亲测有效。
oracle 9i误删除表空间的解决办法(造成ORA-01033: ORACLE initialization or shutdown in progress ;ORA-01110: 数据库未打开)
登录Oracle数据时遇到了 ora-01033 : oracle initialization or shutdown in progress这个问题,公司服务器的数据库是ORACLE8.17i的,用vm登录把服务器上的db和API都重启了登录还是报错,然后在网上查了下ora-01033...
导致ORA-01033问题出现的原因多种多样,但由于操作不当误删除Oralce表空间文件这种情形的比较常见。ORA-01033: ORACLE initialization or shutdown in progress,下面主要介绍此种情况下解决问题的办法。
第5章 SQL Server 2005学习案例.pdf
ORA-01033:ORACLE initialization or shutdown in progress 用户: 口令: 这个显然是数据库没有办法启动,但是数据库服务还是可以启动,而程序则无法连接数据库。 首选找问题要看看数据库BDUMP目录下的ALERT文件...