SGA设置错误导致数据库无法连接问题
2009-07-05 21:08
525 查看
前几天一位同事打电话给我寻求紧急救援。
原来,因为程序出来问题,他怀疑是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)[b]运行命令行[/b]
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公司本身没有将其设计得很好。
希望能对有些朋友有些帮助。
原来,因为程序出来问题,他怀疑是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)[b]运行命令行[/b]
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公司本身没有将其设计得很好。
希望能对有些朋友有些帮助。
相关文章推荐
- oracle数据库热备方案中,自动归档模式的相关问题,-------转【一例SPFILE设置错误导致数据库无法启动】
- 由于回滚段参数设置存在问题导致数据库无法启动
- VMware workstation NAT方式无法连接外网[自己NAT方式的网关设置错误,导致ping www.baidu.com不通]
- 解决虚拟内存设置错误导致的系统蓝屏无法启动问题
- MySql启动时无法连接数据库导致的2003问题
- 当spfile文件中的参数修改错误,导致数据库无法启动问题
- 当spfile文件中的参数修改错误,导致数据库无法启动问题
- 又一例SPFILE设置错误导致数据库无法启动
- 解决"System.AccessViolationException”类型的未经处理的异常在 未知模块(IIS Worker Process 已停止工作)导致无法连接远程数据库的问题
- 当spfile文件中的参数修改错误,导致数据库无法启动问题
- 又一例SPFILE设置错误导致数据库无法启动
- 磁盘设置压缩导致无法将数据库还原到该硬盘的问题
- MySQL开发遇到常见问题 连接数据库错误、无法插入值 中文乱码 ??
- ORA-01251错误oracle服务启动无法连接误删非法删除数据文件导致数据库不能打开ORA-01122 ORA-01251
- 又一例SPFILE设置错误导致数据库无法启动
- mysql的1067错误导致无法连接数据库
- 关于oracle设置不活动自动断开连接导致java访问数据库时发生异常的问题
- selinux 的设置导致vsftp权限问题(linux的ftp用户无法连接问题)
- 环境变量设置错误导致全部命令无法使用解决办法
- 设置wifi连接中虚拟机无法使用桥接的问题