eygle.com   eygle.com
eygle.com  
 

« June 22, 2006 | Blog首页 | June 26, 2006 »



June 23, 2006

Oracle Diagnostics:又见ORA-04031

作者:eygle

出处:http://blog.eygle.com

今天,一个朋友的数据库出现问题,连接上去一看,原来又是ORA-04031:

[oracle@statdata bdump]$ sqlplus "/ as sysdba"

SQL*Plus: Release 8.1.7.0.0 - Production on 星期五 6月 23 11:04:31 2006

(c) Copyright 2000 Oracle Corporation. All rights reserved.

ERROR:
ORA-00604: error occurred at recursive SQL level 2
ORA-04031: unable to allocate 4200 bytes of shared memory ("shared
pool","TRIGGER$","sga heap","state objects")

sql*plus无法连接,想了一下才记起,还有svrmgrl可以用:

[oracle@statdata dbs]$ svrmgrl

Oracle Server Manager Release 3.1.7.0.0 - Production

Copyright (c) 1997, 1999, Oracle Corporation. All Rights Reserved.

Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production
With the Partitioning option
JServer Release 8.1.7.0.0 - Production

SVRMGR> connect internal
Connected.
SVRMGR> shutdown immediate;
ORA-00604: error occurred at recursive SQL level 1
ORA-04031: unable to allocate 4200 bytes of shared memory ("shared

pool","DATABASE","sga heap","state objects")

在Oracle8.1.7.0.0中,ORA-04031的问题是由来已久的,使用svrmgrl也不能执行shutdown immediate了.只能通过shutdown abort关闭数据库后重起.

SVRMGR> connect internal
Connected.
SVRMGR> shutdown abort;
ORACLE instance shut down.

进一步检查发现这个数据库处于初始态运行,共享池设置的只有30M,过小的共享池设置也是导致ORA-04031的原因之一:

shared_pool_size = 31457280
db_block_buffers = 2048

对这两个参数进行了放大调整,主机毕竟有4G内存,调整后,ORA-04031错误应该会少很多了.

数据库关闭后,共享内存并未及时释放:

SVRMGR> connect internal
Connected.
SVRMGR> shutdown abort;
ORACLE instance shut down.
SVRMGR> exit
Server Manager complete.
[oracle@statdata dbs]$ ipcs -sa

------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x00000000 2293760 oracle 640 77824 1 dest
0x00000000 2326529 oracle 640 17825792 1 dest
0x00000000 2359298 oracle 640 17825792 1 dest
0x00000000 2392067 oracle 640 20971520 1 dest
0x00000000 2424836 oracle 640 16961536 1 dest

------ Semaphore Arrays --------
key semid owner perms nsems

------ Message Queues --------
key msqid owner perms used-bytes messages

杀掉残余的Oracle进程后,共享内存释放:

[oracle@statdata dbs]$ ps -ef|grep ora
oracle 4159 1 0 May11 ? 00:17:20

/export/home/oracle/product/8.1.7/bin/tnslsnr LISTENER -inherit
oracle 7663 7651 0 10:47 ? 00:00:00 [sshd]
oracle 7664 7663 0 10:47 pts/1 00:00:00 -bash
oracle 7730 7664 0 10:48 pts/1 00:00:00 svrmgrl
oracle 7731 7730 0 10:48 ? 00:00:00 oracleora8 (DESCRIPTION=(LOCAL=YES)

(ADDRESS=(PROTOCOL=beq)))
oracle 8344 8342 0 11:03 ? 00:00:00 [sshd]
oracle 8345 8344 0 11:03 pts/2 00:00:00 -bash
oracle 9094 1 0 11:19 ? 00:00:00 oracleora8 (LOCAL=NO)
oracle 9101 8345 0 11:19 pts/2 00:00:00 ps -ef
oracle 9102 8345 0 11:19 pts/2 00:00:00 grep ora
[oracle@statdata dbs]$ kill -9 9094
[oracle@statdata dbs]$ ps -ef|grep ora
oracle 4159 1 0 May11 ? 00:17:20

/export/home/oracle/product/8.1.7/bin/tnslsnr LISTENER -inherit
oracle 7663 7651 0 10:47 ? 00:00:00 [sshd]
oracle 7664 7663 0 10:47 pts/1 00:00:00 -bash
oracle 7730 7664 0 10:48 pts/1 00:00:00 svrmgrl
oracle 8344 8342 0 11:03 ? 00:00:00 [sshd]
oracle 8345 8344 0 11:03 pts/2 00:00:00 -bash
oracle 9113 8345 0 11:19 pts/2 00:00:00 ps -ef
oracle 9114 8345 0 11:19 pts/2 00:00:00 grep ora
[oracle@statdata dbs]$ ipcs -sa

------ Shared Memory Segments --------
key shmid owner perms bytes nattch status

------ Semaphore Arrays --------
key semid owner perms nsems

------ Message Queues --------
key msqid owner perms used-bytes messages

[oracle@statdata dbs]$ svrmgrl

Oracle Server Manager Release 3.1.7.0.0 - Production

Copyright (c) 1997, 1999, Oracle Corporation. All Rights Reserved.

Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production
With the Partitioning option
JServer Release 8.1.7.0.0 - Production

SVRMGR> connect internal
Connected.
SVRMGR> startup
ORACLE instance started.
Total System Global Area 767996064 bytes
Fixed Size 73888 bytes
Variable Size 243462144 bytes
Database Buffers 524288000 bytes
Redo Buffers 172032 bytes
Database mounted.
Database opened.

此时数据库可以成功启动.

 

Posted by eygle at 3:53 PM | Comments (0)


陌上花开,可缓缓归矣

作者:eygle

出处:http://blog.eygle.com

今天,是小惠惠在公司工作的最后一天,在来北京的一年之后,她选择回到杭州,回到家乡,和亲爱的人在一起.虽然所有朋友都支持她的这个决定,但是在离去是总会有些不舍.而且,我失去了我的一个DBA.

希望她在新的工作岗位上,能够一帆风顺,不断进步.能够在Biti大师的言传身教之下,成为一个更出色的DBA.

引用一下她自己的总结:

来北京1年。工作4年。上大学以来8年。
流年似水,指间悄悄淌过。
我唯一的愿望,我愿我
保持一双清澈的眼睛。

祝愿小惠惠能够永远"保持一双清澈的眼睛".

 

Posted by eygle at 3:23 PM | Comments (0)


《深入浅出Oracle》内容简介

作者:eygle

出处:http://blog.eygle.com

《深入浅出Oracle-DBA入门、进阶与诊断案例》一书已经列入ITPUB技术丛书第三册,即将由人民邮电出版社出版,以下是本书的内容介绍:

本书分为9章,具体结构划分如下:

第一章:数据库的启动和关闭,从基础入手,讲解Oracle数据库的启动和关闭,并深入探讨数据库启动关闭的核心本质及内部处理。
第二章:参数及参数文件,这一部分从Oracle启动必需的参数文件入手,讲解重要参数、参数文件对于Oracle的作用,并结合RAC环境,Oracle10g环境介绍参数文件等的不断改进和变迁。
第三章:数据字典,深入到数据库的核心,全面了解数据字典的机制和重要性。
第四章:内存管理,Oracle的内存管理非常重要,本章就SGA、PGA的管理进行探讨,并深入介绍Oracle内存管理技术在Oracle8i/9i/10g不同版本中的变迁。
第五章:Buffer Cache与Shared Pool原理,本章深入介绍了Buffer Cache和Shared Pool的原理,并涉及闩锁和热点块等深入话题。
第六章:重做,重做机制是Oracle恢复的保障,本章针对Oracle的重做机制进行探讨,并涉及重做的内部原理及工作机制。
第七章:回滚与撤销,回滚和事务密切相关,本章从基础出发,介绍Oracle的回滚机制,进而深入研究和探讨回滚机制的内部操作及ORA-01555错误等相关知识。
第八章:等待事件,等待事件在数据库性能诊断中起着极为重要的作用,在不同版本中,Oracle一直在不断加强等待事件的功能,本章从等待事件入手,进一步讲解数据库性能诊断和优化知识。
第九章:性能诊断与SQL优化,这一章是实践的总结,通过一些实践的案例,介绍一种思路和方法给大家,解决问题是学习的最终目的。

关于本书:

根据Gartner公司的最新统计数据,在2005年,Oracle数据库以48.6%的市场占有率继续稳居关系数据库市场的首位,在过去这一年中,国内的Oracle从业市场和学习环境都有了很大的发展和进步,市场进一步规范和成熟,从事数据库管理工作的朋友们也越来越多。
为了让更多进入Oracle领域的朋友能够快速了解和掌握Oracle技术,让具备一定经验和积累的Oracle从业人员继续深入学习,作者倾力撰写了本书。
本书作者活跃于国内著名Oracle技术论坛ITPUB(www.itpub.net),并全力打造国内最具影响力的个人Oracle技术站点Eygle.com(www.eygle.com),本书从基础出发,逐层深入,并结合实际工作中的诊断案例进行全面讲解,力图从点到面,让读者对每个主题都有深入的了解和认识。
本书是ITPUB技术丛书的第三本,在《Oracle数据库DBA专题技术精粹》和《Oracle数据库性能优化》二书出版的2年多以来,ITPUB和 Oracle市场都有了长足的发展,希望本书的出现能为读者带来更深入的技术知识和更多的实践经验。

本书特点:

目前市场上的Oracle书籍普遍存在的问题是模式单一,要么只讲基础知识,要么侧重代码编程实例,要么针对具体的版本特性(Oracle8i/Oracle9i/Oracle10g等),要么缺少实践应用检验,很少能对Oracle相关知识进行全面深入讲解。

本书针对这些问题,从基础知识入手,再进行深入研究,结合性能调整、诊断案例实践,将Oracle知识全面、系统、深入的展现给读者;本书内容更涉及Oracle8i/Oracle9i/Oracle10g,将Oracle的版本变化,功能改进,一以贯之的展现出来,让大家看到这些变革的真正原因以及Oracle的不断技术创新,通过真实案例的学习,更可以加深大家对现实环境的了解,从而提高实践能力。

本书是作者多年实践工作的积累和总结,各篇章更从DBA的成长历程入手,引导大家快速进入并深入Oracle知识的国度。
本书继续贯彻了作者“由点到线再及面”的学习方法,既可以让初学者参考学习,又可以帮助具备一定基础的中级DBA进行进阶学习,不同层次的学习者都能从本书的不同内容中受益。

希望本书能够一如既往的得到大家的支持和喜爱.谢谢大家.

 

Posted by eygle at 3:19 PM | Comments (0)



CopyRight © 2004-2008 eygle.com, All rights reserved.