惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
DataBreaches.Net
GbyAI
GbyAI
aimingoo的专栏
aimingoo的专栏
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
月光博客
月光博客
大猫的无限游戏
大猫的无限游戏
M
MIT News - Artificial intelligence
腾讯CDC
博客园 - Franky
Engineering at Meta
Engineering at Meta
C
Check Point Blog
T
The Blog of Author Tim Ferriss
有赞技术团队
有赞技术团队
Microsoft Azure Blog
Microsoft Azure Blog
MyScale Blog
MyScale Blog
I
InfoQ
Blog — PlanetScale
Blog — PlanetScale
P
Proofpoint News Feed
The GitHub Blog
The GitHub Blog
N
Netflix TechBlog - Medium
Last Week in AI
Last Week in AI
S
SegmentFault 最新的问题
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
WordPress大学
WordPress大学

博客园 - 释子

Centos单网卡配置多个IP的方法 windows下ruby安装环境配置 归来,冒个泡泡 盖茨微软亚洲研究院十年创新论坛讲演实录 新产品发布 杂志上看到的老板 “经验汇”团队成立,让我们一起分享经验和快乐 《SOA In the real world》第一章译稿(含下载) 《Service Oreiented Architecture in the Real World》推荐及翻译计划 安装VSTFS后遗症解决方法 小心NLS_SORT和NLS_COMP的设置成为性能杀手 Microsoft Visual Studio International Pack 1.0 过度配置与过度设计一样可怕 解除SourceSafe锁定的小技巧 比尔盖茨退休告别演说:下个数字十年 始信 体验了一下用word 2007发表博客 细说Oracle Session 编程活动中几个不良现象
SGA设置错误导致数据库无法连接问题
释子 · 2009-07-05 · via 博客园 - 释子

      前几天一位同事打电话给我寻求紧急救援。

      原来,因为程序出来问题,他怀疑是Oracle数据库配置有问题,然后他将客户生产数据库的SGA调整了,没想到可怕的事情发生了,

Oracle数据库再也无法连接上了。表现的现象是登录数据库的时候总是提示协议适配器错误,即使是使用windows身份验证,也是无法

连接上数据库,检查oracle服务,服务可以正常启动,运行正常。

     这个问题可以说是Oracle新手最经常犯得一种错误,而且一犯了这种错误就会一筹莫展,因为此时Oracle Instance启动是不正常的,

不管是用什么方法都是没有办法登录的,所以也无法用诸如

     c:\sqlplus /nolog

     sql> conn / as sysdba

     这样的命令行登录的,进一步的处理自然无法进行。

     结果同事在排除这个错误的时候犯了一个更致命的错误,他用记事本打开spfile修改了spfile中sga分配内存的大小,实际上spfile是一个

二进制文件,绝对是不可以用记事本等工具编辑的。急得跳脚此时又有何用?

     要解决这个问题,其实很简单,可以使用以下方法。

     1. 新建一个数据库,如testdb

     2. 按以下步骤执行 

         1)打开原来出问题的数据库的pfile,文件名一般如 'D:\oracle\product\10.2.0\admin\<sid>\pfile\init.ora.628200817533'

              init.ora.628200817533文件时创建数据库生成的一个文件,每一个数据库都不一样。

         2)用记事本文件打开init.ora.628200817533,修改sqa为一个较小的数值,将文件另存为c:\pfile.ora。

         3)运行命令行

              c:\sqlplus /nolog

              sql>conn sys/test@testdb as sysdba;

              sql> create spfile ='c:\spfile<sid>.ora' from pfile='c:\pfile.ora';

          4)将在c盘中的spfile覆盖到原来的路径下,如D:\oracle\product\10.2.0\db_1\dbs\spfile<sid>.ora。

          文中<sid>指原来出问题的数据库SID号。

      3. 重新启动服务器或者重新启动oracle服务,此时数据库应该就可以登录了。

      要说明的是SGA设置不正确的时候,是会造成各种各样的错误提示的,设置SGA大小的时候要小心,在windows 32 bit操作系统下,SGA

最大不能超过1.7G,另外不要迷信自动化内存管理,在oracle10g中这项功能实际上鸡肋,oracle公司本身没有将其设计得很好。

      希望能对有些朋友有些帮助。