加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

ORACLE数据库出现了ORA-01033:ORACLE initialization

(2009-05-12 10:17:10)
标签:

ora-01033

oracle

例程

recover

log

it

分类: 学业与工作

由于这个问题超级复杂,所以开头有些操作我没有记录下来。当时我的日志文件REDO01.LOG,REDO02.LOG,REDO03.LOG这个3个文件都没有。我做了很久只恢复了第一个和第三个。而且这个日志文件里面没有恢复重做日志文件的内容。导致在恢复的时候提示没有恢复记录,需要更多的恢复数据。我在网上找了很多东西,都没有能解决的。下面是我将3个日志文件搞出来后的操作记录。

我在网络上面看到很多人遇到这样的问题,但是解决了的很少。

 

问题出来了:我昨天启动oracle相关服务后,登录不了了。

出现了ORA-01033:ORACLE initialization or shutdown in progress

调查后的原因我估计是因为我用优化大师优化系统的时候可能把数据库的某些文件给删掉了

解决步骤:

以DBA(通常有好几个sys或system)用户sqlplus登录

请输入用户名: system/sys as sysdba

然后(卸载数据)输入:

SQL> shutdown normal

会出现:
ORA-01109: 数据库未打开


已经卸载数据库。
ORACLE 例程已经关闭。


然后(装载数据)输入:

SQL> startup mount


ORACLE 例程已经启动。

数据库装载完毕。

SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项


SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ORA-01113: 文件 1 需要介质恢复
ORA-01110: 数据文件 1: 'E:\oracle\oradata\orcl\SYSTEM01.DBF'

--try to open but failed


SQL> recover datafile 1;
ORA-00283: 恢复会话因错误而取消
ORA-01610: 使用 BACKUP CONTROLFILE 选项的恢复必须已完成


SQL> shutdown abort
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。

Total System Global Area 293601280 bytes                                      
Fixed Size                  1248624 bytes                                      
Variable Size             100663952 bytes                                      
Database Buffers          188743680 bytes                                      
Redo Buffers                2945024 bytes                                      
数据库装载完毕。
ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项


SQL> shutdown abort
ORACLE 例程已经关闭。
SQL> startup mount;
ORACLE 例程已经启动。

Total System Global Area 293601280 bytes                                      
Fixed Size                  1248624 bytes                                      
Variable Size             100663952 bytes                                      
Database Buffers          188743680 bytes                                      
Redo Buffers                2945024 bytes                                      
数据库装载完毕。
SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ORA-01113: 文件 1 需要更多的介质恢复
ORA-01110: 数据文件 1: 'E:\oracle\oradata\orcl\SYSTEM01.DBF'


SQL> recover datafile 1;
ORA-00283: 恢复会话因错误而取消
ORA-01610: 使用 BACKUP CONTROLFILE 选项的恢复必须已完成


SQL> recover database using backup controlfile;
ORA-00279: 更改 676473 (在 03/20/2009 05:17:45 生成) 对于线程 1 是必需的
ORA-00289: 建议:···
ORA-00280: 更改 676473 (用于线程 1) 在序列 #111 中


指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
auto
ORA-00308: 无法打开归档日志
'E:\oracle\oradata\orcl\REDO01.LOG'
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。


ORA-00308: 无法打开归档日志
'E:\oracle\oradata\orcl\REDO02.LOG'
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。


SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ORA-01113: 文件 1 需要介质恢复
ORA-01110: 数据文件 1: 'E:\oracle\oradata\orcl\SYSTEM01.DBF'


SQL> alter system set "_allow_resetlogs_corruption"=true scope=spfile;

系统已更改。

SQL> shutdown abort
ORACLE 例程已经关闭。
SQL> startup mount;
ORACLE 例程已经启动。

Total System Global Area 293601280 bytes                                      
Fixed Size                  1248624 bytes                                      
Variable Size             100663952 bytes                                      
Database Buffers          188743680 bytes                                      
Redo Buffers                2945024 bytes                                      
数据库装载完毕。
SQL> recover database until cancel;
ORA-00283: 恢复会话因错误而取消
ORA-01610: 使用 BACKUP CONTROLFILE 选项的恢复必须已完成


SQL> alter database open resetlogs;

我记得在这部,ORACL数据库的服务强行的停止了。而且在这里面再也启动不起了,如果遇到,你需要关掉DOS窗口,重新上面的操作。


如果

SQL> alter database open;

出现了:

数据库已更改。

则成功了。

这时可以再用PL/SQL等客户端工具,登录操作数据库了。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有