配好Oracle环境后大概过了半个月没打开SQL Developer,再次登录时报错,此时打开sql plus发现无法登录,报错ORA-01034: ORACLE not available以及ORA-27101: shared memory realm does not exist(如下)。
ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Process ID: 0
Session ID: 0 Serial number: 0
首先win+R进入cmd,输入sqlplus / as sysdba
提示连接到空闲进程,随后按大佬“能量守恒洛”步骤操作,地址如下(侵删):
ORA-01034: ORACLE not available如何解决_能量守恒洛的专栏-CSDN博客
进行到这一步时出现错误无法继续 ,但sql plus已可以正常连接,尝试打开SQL Developer,发现报错ORA-01589 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项。
(下列代码为后期复盘模拟,黑色部分可能与实际有出入,不影响具体操作)
需要强调的是像我一样的小白朋友们在键入操作后若出现光标闪烁,不必回车或关闭,耐心等待一分钟左右待出现新的提示信息,且出现SQL>(可键入内容的闪烁的光标)后方可继续下一步操作,
随后再次win+R进入cmd,输入sqlplus / as sysdba
连接后,按步骤输入红色字体代码
SQL> shutdown immediate;
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-01113: 文件 1 需要介质恢复
ORA-01110: 数据文件 1: 'E:\ORACLE\ORADATA\EYGLE\SYSTEM01.DBF'
SQL> recover database using backup controlfile;
ORA-00279: 更改 1670743 (在 11/10/2021 14:13:16 生成) 对于线程 1 是必需的
ORA-00289: 建议: E:\ORACLE\ORA92\RDBMS\ARC00030.001
ORA-00280: 更改 1670743 对于线程 1 是按序列 # 30 进行的
指定日志: {=suggested | filename | AUTO | CANCEL}
出现上面这行代码后我们需要手动查询Oracle安装路径下的REDO01.LOG文件!!
比如按照我的安装路径,我就输入:
D:\Oracle\oradata\orcl\REDO01.LOG
之后继续,
ORA-00310: 存档日志包含序列 29;要求序列 30
ORA-00334: 归档日志: 'D:\Oracle\oradata\orcl\REDO01.LOG'
SQL> recover database using backup controlfile;
ORA-00279: 更改 1670743 (在 11/10/2021 14:13:16 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\ORACLE\ORA92\RDBMS\ARC00030.001
ORA-00280: 更改 1670743 对于线程 1 是按序列 # 30 进行的
指定日志: {=suggested | filename | AUTO | CANCEL}
此时再次手动查找日志,输入02:
D:\Oracle\oradata\orcl\REDO02.LOG
已应用的日志。
完成介质恢复。
SQL> alter database open resetlogs;
数据库已更改。
至此在监听配好的情况下,就可以打开SQL Developer正常进行连接和进一步操作了!