ORA-01219:数据库未打开:仅允许在固定表/视图中查询

过了好久没有用oracl数据库后,有一天打开就出现这个错误。

ORA-01033: ORACLE initialization or shutdown in progress

G:\Documents and Settings\lvhl>sqlplus /NOLOG

SQL*Plus: Release 9.2.0.1.0 - Production on 星期六 11月 15 19:50:02 2008

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

SQL> recover database until cancel;
SP2-0640: 未连接
完成介质恢复。
SQL> connect nihao/nihaoma as sysdba
已连接。
SQL> recover database until cancel;
ORA-00279: 更改 758407 (在 11/01/2008 09:32:00 生成) 对于线程 1 是必需的
ORA-00289: 建议: C:\ORACLE\ORA92\RDBMS\ARC00011.001
ORA-00280: 更改 758407 对于线程 1 是按序列 # 11 进行的


指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
auto
ORA-00308: 无法打开存档日志 'C:\ORACLE\ORA92\RDBMS\ARC00011.001'
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。


ORA-00308: 无法打开存档日志 'C:\ORACLE\ORA92\RDBMS\ARC00011.001'
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。


ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 将出现如下错误
ORA-01194: 文件1需要更多的恢复来保持一致性
ORA-01110: 数据文件 1: 'C:\ORACLE\ORADATA\NIHAO\SYSTEM01.DBF'


SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR 位于第 1 行:
ORA-01194: 文件1需要更多的恢复来保持一致性
ORA-01110: 数据文件 1: 'C:\ORACLE\ORADATA\NIHAO\SYSTEM01.DBF'


SQL> col name format a40
SQL> select file#, rfile#, name from v$datafile;

     FILE#     RFILE# NAME
---------- ---------- ----------------------------------------
         1          1 C:\ORACLE\ORADATA\NIHAO\SYSTEM01.DBF
         2          2 C:\ORACLE\ORADATA\NIHAO\UNDOTBS01.DBF
         3          3 C:\ORACLE\ORADATA\NIHAO\CWMLITE01.DBF
         4          4 C:\ORACLE\ORADATA\NIHAO\DRSYS01.DBF
         5          5 C:\ORACLE\ORADATA\NIHAO\EXAMPLE01.DBF
         6          6 C:\ORACLE\ORADATA\NIHAO\INDX01.DBF
         7          7 C:\ORACLE\ORADATA\NIHAO\ODM01.DBF
         8          8 C:\ORACLE\ORADATA\NIHAO\TOOLS01.DBF
         9          9 C:\ORACLE\ORADATA\NIHAO\USERS01.DBF
        10         10 C:\ORACLE\ORADATA\NIHAO\XDB01.DBF

已选择10行。

SQL> startup
ORA-01081: 无法启动已在运行的 ORACLE --- 请首先关闭
SQL> shutdown
ORA-01109: 数据库未打开


已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。

Total System Global Area 135338868 bytes
Fixed Size                   453492 bytes
Variable Size             109051904 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes
数据库装载完毕。
ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项


SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR 位于第 1 行:
ORA-01194: 文件1需要更多的恢复来保持一致性
ORA-01110: 数据文件 1: 'C:\ORACLE\ORADATA\NIHAO\SYSTEM01.DBF'


SQL> recover database using backup controlfile
ORA-00279: 更改 758407 (在 11/01/2008 09:32:00 生成) 对于线程 1 是必需的
ORA-00289: 建议: C:\ORACLE\ORA92\RDBMS\ARC00011.001
ORA-00280: 更改 758407 对于线程 1 是按序列 # 11 进行的


指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
cancel
介质恢复已取消。
SQL> recover database using backup controlfile;
ORA-00279: 更改 758407 (在 11/01/2008 09:32:00 生成) 对于线程 1 是必需的
ORA-00289: 建议: C:\ORACLE\ORA92\RDBMS\ARC00011.001
ORA-00280: 更改 758407 对于线程 1 是按序列 # 11 进行的


指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
C:\oracle\oradata\sato\redo01.log
ORA-00308: 无法打开存档日志 'C:\oracle\oradata\sato\redo01.log'
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 3) 系统找不到指定的路径。


指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
C:\oracle\oradata\nihao\redo01.log                    这个是要根据自己的oracle路劲来的,不一定和他一样的
已应用的日志。
完成介质恢复。

 
==============================================================================================
此处如果出现如下错误提示:
'D://ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/REDO01.LOG
ORA-00310: 归档日志包含序列 974; 要求序列 975
ORA-00334: 归档日志: 'D:\PROGRAM\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG'
使用redo02.log,或者采用如下方式:

控制文件数据文件 备份不同时  恢复尝试
【问题与背景】

使用备份控制文件恢复,是不是一定恢复不了在线日志中的数据吗?
答案是错误的,其实也能完全恢复(当然我们用trace更好)

还原用到的主要语句

select GROUP#,SEQUENCE#,archived, STATUS from v$log;

    GROUP#  SEQUENCE# ARC STATUS
---------- ---------- --- ----------------
         1          5 NO  CURRENT
         2          3 YES ACTIVE
         3          4 YES ACTIVE
查看当前归档日志情况


select resetlogs_change# - 1,CONTROLFILE_CHANGE# from v$database;
查找当前数据库重作日志文件scn号和控制文件scn号

SQL> recover database using backup controlfile until cancel; -->>这个cancel是表示每次应用一个日志时都提示一下,直到输入cancel后结束
                                                                 cancel选项允许每次前滚一个日志文件,当需要停止恢复时,输入cancel
                                                                 ,在这种方式下不会自动运用联机日志文件.
原理:
在用备份redo日志还原到最接近控制文件scn号的时候在指定在在线日志文件进行恢复
使得在线日志文件强制应用来恢复数据文件

指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
C:\oracle\oradata\testdb\REDO01.LOG或者redo02.log

===============================================================================================


SQL> startup
ORA-01081: 无法启动已在运行的 ORACLE --- 请首先关闭
SQL> shutdown
ORA-01109: 数据库未打开


已经卸载数据库。
ORACLE 例程已经关闭。
SQL>
SQL> startup
ORACLE 例程已经启动。

Total System Global Area 135338868 bytes
Fixed Size                   453492 bytes
Variable Size             109051904 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes
数据库装载完毕。
ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项


SQL> alter database open resetlog
2 ;
alter database open resetlog
                    *
ERROR 位于第 1 行:
ORA-02288: 无效的 OPEN 模式


SQL> alter database open resetlogs;

数据库已更改。

SQL> startup
ORA-01081: 无法启动已在运行的 ORACLE --- 请首先关闭
SQL> shutdowm
SP2-0042: 未知命令"shutdowm" -- 其余行忽略。
SQL> shutdown
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR 位于第 1 行:
ORA-01034: ORACLE not available


SQL> startup
ORACLE 例程已经启动。

Total System Global Area 135338868 bytes
Fixed Size                   453492 bytes
Variable Size             109051904 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes
数据库装载完毕。
数据库已经打开。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值