oracle突然报错,之前是可以连接没有问题。
排查1
查看配置文件:怎么看都没有问题。
排查2
:查看sid也没有问题。设定oracle_sid和查看注册表的SId也没有问题的。
后面结合两个好文章解决了:
https://blog.csdn.net/qq_31747765/article/details/116865011
https://www.cnblogs.com/zjfjava/p/7757739.html
解决问题精简指令。
C:\Users\Administrator>sqlplus xx/xxx as sysdba
SQL> startup
SQL> conn xx/xxx as sysdba
SQL> *startup mount
SQL> alter database open resetlogs;
解决错误
SQL> recover database using backup controlfile;
输入(有三个文件):D:\app\Administrator\oradata\NFDHDB\REDO02.LOG
SQL> alter database open resetlogs;
shutdown
startup
然后开启成功,正常连接。
解决问题完整指令
C:\Users\Administrator>sqlplus xx/xxx as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on 星期五 7月 15 14:41:30 2022
Version 19.3.0.0.0
Copyright © 1982, 2019, Oracle. All rights reserved.
已连接到空闲例程。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 2.0535E+10 bytes
Fixed Size 19655840 bytes
Variable Size 3087007744 bytes
Database Buffers 1.7381E+10 bytes
Redo Buffers 47452160 bytes
数据库装载完毕。
ORA-03113: 通信通道的文件结尾
进程 ID: 4260
会话 ID: 3873 序列号: 31129
SQL> conn xx/xxx as sysdba
已连接到空闲例程。
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area 2.0535E+10 bytes
Fixed Size 19655840 bytes
Variable Size 3087007744 bytes
Database Buffers 1.7381E+10 bytes
Redo Buffers 47452160 bytes
数据库装载完毕。
SQL> show parameter service_names
NAME TYPE
VALUE
service_names string
nfdhdb
SQL> startup open
ORA-01081: 无法启动已在运行的 ORACLE - 请先将其关闭
SQL> select * from v$log
2 ;
GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARCHIV
STATUS FIRST_CHANGE# FIRST_TIME NEXT_CHANGE#
NEXT_TIME CON_ID
1 1 868 209715200 512 1 NO
INACTIVE 49143406 08-7月 -22 49245020
09-7月 -22 0
3 1 867 209715200 512 1 NO
INACTIVE 49042111 05-7月 -22 49143406
08-7月 -22 0
GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARCHIV
STATUS FIRST_CHANGE# FIRST_TIME NEXT_CHANGE#
NEXT_TIME CON_ID
2 1 869 209715200 512 1 NO
CURRENT 49245020 09-7月 -22 1.8447E+19
0
SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ORA-01139: RESETLOGS 选项仅在不完全数据库恢复后有效
SQL> recover database until time ‘2011-04-11 12:12:12’;
ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 将出现如下错误
ORA-01194: 文件 1 需要更多的恢复来保持一致性
ORA-01110: 数据文件 1: ‘D:\APP\ADMINISTRATOR\ORADATA\NFDHDB\SYSTEM01.DBF’
SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ORA-01194: 文件 1 需要更多的恢复来保持一致性
ORA-01110: 数据文件 1: ‘D:\APP\ADMINISTRATOR\ORADATA\NFDHDB\SYSTEM01.DBF’
SQL> alter database open resetlogs;
alter database open resetlogs
第 1 行出现错误:
ORA-01194: 文件 1 需要更多的恢复来保持一致性
ORA-01110: 数据文件 1: 'D:\APP\ADMINISTRATOR\ORADATA\NFDHDB\SYSTEM01.DBF
SQL> shutdown
ORA-01109: 数据库未打开
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 2.0535E+10 bytes
Fixed Size 19655840 bytes
Variable Size 3087007744 bytes
Database Buffers 1.7381E+10 bytes
Redo Buffers 47452160 bytes
数据库装载完毕。
ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项
SQL> alter database open resetlogs;
alter database open resetlogs
第 1 行出现错误:
ORA-01194: 文件 1 需要更多的恢复来保持一致性
ORA-01110: 数据文件 1: 'D:\APP\ADMINISTRATOR\ORADATA\NFDHDB\SYSTEM01.DBF
SQL> recover database using backup controlfile;
ORA-00279: 更改 49245021 (在 07/09/2022 14:27:33 生成) 对于线程 1 是必需的
ORA-00289: 建议:
D:\WINDOWS.X64_193000_DB_HOME\RDBMS\ARC0000000869_1087205704.0001
ORA-00280: 更改 49245021 (用于线程 1) 在序列 #869 中
指定日志: {=suggested | filename | AUTO | CANCEL}
D:\app\Administrator\oradata\NFDHDB\REDO0.LOG
ORA-00308: 无法打开归档日志 ‘D:\app\Administrator\oradata\NFDHDB\REDO0.LOG’
ORA-27041: 无法打开文件
OSD-04002: ???????
O/S-Error: (OS 2) ???????????????
指定日志: {=suggested | filename | AUTO | CANCEL}
D:\app\Administrator\oradata\NFDHDB\REDO01.LOG
ORA-00310: 归档日志包含序列 868; 要求序列 869
ORA-00334: 归档日志: ‘D:\APP\ADMINISTRATOR\ORADATA\NFDHDB\REDO01.LOG’
SQL> recover database using backup controlfile;
ORA-00279: 更改 49245021 (在 07/09/2022 14:27:33 生成) 对于线程 1 是必需的
ORA-00289: 建议:
D:\WINDOWS.X64_193000_DB_HOME\RDBMS\ARC0000000869_1087205704.0001
ORA-00280: 更改 49245021 (用于线程 1) 在序列 #869 中
指定日志: {=suggested | filename | AUTO | CANCEL}
D:\app\Administrator\oradata\NFDHDB.REDO02.LOG
ORA-00308: 无法打开归档日志 ‘D:\app\Administrator\oradata\NFDHDB.REDO02.LOG’
ORA-27041: 无法打开文件
OSD-04002: ???????
O/S-Error: (OS 2) ???????????????
指定日志: {=suggested | filename | AUTO | CANCEL}
D:\app\Administrator\oradata\NFDHDB\REDO02.LOG
已应用的日志。
完成介质恢复。
SQL> alter database open resetlogs;
数据库已更改。
SQL> shutdown
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 2.0535E+10 bytes
Fixed Size 19655840 bytes
Variable Size 3087007744 bytes
Database Buffers 1.7381E+10 bytes
Redo Buffers 47452160 bytes
数据库装载完毕。
数据库已经打开。
SQL>
#日志文件如下:
D:\app\Administrator\oradata\NFDHDB