oracle修改SGA后无法启动的临时解决方法
做oracle的优化,使用Console中打开数据库的配置,发现如图 由于里面有的值为零,于是我按照它的建议修改了对应的值。结果重启后oracle启动不起来了。
使用Console连接提示: 无法解析连接描述符中指定的SID。
使用pl/sql连接提示:ORA-12505:TNS:监听程序当前无法识别连接描述符中所给出的SID
1、 若数据库机器上没有装Console或者没有使用Console配置网络服务名.
则可以通过命令sqlplus sys/sys as sysdba 登录到服务器空闲进程。接着执行步骤4。
2、如果配置了网络服务名,则
在路径D:\oracle\product\10.2.0\db_1\network\admin\listener.o
ra下 找到listener.ora。
原来listener.ora内容:
# listener.ora Network Configuration File: D:\oracle\product\10.2.0\db_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = E:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
)
改成(红色部分为增加部分):
# listener.ora Network Configuration File: D:\oracle\product\10.2.0\db_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = XXX(网络服务名))
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(SID_NAME = XXX(网络服务名)))
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1568))
)
)
修改完 listener.ora后
使用console连接提示“数据库已关闭”。
使用pl/sql连接提示
ORA-27101 Shared memory realm does not exist
ORA-01034 ORACLE not available
查看db1文件夹下的alert_XXX(网络服务名).log。
里面记录 :Cannot set sga_target with db_block_buffers set
3、使用dos端登录oracle
sqlplus sys/sys@XXX(网络服务名). as sysdba
能够登陆
提示已经连接到空闲例程
4、找 pfile,在 /.../admin/XXX(服务名)/pfile 下,init.ora.XXXXXXX(数字串)
5、执行命令
SQL> startup pfile='pfile 路径'
通过指定的 pfile 启动数据库实例
结果如图
6、执行命令
SQL> create spfile from pfile='pfile 路径';(一定要有分号!)
创建成功会提示: 文件已创建。
数据库可以登录了,查看例程/配置/内存 ,恢复了原样。
对于32 BIT的Windows系统,有SGA 1.7G限制
某些OS系统本身也有一些内存参数限制
修改 SGA 文件:
SGA_MAX_SIZE是调优oracle9i非常重要的参数,但也是并不是调的越大越好。相反,oracle9i对SGA_MAX_SIZE的最大值有一个限制:1.7G,超过该值就会造成实例无法启动,系统报以下信息:
已连接到空闲例程。
SQL> create pfile='d:\zgznew.ora' from spfile;
ORACLE 例程已经启动。
Fixed Size 454116 bytes
Variable Size 503316480 bytes
Database Buffers 25165824 bytes
Redo Buffers 143360 bytes
数据库装载完毕。
数据库已经打开。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述