ORACLE诊断事件
一、Event的通常格式及分类 1、 通常格式如下: EVENT="<事件名称><动作><跟踪项目><范围限定>" 2、 Event分类 诊断事件大体上可以分为四类: a. 转储类事件:它们主要用于转储Oracle的一些结构,例如转储一下控制文件、数据文件头等内容。 b. 捕捉类事件:它们用于捕捉一些Error事件的发生,例如捕捉一下ORA-04031发生时一些Rdbms信息,以判断是Bug还是其它原因引起的这方面的问题。 c. 改变执行途径类事件:它们用于改主一些Oracle内部代码的执行途径,例如设置1026
Latch free等待事件(四)
尽量减每个块中的记录数。首先需要dump一些数据块来分析现在每个块中的记录数。Dump出来的跟踪文件中,nrow就是块中的记录总数。然后exp表,再truncate表,在表中插入你想要在每个块中保存的条数的记录,然后使用alter table table_name minimize records_per_block,再truncate表,最后imp回数据即可。 n 可以考虑减少块的大小。从oracle9i开始,数据库可以支持不同的块大小。例如当前块大小为16k,你可以将表及其索引移动块大小为8k的表空间中。这也会对全表扫描造成负面影响。并且,多个块大小也会使得管理更复杂。[@more@]尽量减每个块
Latch free等待事件(三)
Oracle 10g 操作系统solaris Db_cache_size32m64m128m256m512m1024m2048m_ksmg_granule_size4m4m4m4m4m16m16m_db_block_buffers39767952159043180863616127232254464_db_block_hash_buckets8192163843276865536131072262144524288_db_block_hash_latches1024102410241024102410242048Oracle9i 操作系统solaris[@more@]Oracle 10g 操作系统solaris Db_cache_size32m64m128m256m512m1024m2048m_ksmg_granule_size4m4m4m4m4m16m16m_db_block_buffers39767952159043180863616127232254464_db_block_hash_buckets81921638432768655361310722621
Latch free等待事件(一)
Latch free等待事件的三个参数:p1-latch的地址;p2-latch编号;p3-请求次数。从oracle10g起,latch free不再包含所有的latch等待,有些latch等待可能表现为单独的等待事件,这个后面有提到一些这样的等待事件,一般情况下我们还是统称为latch free等待事件。在处理latch free等待事件时,需要注意以下几点:[@more@]Latch free等待事件的三个参数:p1-latch的地址;p2-latch编号;p3-请求次数。从oracle10g起,latch free不再包含所有的latch等待,有些latch等待可能表现为单独的等待事件,这个后面有提到一些这样的等待事件,一般
Oracle常见等待事件
Oracle的等待事件是衡量Oracle运行状况的重要依据及指标。等待事件的概念是在Oracle7.0.1.2中引入的,大致有100个等待事件。在Oracle 8.0中这个数目增加到了大约150个,在Oracle8i中大约有200个事件,在Oracle9i中大约有360个等待事件。主要有两种类别的等待事件,即空闲(idle)等待事件和非空闲(non-idle)等待事件。[@more@]Oracle的等待事件是衡量Oracle运行状况的重要依据及指标。等待事件的概念是在Oracle7.0.1.2中引入的,大致有100个等待事件。在Oracle 8.0中这个数目增加到了大约150个,在Oracle8i中大约有200个事件,在Oracle9i中大约
Oracle数据类型简介
一、概述 在ORACLE8中定义了:标量(SCALAR)、复合(COMPOSITE)、引用(REFERENCE)和LOB四种数据类型,下面详细介绍它们的特性。[@more@]一、概述 在ORACLE8中定义了:标量(SCALAR)、复合(COMPOSITE)、引用(REFERENCE)和LOB四种数据类型,下面详细介绍它们的特性。 二、标量(SCALAR) 合法的标量类型与数据库的列所使用的类型相同,此外它还有一些扩展。它又分为七个组:数字、字符、行、日期、行标识、布尔和可信。 数字,它有三种基本类型--NUMBER、PLS_INTEGER和BINARY_INTENER。NUMBER可以描述整数或实数,而
在sqlplus中操作blob和clob
create directory utllobdir as 'd:'create table blobtest(col1 BLOB);create table clobtest(col1 cLOB);--insert BLOBdeclarea_blob BLOB;bfile_name BFILE := BFILENAME('UTLLOBDIR','teslob.doc');begininsert into blobtest values (empty_blob())returning col1 into a_blob;dbms_lob.fileopen(bfile_name);dbms_lob.loadfromfile(a_blob, bfile_name, dbms_lob.getlength(bfile_name));dbms_lob.fileclose(bfile_name);commit;end;[@more@]create directory utllobdir as 'd:'create table blobtest(col1 BLOB);create table clob
oracle创建分区表
在ORACLE里如果遇到特别大的表,可以使用分区的表来改变其应用程序的性能。 以system身份登陆数据库,查看 v$option视图,如果其中Partition为TRUE,则支持分区功能;否则不支持。Partition有基于范围、哈希、综和三种类型。我们用的比较多的是按范围分区的表。[@more@]在ORACLE里如果遇到特别大的表,可以使用分区的表来改变其应用程序的性能。 以system身份登陆数据库,查看 v$option视图,如果其中Partition为TRUE,则支持分区功能;否则不支持。Partition有基于范围、哈希、综和三种类型。我们用的比较多的是按范围分区的表。
彻底搞清楚library cache lock的成因和解决方法
问题描述:接到应用人员的报告,说是在任何对表CSNOZ629926699966的操作都会hang,包括desc CSNOZ629926699966,例如:ora9i@cs_dc02:/ora9i > sqlplus pubuser/pubuserSQL*Plus: Release 9.2.0.4.0 - Production on Mon Jan 10 10:11:06 2005Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.[@more@] 问题描述:接到应用人员的报告,说是在任何对表CSNOZ629926699966的操作都会hang,包括desc CSNOZ629926699966,例如:ora9i@cs_dc02:/ora9i > sqlplus pubuser/pubuserSQL*Plus: Release 9.2.0.4.0 - Productio
library cache pin和library cache lock
一、概述一个实例中的library cache包括了不同类型对象的描述,如:游标,索引,表,视图,过程,等等.这些对象不能在他们被使用的时候改变,他们在被使用的时候会被一种library locks and pins的机制锁住.一个会话中,需要使用一个对象,会在该对象上先得到一个library lock(null, shared or exclusive模式的)这是为了,防止其他会话也访问这个对象(例如:重编译一个包或视图的时候,会加上exclusive类型的锁)或更改对象的定义.总的来说,library cache pin和library cache lock都是用于share pool的并发控制的。pin和lock都可以看作是一种锁。locks/p
orcle性能调整
数据库的等待事件,发现前几名是: log file parallel write db file scattered read log file sync db file sequential read SQL*Net more data to client发现前面的4项都是影响到数据库性能的问题:[@more@]数据库的等待事件,发现前几名是: log file parallel write db file scattered read log file sync db file sequential read SQL*Net more data to client发现前面的4项都是影响到数据库性能的问题:log file sync:这个等待时间是指等待oracle的前台的commit和rollback操作进程完成,有时候这个等待时间也会包括等待LGWR进程把一
Oracle安装相关Linux参数
和Oracle安装有关的Linux参数[@more@]和Oracle安装有关的Linux参数设置的参数参数名字含义设置设置共享内存共享内存通过将通用的结构和数据放在共享内存段中,使得进程可以对它们进行访问。这是现有最快的进程间通信(IPC)方式 主要是因为数据在进程之间传递时没有涉及到内核的操作。在进程之间不需要复制数据。Oracle 将共享内存用于它的系统全局区 (SGA),这是一个由所有的 Oracle 备份进程及前台进程所共享的内存区域。为 SGA 分配足够的容量对于 Oracle 的性能非常重要,因为它负责保存数据库缓冲区高速缓存、共享 SQL、访问路径以及
Oracle9i的动态SGA特性
Oracle9i数据库在内部特性方面有着非常大的增强,其中一个最令Oracle DBA兴奋的莫过于可以动态设置全部的Oracle SGA控制参数。与8i不同的是,原来都将初始化参数放到一个文本文件中,并且在数据库启动的时候读取,Oracle9i却可以通过ALTER DATABASE和ALTER SYSTEM命令复位全部的Oracle参数。[@more@]Oracle9i数据库在内部特性方面有着非常大的增强,其中一个最令Oracle DBA兴奋的莫过于可以动态设置全部的Oracle SGA控制参数。与8i不同的是,原来都将初始化参数放到一个文本文件中,并且在数据库启动的时候读取,Oracle9i却可以通过ALTER
Oracle实时进程通讯
由于Oracle不提供用于实时输出消息的工具, Oracle数据库开发者总是要面临实时监视他们的储备过程执行的挑战。他们必须使用dbms_output.put_line调用,这个调用直到过程完成才返回结果。 在本文中,我想演示如何从Oracle8i数据库直接发送电子邮件,作为一种实时通信解决方案。这样我们要监视存储过程就不再需要等待它们完成了,这样的方法还为开发者提供了其他的一些好处:[@more@]由于Oracle不提供用于实时输出消息的工具, Oracle数据库开发者总是要面临实时监视他们的储备过程执行的挑战。他们必须使用dbms_output.put_line调用,这个
DBMS_BACKUP_RESTORE用于特殊情况下的恢复
DBMS_BACKUP_RESTORE.DBMS_BACKUP_RESTORE用于特殊情况下的恢复 一般如下:系统崩溃,rman使用控制文件,没有使用控制文件自动备份,现在仅有最后一次全备(备份中包括控制文件),以及其增量备份,规档备份.通常这种情况下不能使用常规RMAN来恢复,因为此全备份中备份的控制文件中没有包含本次的备份信息,rman使用控制文件备份的时候是先备份控制文件后备份其它信息[@more@]DBMS_BACKUP_RESTORE.DBMS_BACKUP_RESTORE用于特殊情况下的恢复 一般如下:系统崩溃,rman使用控制文件,没有使用控制文件自动备份,现在仅有最后一次全备(备份中包括控制文件
误删除dual表的解决办法
1 ) Error 980 during db open is causing the shut down of the database2 ) Need to create the Dual Table to resolve the issue (which was not possible in the mount stage)Workaround=========3 ) Set the following parameter in the init.orareplication_dependency_tracking = FALSE4 ) Startup the database5 ) Create the Dual Table and Dual Public SynonymCREATE TABLE "SYS"."DUAL"( "DUMMY" VARCHAR2(1)) PCTFREE 10 PCTUSED 4;Insert Into Dual Values ('X');Commit;Grant Select On Dua
Oracle9i自动分段空间管理改善分段存储
为了保持其最强大和最灵活数据库的地位,Oracle在最近发布的几个版本里一直都在创建新的机制来对表格和索引的存储进行简化和分块。从Oracle8i开始,Oracle开始在tablespace内部将对象管理进行自动化。第一个增强的地方原来叫做本地管理tablespace(或者简写作LMT)。在LMT里,Oracle将tablespace里的信息从数据字典的表格空间里移出去,而直接将其保存到tablespace自身里。这在Oracle9i里已经成为了一个事实的标准,因为它减轻了数据字典的负担。 表格空间的第二个主要增强的是自动分段空间管理(ASSM),它首次出现在Oracle9i里。有了ASS
LMT和DMT下存储参数的异同
假设当前数据库的DB_BLOCK_SIZE为D(K),建表的DDL设定了INITIAL为T,MINEXTENTS为S,PCTINCREASE为P,NEXT为N本文的DB_BLOCK_SIZE=8K[@more@]假设当前数据库的DB_BLOCK_SIZE为D(K),建表的DDL设定了INITIAL为T,MINEXTENTS为S,PCTINCREASE为P,NEXT为N本文的DB_BLOCK_SIZE=8K1、字典管理MIN_EXTENT:可以是大于0的任意整数PCT_INCREASE:INITIAL:,则如果建表时设定的INITIAL设定的值大于2*D,则实际INITIAL=CEIL(T/D)*D;如果建表时设定的INITIAL设定的值小于等于2*D,则实际INITIAL值为2*D。如:EXP-1create table test1(a number)tables
10g和9i执行计划差异
在oracle9i中执行计划如下分析:SQL> select ename,dname from emp, dept where emp.deptno=dept.deptno and dept.dname in ('ACCOUNTING','RESEARCH','SALES','OPERATIONS'); Execution Plan ---------------------------------------------------------- 0 SELECT STATEMENT Optimizer=CHOOSE 1 0 NESTED LOOPS 2 1 TABLE ACCESS (FULL) OF 'EMP' 3 1 TABLE ACCESS (BY INDEX ROWID) OF 'DEPT' 4 3 INDEX (UNIQUE SCAN) OF 'PK_DEPT' (UNIQUE)[@more@]在oracle9
ORACLE分析函数手册
Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是对于每个组返回多行,而聚合函数对于每个组只返回一行。下面例子中使用的表来自Oracle自带的HR用户下的表,如果没有安装该用户,可以在SYS用户下运行$ORACLE_HOME/demo/schema/human_resources/hr_main.sql来创建。少数几个例子需要访问SH用户下的表,如果没有安装该用户,可以在SYS用户下运行$ORACLE_HOME/demo/schema/sales_history/sh_main.sql来创建。如果未指明缺省是在HR用户下运行例子。 [@more@]Oracle从8.1.6开始提供分析函数,分析