ORA-27101

序: 以下观点仅适用于“操作系统Window32位、Oracle9i”

(一)概述:该问题主要出现在Oracle9i上面。

(二)原因:

(1)数据库被非正常关闭导致,比如电脑非正常关机。

(2)Oracle9i在Windows32位单线程操作系统对有内存最大使用量为2G的限制(超过1.5G,有时也会报错),如果设置超过了最大值就会报“ORA-27101”的错误。

注:SGA+PGA<=2G,其中SGA在Windows32位单线程操作系统不能超过1.7G,intel的处理器, 可以超过4g内存。

SQL> alter system set sga_max_size=1000M scope=spfile;
SQL> shutdown immediate;
SQL> startup;

(3)同一台机器上安装了,多个oracle版本,造成服务异常

(三)解决方案:

 注:解决问题前确保服务中“OracleOraHome90TNSListener、OracleServiceORCL”是启动状态(可在运行中输入命令“services.msc”打开服务界面)。

(1)针对于非正常关闭数据库:

如果再重启/注销服务器之前数据库还是正常的,说明之前曾经手动改动过,Oracle启动时读取的默认配置文件“spfile”,只需要登录图形化界面重新设置一下就可以了。

开始菜单-->Oracle - OraHome90-->Enterprise Manager Console-->选择“独立启动”-->确定

此时会看到弹出窗口界面的左侧是下拉菜单:在此默认我们新建的表空间叫ORCL

依次展开菜单:网络-->数据库-->ORCL

此时点击ORCL前面的“+”时,会弹出登录界面。

输入用户名和密码(默认为sys/sys,我的123456),然后选择连接身份为“SYSDBA”-->确定-->(登录)。

再次展开菜单:网络-->数据库-->ORCL-->例程-->配置

此时在窗口右侧“一般信息”选项卡下会看到一个红绿灯标示,切红绿灯显示为红灯。旁边的Radio选择为关闭(这就是在运行里输入services.msc后,看到Oracle Orcl和监听的服务都开启了,却登录不上数据库的主要原因,是因为数据库其中并没有真正启动)

选择“红绿灯标示”旁的“打开”-->点击该界面下方的”应用“-->确定---->确定。(此时再报“”的错误时,把“spfile”前面的勾选框的“√”取消,然后再点击确定就OK了

此时 当服务启动完毕后“红绿灯标示”就会由”红灯“转换成”绿灯“,这个时候,你就可以正常登录数据库了。

(2)修改了内存最大使用量2G后,才导致的该问题:

通过图形化界面或者命令把内存调回去就可以了,详情步骤暂不累述。

(3)同一台机器上安装了,多个oracle版本,才导致的该问题:不建议同一台机器上安装了,多个oracle版本。


(四)附录:

(1)SGA/PGA定义:

SGA:System Global Area(系统全局区是Oracle Instance的基本组成部分,在实例启动时分配;系统全局域SGA主要由三部分构成:共享池、数据缓冲区、日志缓冲区

PGA:Process Global Area(程序全局区是为每个连接到Oracle database的用户进程保留的内存 。

(2)SGA/PGA关系:

ORACLE的SGA和PGA的调整始终是一个迭代的过程,很难一次调整到位。你如果增加了PGA,降低SGA时,可能对SQL的排序性能有提升,但可能对DB的读写性能稍微有影响,反之,当你增加SGA,调低PGA时,对DB的读写性能有提升,但降低SQL语句的排序操作性能。SGA和PGA的分配比例没有绝对的标准,有些人说1:1或1:0.8,其实这些都只是经验值,不一定符合你的数据库实际环境。所以,ORACLE的内存调整一定是要经过反复的观察,才可以找到最佳值(调整后,加载工作量,查看各项数据库性能指标,然后根据分析报告,再作进一步的调整,直到找到最佳的内存配置,详情可在“<<oracle性能优化>>第2章:oracle内存调整”等资料中汲取。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值