刚接触ORACLE,不知道动什么地方了。登陆pl/sql时提示:ORA-01033: ORACLE initialization or shutdown in progress.
进入sqlplus,startup之后发现:
ORACLE 例程已经启动。
Total System Global Area 754974720 bytes
Fixed Size 1289708 bytes
Variable Size 197132820 bytes
Database Buffers 553648128 bytes
Redo Buffers 2904064 bytes
数据库装载完毕。
ORA-01221: 数据文件 1 与后台进程的文件不同
关闭报错:
SQL> shutdown immediate
ORA-01109: 数据库未打开
.....
分析知道这个错误是由01221错误引起的,那究竟什么是数据文件1呢?什么是后台文件呢?
在网上找了半天,没有结果....
不过这哥们为此种错误提供了解决方法:
http://space.itpub.net/104152/viewspace-442123
我就是按照他写的一步一步在sqlplus上打,最后成功解决。感谢此人!
我用的是oracle 10g xe 版本,这里的数据文件1是SYSTEM.DBF.后台文件倒不清楚,和CONTROL.DBF有关吧....
具体过程如下(当然可以参考上面的连接里的步骤,他那是英文版):
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area 754974720 bytes
Fixed Size 1289708 bytes
Variable Size 197132820 bytes
Database Buffers 553648128 bytes
Redo Buffers 2904064 bytes
数据库装载完毕。
SQL> recover database;
ORA-00283: 恢复会话因错误而取消
ORA-00264: 不要求恢复
SQL> alter database open
2
SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01221: 数据文件 1 与后台进程的文件不同
SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ORA-01139: RESETLOGS 选项仅在不完全数据库恢复后有效
SQL> recover database using backup controlfile;
ORA-00279: 更改 259170 (在 05/05/2009 16:08:06 生成) 对于线程 1 是必需的
ORA-00289: 建议:
D:\ORACLE\APP\ORACLE\FLASH_RECOVERY_AREA\XE\ARCHIVELOG\2009_05_06\O1_MF_1_4_%U_.
ARC
ORA-00280: 更改 259170 (用于线程 1) 在序列 #4 中
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
auto
ORA-00308: 无法打开归档日志
'D:\ORACLE\APP\ORACLE\FLASH_RECOVERY_AREA\XE\ARCHIVELOG\2009_05_06\O1_MF_1_4_%U_
.ARC'
ORA-27041: 无法打开文件
OSD-04002: ???????
O/S-Error: (OS 2) ????????????????
ORA-00308: 无法打开归档日志
'D:\ORACLE\APP\ORACLE\FLASH_RECOVERY_AREA\XE\ARCHIVELOG\2009_05_06\O1_MF_1_4_%U_
.ARC'
ORA-27041: 无法打开文件
OSD-04002: ???????
O/S-Error: (OS 2) ????????????????
SQL> alter database until cancel;
alter database until cancel
*
第 1 行出现错误:
ORA-02231: ALTER DATABASE 选项缺失或无效
SQL> recover database until cancel;
ORA-00283: 恢复会话因错误而取消
ORA-01610: 使用 BACKUP CONTROLFILE 选项的恢复必须已完成
SQL> recover database using backup controlfile;
ORA-00279: 更改 259170 (在 05/05/2009 16:08:06 生成) 对于线程 1 是必需的
ORA-00289: 建议:
D:\ORACLE\APP\ORACLE\FLASH_RECOVERY_AREA\XE\ARCHIVELOG\2009_05_06\O1_MF_1_4_%U_.
ARC
ORA-00280: 更改 259170 (用于线程 1) 在序列 #4 中
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
cancel
介质恢复已取消。
SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项
SQL> alter database resetlogs;
alter database resetlogs
*
第 1 行出现错误:
ORA-02231: ALTER DATABASE 选项缺失或无效
SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ORA-01113: 文件 1 需要介质恢复
ORA-01110: 数据文件 1: 'D:\ORACLE\ORADATA\XE\SYSTEM.DBF'
SQL> recover data file 1
ORA-00905: 缺失关键字
SQL> recover datafile 1;
ORA-00283: 恢复会话因错误而取消
ORA-01610: 使用 BACKUP CONTROLFILE 选项的恢复必须已完成
SQL> recover database using backup controlfile until cancel;
ORA-00279: 更改 259170 (在 05/05/2009 16:08:06 生成) 对于线程 1 是必需的
ORA-00289: 建议:
D:\ORACLE\APP\ORACLE\FLASH_RECOVERY_AREA\XE\ARCHIVELOG\2009_05_06\O1_MF_1_4_%U_.
ARC
ORA-00280: 更改 259170 (用于线程 1) 在序列 #4 中
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
cancel
介质恢复已取消。
SQL> alter database open resetlogs;
数据库已更改。
SQL> startup
ORA-01081: 无法启动已在运行的 ORACLE - 请首先关闭它
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 754974720 bytes
Fixed Size 1289708 bytes
Variable Size 197132820 bytes
Database Buffers 553648128 bytes
Redo Buffers 2904064 bytes
数据库装载完毕。
数据库已经打开。