彻底搞清楚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开始提供分析函数,分析
本地管理表空间(LMT)
序言 在Oracle 8i以前,Oracle使用字典管理表空间(Dictionary Managed Tablespace),对于使用数据字典来管理区的表空间,每当分配或回收区时Oracle 服务器将更新数据字典中的相应表,这是表空间缺省的空间管理方法。在Oracle 8.0 版和更早版本内这是唯一可用的方法。[@more@]序言 在Oracle 8i以前,Oracle使用字典管理表空间(Dictionary Managed Tablespace),对于使用数据字典来管理区的表空间,每当分配或回收区时Oracle 服务器将更新数据字典中的相应表,这是表空间缺省的空间管理方法。在Oracle 8.0 版和更早版本内这是唯一可用的方法
Oracle 9i 透明网关(Transparent Gateway)连接SQL Server配置指南(转载)
、硬件及软件环境1、 系统1: Windows2000 Server + Oracle8.17 + Oracle 9i透明网关2、 系统2: Windows2000 Server + SQL Server 20003、 系统3: Windows2000 Server + SQL Server2000[@more@]一、硬件及软件环境1、 系统1: Windows2000 Server + Oracle8.17 + Oracle 9i透明网关2、 系统2: Windows2000 Server + SQL Server 20003、 系统3: Windows2000 Server + SQL Server2000二、数据库环境系统1含Oracle 8i数据库及Oracle9i 透明网关,IP: 10.89.54.152 系统2 目标数据库是pda, IP :10.89.54.162系统3 目标数据库是ems ,
oracle9i透明网关技术(for sql server)
不同数据库平台的互连一般称之为数据库的异构服务,现在各大数据库之间都可以实现这样的异构互连,只是各厂商的具体实现技术不一样,如:在SQL SERVER里面叫做LINKED SERVER,通过ODBC实现与其它数据库的互联。 而ORACLE实现异构服务的技术叫做透明网关(Transparent Gateway),当然之前ORACLE还采用过通用连接技术。目前ORACLE利用透明网关可以实现和SQL SERVER、SYBASE、DB2等多种数据库的互联。[@more@]与SQL Server的互连 不同数据库平台的互连一般称之为数据库的异构服务,现在各大数据库之间都可以
ORACLE SEQUENCE的简单介绍
在oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按序列号排序的地方。 [@more@]在oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按序列号排序的地方。 1、Create Sequence 你首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限, CREATE SEQUENCE emp_sequence INCREMENT BY 1 -- 每次加几个 START WITH 1 -- 从1开始计数 NOMAXVALUE -- 不设置最大值 NOCYCLE -- 一直累加,不循环 CACHE 10; 一旦定义了emp_sequence,你就可以用CURRVAL,NEXTVAL CURRV
sql语句的编程手册
SQL命令 以下17个是作为语句开头的关键字: alter drop revoke audit grant rollback* commit* insert select comment lock update create noaudit validate delete rename 这些命令必须以“;”结尾 带*命令句尾不必加分号,并且不存入SQL缓存区。 [@more@]sql语句的编程手册 SQL PLUS基础命令一、SQL PLUS 1 引言 SQL命令 以下17个是作为语句开头的关键字: alter drop revoke audit grant rollback* commit* insert select comment lock update create noaudit validate delete rename 这些命令必须以“;”结尾 带*命令句尾不必加分号,
ORACLE回滚段学习
使回滚段离线 为了达到以下两个目的将要回滚段离线: 1.阻止新的事务使用该回滚段; 2.该回滚段必须删除。 [@more@]创建回滚段 语法: CREATE [PUBLIC] ROLLBACK SEGMENT rollback_segment [TABLESPACE tablespace] [STORAGE ([INITIAL integer[K|M]] [NEXT integer[K|M]] [MINEXTENTS integer] [MAXTENTS {integer|UNLIMITED}] [OPTIMAL {integer[K|M]|NULL}]) ] 注: 回滚段可以在创建时指明PRIVATE或PUBLIC,一旦创建
ORACLE DSI
什么是DSI?.就把这做为第一个题目.DSI是Data Server Internals的缩写,是Oracle公司内部用来培训Oracle售后工程师使用的教材.这样的文档上通常都印着:Oracle Confidential:For internal Use Only.[@more@]什么是DSI?.就把这做为第一个题目.DSI是Data Server Internals的缩写,是Oracle公司内部用来培训Oracle售后工程师使用的教材.这样的文档上通常都印着:Oracle Confidential:For internal Use Only.所以传播这类文档通常是为Oracle所禁止的,但是因为一些特殊的原因,这些文档在民间也多有流传.你可以从Google找到一些相关信息.但是关于任何
ORACLE EVENTS
EventsIntroductionEnabling EventsListing All EventsListing Enabled EventsEvent Reference[@more@]EventsIntroductionEnabling EventsListing All EventsListing Enabled EventsEvent ReferenceIntroductionThere are four types of numeric events Immediate dumps Conditional dumps Trace dumps Events that change database behaviour Every event has a number which is in the Oracle error message range e.g. event 10046 is ORA-10046 Each event has one or more levels which can be range e.g. 1 to 10 bitmask e.g. 0x01