有关Oracle role的总结
oracle的role算是对sys privilege 和object privilege的打包。今天深入的测试了下,还算有不少的东西。role不是schema对象像table等在一个schema里面不能有同名的schema object,但是可以有同名的table和role,如下。SQL> conn test1/test1Connected.SQL> create role testrole;Role created.SQL> create table tes...
由db_cache_size引发的性能问题
测试环境有两个db, TEST01(10gR2),TEST02(11gR2)TEST02是基本上复用了TEST01的参数设置,但是TEST02却报了很多问题,比如查询性能低下。数据库连接不能很快的释放。今天无意中看到TEST02的sga大小,让我大吃一惊。àTEST01 SQL> show sga Total System Global Area 6442450944 bytes Fixed Size &nbs...
可更新的物化视图
快速刷新可更新的物化视图SQL> exec dbms_mview.refresh('MV_T','F');BEGIN dbms_mview.refresh('MV_T','F'); END;*ERROR at line 1:ORA-12034: materialized view log on "JEANRON"."T" younger than last refreshORA-06512: at "SYS.DBMS_SNAPSHOT", line 2255ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2461O...
listener.ora,tnsnames.ora中一个空格的威力
最近几天被网络监听配置搞得焦头烂额,有时候配置没问题,有时候就出莫名其妙的问题,今天专门花时间总结了一下,希望对大家有所帮助。listener.ora,tnsnames.ora有时候没有netca,netmgr这样的图形工具来创建的时候,只能手工来做,手工做的时候会有一些格式的问题,多加一个空格,或者一个空格,就会有不同的结果。案...
oracle坏块修复实例
最近几天发现库里有坏块了,环境是11gR2, linux平台的64位的库。以下是我的修复办法,基于dbms_repair做的在线修复,也可以基于备份rman来修复,archivelog,noarchive log可能修复的方式有所不同。-->首先从alert.log里面发现如下的错误。DDE: Problem Key 'ORA 1110' was flood controlled (0x1) (no incident)ORA-0111...
linux kernel引发的oracle问题及解决
最近测试环境的连接数老是不够用,session/process 都相应的从5000提到了8000,但还是不够,而且还是不断有新环境需要增加。最后根据评估,session数需要50000左右根据粗略的计算来说,process也需要调整,按照如下的公式.sessions=(1.1*process+5)把semmns做了大幅度的调整,从32000调到了70000> cat /proc/sys/kernel/...
索引列顺序导致的性能问题
今天和大家分享一个很有意思的例子,关于索引列的顺序导致的性能问题。发现数据库的性能比较差,CPU消耗很高,抓了一个awr,发现瓶颈在sql上,top 1的sql是一个很简单的update语句,没有复杂的条件和表关联。竟然导致CPU 99%抓了一个explain plan 的report和自己的理解,先简单说明一下表的情况。表,TEST_NOTIF_REQ_LOG, ...
RAC 单节点报ora-1105 ora-01606的解决
最近自己搭了一套 11g rac的环境,基于redhat 6, 11g 用了11.2.0.3.0的cluster和db的安装包。共享存储基于nfs,没有用asm.环境打完以后,crs_stat -t看到相应的服务都起了,但是第二个节点上的实例不知道怎么回事却没起来。手工尝试启动,报了如下的错误。SQL> startup mountORACLE instance started.Total System Glo...
关于segment的一个小问题
今天统计数据的时候,发现一个奇怪的小问题,通过segment去判断一个表的大小,然后查表的count,有一个表明明在,但是从segment里面去查的时候查不出来。SQL> select distinct segment_name,to_number(to_char(sum(bytes/1024/1024/1024))) from user_segmentswhere segment_name in (select table_name...
ORA-01461问题的对比测试
昨天生产环境有个严重问题,报了ora-01461的错误,这个问题看似应该是开发那边的问题,但dba这边也得提供一些信息,自己模拟测试了一把。为问题的排查也提供了一些帮助。这个问题可以使用一下场景来对比测试。--》场景 #1使用关键字values来插入。using key word “values” toinsert.SQL> Declare...
数据库突然宕机无法open的问题及解决
测试的数据库有一天突然宕机,然后无法正常open了,这个问题虽然过去了一段时间,也在这儿总结一把。从alert日志中的信息如下。Fri Jan 10 16:09:42 2014Archived Log entry 6837 added for thread 1 sequence 6863 ID 0x19db56aa dest 1:Fri Jan 10 16:12:59 2014Errors in file /oravl01/oracle/adm/FETABP2/diag/rd...
DBMS_STATS收集统计信息的问题及解决
收集数据库的统计信息是dba工作的一部分,如果在数据快速增长的库上,统计信息如果收集的频率太慢,会对执行计划有一定的影响。而对于逐渐客户饱和的系统来说,统计信息就可以很长时间收集或者尽量不收集。对于统计信息的收集,如果是很大的表,收集100%也是不现实的,如果收集的百分比太小,统计信息又失真,对系统系统...
手工创建/删除数据库的步骤
今天和大家分享下数据库的创建和删除的步骤,里面有很多细节需要大家考虑。创建数据库不只是一个create database语句。删除数据库 drop database也不是随时都能执行的。--创建数据库的步骤。1.用户,文件系统,挂载点和网络的配置,内核参数配置这个需要提前准备好。2.ORACLE_HOME的安装和PSUoracle_home的安装,这个...
探索ASH
老是在用ASH,昨天心血来潮,想看看ash视图里面是怎么样的,过程也算曲折,不过也算抛砖引玉。先看看v$active_session_history的情况。-->是个同义词SQL> select owner,object_name,object_type from dba_objects where object_name='V$ACTIVE_SESSION_HISTORY';OWNER &nb...
数据库突然宕机的问题及分析
昨天晚上,某个环境的数据库在做一个压力测试的时候突然宕机了。这个问题比较急。马上查看日志文件。看到了如下的一段,报了os级的linux错误。提示没有空间了。Fri Mar 14 19:16:47 2014Archived Log entry 192 added for thread 1 sequence 192 ID 0x1ed7a02c dest 1:Fri Mar 14 19:39:24 2014Incremental checkpoin...
alert日志中出现ash size的警告
今天查看数据库的alert日志总出现了如下的警告。Archived Log entry 202 added for thread 1 sequence 202 ID 0x1ed7a02c dest 1:Sat Mar 15 01:37:30 2014Completed checkpoint up to RBA [0xca.2.10], SCN: 267711453Sat Mar 15 01:44:58 2014Active Session History (ASH) performed an emergency flush. This may ...
探究AWR 第一篇
statspack相比算是比较通用,免费,可以在标准版,企业版中使用,awr算是statspack的一个升级版,而且代码不公开。但是实现的功能和数据的采集要更丰富。awr算是dba工作的必备工具。自己总结了一下,大概由以下几个方面来说明一下。1.snapshot的管理先来看看snapshot,这是列出近几天的snapshot,可以看出如果数据库重启...
ORACLE 11g导入9i dump的问题及解决
因为系统迁移,需要将一部分的9i的数据导入11g的库里,目标库是11.2.0.3.0 64位的环境。导入dump的时候,有一个比较大的分区表,需要用导入分区的方式,就写了如下的命令。但是奇怪的是过了一会,抛出来一个imp的错误就完事了。-bash-4.1$ imp n1/n1@testdb tables=TEST_DB:TEST_DB_PAR_P1  ...
excel文件内容导入数据库的问题及解决
今天需要导一些数据,从excel导入到数据库中。没有装现成的plsqldev,只能用sql*loader来弄了。首先我把excel文件的内容转换成csv文件,以逗号分隔,在另存外excel文件的时候有那个选项。然后我在目标库中创建了如下的表。create table sql_summary(sql_time varchar2(100),sql_id varchar2(100),cpu_time varchar2(1...
数据库文件的迁移
关于数据库中的文件迁移,需要考虑普通数据文件,redo日志文件(还需要考虑是否为current状态),undo表空间,临时表空间,system,sysaux表空间。文件迁移可以参考下面的伪代码:move_non_system_tablespace ,需要在open状态 {&nb...