Chinaunix首页 | 论坛 | 博客
  • 博客访问: 97655
  • 博文数量: 16
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 167
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-06 10:28
文章分类
文章存档

2011年(1)

2009年(15)

我的朋友

分类: Oracle

2009-10-20 23:16:49

    今天下班到家,接到一同事电话,说是用oracle9i的客户端连接oracle10g后,修改某些参数后,导致oracle10无法正常启动,小机重启了好几次都不行。
    远程连接之后,用oracle用户在sqlplus下面startup时,系统提示如下:
 
ORA-00824: cannot set sga_target due to existing internal settings, see alert log for more information
 
    看来是sga_target这个参数设置的有问题。在网上查了查sga_target参数的信息(具体可见我的另外一篇转载的文章:ORACLE10--SGA_MAX_SIZE与SGA_TARGET),了解到它是oracle10里新的内存参数,用于动态调整SGA内存的各组成部分。它的内容同样是存储在spfile中。
 
    在此之前,在另一片文章ORACLE9i——优化SGA最大值超过1.7G后导致实例无法启动 中,通过pfile和spfile之间的关系解决了因调整SGA_MAX_SIZE无法启动实例的问题,那么利用这种关系同样可以解决今天sga_target的问题。
而且,经过实践我发现,上次使用的方法太过于繁琐,今天通过实践找到一个简便方法。
    但是思路都是一样的:想办法把sga_target的值修改到正常阀值内,然后再启动数据库实例
按照这种思路:
1、我们完全可以先用pfile的配置参数启动数据库实例
2、通过pfile重建spfile文件(create spfile from pfile)
3、关闭数据库实例
4、正常启动数据库实例
 
具体的操作如下:
[oracle@redhat pfile]$ sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on Tue Oct 20 00:20:19 2009
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
SQL> conn /as sysdba
Connected to an idle instance.
SQL> startup pfile='/home/oracle/admin/zgz/pfile/init.ora.82220096537'
--“通过pfile文件启动oracle实例”
ORACLE instance started.
Total System Global Area  285212672 bytes
Fixed Size      1218968 bytes
Variable Size     88082024 bytes
Database Buffers   188743680 bytes
Redo Buffers      7168000 bytes
Database mounted.
Database opened.
SQL> create spfile from pfile='/home/oracle/admin/zgz/pfile/init.ora.82220096537';--“通过pfile重建spfile文件”
File created.
SQL> shutdown immediate  --"关闭数据库实例"
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup  --"通过spfile文件正常启动oracle实例"
ORACLE instance started.
Total System Global Area  285212672 bytes
Fixed Size      1218968 bytes
Variable Size     88082024 bytes
Database Buffers   188743680 bytes
Redo Buffers      7168000 bytes
Database mounted.
Database opened.
SQL>
 
 
瞧!和上次的方法比起来是不是很简便,完全在命令行下就可以完成。
学习就是这样,同样一个问题,要不断掌握更简便的方法,才是进步!
 
但是在具体的解决过程中,当我用shutdown immediate来关闭数据库时,系统突然报以下错误:ORA-03113: end-of-file on communication channel
以前没有遇到过,在网上搜了搜,造成这个错误的原因有很多,大部分是网络连接不好造成的,结果我关掉现在的SSH窗口,重新建立一个SSH连接,问题解决。
阅读(3649) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

wuhanligong1102014-04-28 19:43:50

十分感谢,方法有效,特地注册此号表示谢意