我的电脑上安装的是oracle 12C的版本。
出问题的原因:电脑搬回宿舍以后连过校园网,再搬回实验室上课连上实验室的网络就提示我连接不上了。
首先在sql developer中连接时提示我监听服务有问题。重建,修改监听服务及监听文件以后(注意,到这里为止监听服务那边的问题处理完毕),就开始报错:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
这里我搜了很多解决办法,大多数都是说,在sqlplus下使用conn /as sysdba连接之后再启动数据库就好了。但是!我的就是连不上!一度十分绝望!
搜索词换了大概百十来遍,终于找到下面这篇,但里面写的其实没有完全解决我的问题,不过也是从这里受到了启发(感谢大佬!):
https://blog.csdn.net/zhangzl1012/article/details/50823034
首先我当初建库的时候使用的是DBCA建库,自动生成的pfile文件,它的文件名很奇怪,是init.ora.(后面一大串数字)。受上面的博客启发,我把文件后缀那一长串数字去掉,把spfile移走到桌面。
然后再尝试连接conn /as sysdba,提示成功连接到空闲历程。接下来我使用
startup pfile="D:\app\ABC\product\12.1.0\dbhome_1\database\init.ora"
命令打开数据库时仍然报错,提示说找不到监听服务“LINTENER_FORUM0”,虽然我的数据库实例名的确是forum0,但是我的监听服务名并不是这个名字,然后我在老师(自己的任课老师)的提示下查看了init.ora,发现里面有指定了监听服务名的语句,于是直接删掉,再保存。重新使用pfile文件打开数据库,成功了!
这里我没有从pfile重新生成spfile文件,因此每次启动数据库时,都需要通过sqlplus来启动。
问题到此为止完美解决,激动的我没有开始写实验,而是写了篇博客!我觉得需要分享出来!
【ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist的解决办法】也不想写总结了,只想感谢上面那篇博文的大佬,以及我的老师!非常感谢!
推荐阅读
- docker|docker导入dmp文件到oracle容器
- Linux|docker :oracle 数据恢复(导入数据库dmp文件)
- 软件编程|使用 GDB 调试多进程程序
- 笔记|数据库 左连接拼接多个表该怎么写?
- ORA-8103 “object no longer exists“错误
- Oracle|ORM框架 n+1问题 导致数据库负载飙高
- Java|Oracle 11g 数据库安装
- 数据库入门|Oracle--《基于Oracle的SQL优化》第二章总结回顾
- 数据库入门|Oracle--《基于Oracle的SQL优化》第一章总结回顾