不是ORACLE的问题
不是ORACLE的问题
2009-12-30 15:00
下午开发同事打来电话,”数据库不好使了”. 描述是一台新上的小型机IBM 570
上只跑ORACLE数据库,是新业务明天就要上线了。今天做测试,在测试期间连接数达到110多就连接不上了,已经连接上的也操作不了。
平台:IBM AIX 570
数据库:ORACLE9201
分析具体步骤:
首先远程连接到系统(可以使用多种工具 例如SecureCRT)
本安例中我使用系统自带工具 Telnet
既然说是ORACLE的问题,那我们就从数据库的角度去排查问题。
第一步 检查ORACLE 的告警日志(只要是数据库的重大操作或报错都会记录在这个日志中,所以首先要检查这个日志) 从最先发生问题的时间开始检查。发现并没有报错。如果是ORACLE参数方面限制 例如 PROCESSES这个参数有限制 ,如果是它影响的 一定会记录在ORACLE的告警日志中。可是现在这个日志文件并没有记录。说明不是这个参数引起的。
第二步 由于是连接不上数据库 从监听查起,这时的监听已经STOP 。找到监听日志所在目录。分析监听日志 listener.log 定位到15:00 最先发生问题的时间。
31-DEC-2009 15:01:33 * (CONNECT_DATA=(SID=*****)(CID=(PROGRAM=)(HOST=__jdbc__)(USER=))) * (ADDRESS=(PROTOCOL=tcp)(HOST=***********)(PORT=40707)) * establish * TNS-12500: TNS:listener failed to start a dedicated server process
TNS-12540: TNS:internal limit restriction exceeded
TNS-12560: TNS Protocol adapter error
TNS-00510: Internal limit restriction exceeded
IBM/AIX RISC System/6000 Error: 11: Resource temporarily unavailable
****有时你要坚信 自己的技术。这个很重要。在排错时。
根据提示应该是有限制。上面已经排除数据库参数的问题。应该是AIX系统参数限制
AIX操作系统参数maxuproc
执行相应的检查,发现该参数的值不够大:
$ lsattr -El sys0|grep maxuproc
相关文档:
在Oracle中:
双引号的作用是:如果创建对象的时候,对象名、字段名加双引号,则表示Oracle将严格区分大小写,否则Oracl都默认大写。
而单引号则表示:这个加了单引号的字段是一个字类似字符串,并不区分大小写。
单引号用于标识字符与数字的区别
当指定字符串文本时,必须用单引号将字符串文本引住。
......
ORACLE SQL性能优化
ORACLE SQL性能优化系列 (一)
1. 选用适合的ORACLE优化器
ORACLE的优化器共有3种:
a. RULE (基于规则) b. COST (基于成本) c. CHOOSE (选择性)
设置缺省的优化器,可以通过对init.ora文件中OPTIMIZER_MODE参数的各种声明,如RULE,COST,CHOOSE,ALL_ROWS,FIRST_ROWS . 你当然也在SQ ......
每个Oracle用户都有一个名字和口令,并拥有一些由其创建的表、视图和其他资源。Oracle角色(role)就是一组权限(privilege)(或者是每个用户根据其状态和条件所需的访问类型)。用户可以给角色授予或赋予指定的权限,然后将角色赋给相应的用户。一个用户也可以直接给其他用户授权。
数据库系统权限(Dat ......
平时用的比较多的,就是NVL,没怎么在意其他几个。
NVL 就不用说了,就是判断第一个是否为NULL,是就用第二个代替,不是就返回第一个。
NVL2 也是判断第一个是否为NULL,但是返回值却不同。第一个为NULL,就返回第三个,否则返回第二个。
NULLIF 判断两个参数是否相等,相等返回NULL,否则返回第一个参数。
COALESCE 这 ......