了解X$KSMSP视图
Shared Pool的空间分配和使用情况,可以通过一个内部视图来观察,这个视图就是X$KSMSP([K]ernal [S]torage [M]emory Management [S]GA Hea[P]),其中每一行都代表着Shared Pool中的一个Chunk。以下是X$KSMSP的结构:这里需要关注一下以下几个字段。从以上引用的trace文件中,摘出开头一段,可以清楚地看到Oracl...
ASM管理命令行三工具:KFOD、KFED和AMDU
ASM(Automatic Storage Management)是Oracle目前主推的软集群存储策略。一般而言,管理ASM的工具包括使用sqlplus命令行、ASMCA图形化界面。此外,ASM Disk的配置和创建,可以通过oracleasm程序命令行进行配置。进入11g之后,集群件GI的crsctl和srvctl也可以提供ASM实例Instance和Dsik Group级别的修改。一般情况下...
SMON的功能并不止于此
SMON功能(一):清理临时段SMON功能(二):合并空闲区间SMON功能(三):清理obj$基表SMON功能(四):维护col_usage$字典基表SMON功能(五):Recover Dead transactionSMON功能(六):Instance RecoverySMON功能(七):清理IND$字典基表SMON功能(八):Transaction RecoverSMON功能(九):维护MON_MODS$字典基表SMON功能(十):维护SM...
SMON功能(十二):Shrink UNDO(rollback) SEGMENT
当另一个回滚段的transaction table急需undo空间时当SMON定期执行undo/rollback管理时(每12个小时一次):SMON会从空闲的undo segment中回收undo space,以便保证其他tranaction table需要空间时可用。另一个好处是undo datafile的身材不会急速膨胀导致用户要去resize...
SMON功能(十一):OFFLINE UNDO SEGMENT
最主要的目的是减轻高并发事务环境中对UDNO SPACE撤销空间使用的压力。触发场景在10g之前的9i中每12个小时SMON会根据V$UNDOSTAT中记录来决定在现有基础上要OFFLINE多少个UNDO SEGMENT,又要保留多少个UNDO SEGMENT; 在9i中被OFFLINED UNDO SEGMENT 还会被SMON DROP掉,以进一步回收空间。具体保留...
SMON功能(十):维护SMON_SCN_TIME字典基表
SMON_SCN_TIME基表用于记录过去时间段中SCN(system change number)与具体的时间戳(timestamp)之间的映射关系,因为是采样记录这种映射关系,所以SMON_SCN_TIME可以较为较为粗糙地(不精确地)定位某个SCN的时间信息。实际的SMON_SCN_TIME是一张cluster table簇表。 在版本10g中SMON_SCN_TIME...
SMON功能(九):维护MON_MODS$字典基表
Rem DML monitoringcreate table mon_mods$( obj# number, /* object number */ inserts number, /* approx. number of inserts since last analyze */ updates number, /* approx. number of updates since last analyze */ deletes ...
SMON功能(八):Transaction Recover
SMON: enabling cache recoveryArchived Log entry 87 added for thread 1 sequence 58 ID 0xa044e7d dest 1:[15190] Successfully onlined Undo Tablespace 2.Undo initialization finished serial:0 start:421305354 end:421305534 diff:180 (1 seconds)Verifying file header compatibility for 11g tablespace encr...
SMON功能(七):清理IND$字典基表
触发场景SQL> create index macleans_index on larges(owner,object_name) online;SQL> select obj# from obj$ where name='MACLEANS_INDEX'; OBJ#---------- 1343842SQL> select FLAGS from ind$ where obj#=1343842; FLAGS---------- 256ind_online$字典基表记录了索引在线创建/重建...
SMON功能(六):Instance Recovery
现象整个Reconfiuration的过程如下图: 注意以上Crash Detected时数据库进入部分可用(Partial Availability)状态,从Freeze Lockdb开始None Availability,到IR applies redo即前滚时转换为Partial Availability,待前滚完成后会实施回滚,但是此时数据库已经进入完全可用(Full Availability)状态了,如下图:...
SMON功能(五):Recover Dead transaction
我们来具体了解dead transaction的恢复过程:以上SMON回滚清理Dead transaction的过程从”system monitor process posted”开始到”Dead transaction 0x00c2.008.0000006d recovered by SMON”结束。另外可以看到在恢复过程中SMON先后请求了’latch: row cache objects’、’latch: undo global data’、’latch: obje...
SMON功能(四):维护col_usage$字典基表
最早在9i中引入了col_usage$字典基表,其目的在于监控column在SQL语句作为predicate的情况,col_usage$的出现完善了CBO中柱状图自动收集的机制。在10g中我们默认使用’FOR ALL COLUMNS SIZE AUTO’的柱状图收集模式,而在9i中默认是’SIZE 1’即默认不收集柱状图,这导致许多9i中正常运行的应用程序在10g中CBO执行计...
SMON功能(三):清理obj$基表
OBJ$字典基表是Oracle Bootstarp启动自举的重要对象之一: OBJ$基表是一张低级数据字典表,该表几乎对库中的每个对象(表、索引、包、视图等)都包含有一行记录。很多情况下,这些条目所代表的对象是不存在的对象(non-existent),引起这种现象的一种可能的原因是对象本身已经被从数据库中删除了,但是对象条目...
SMON功能(二):合并空闲区间
触发场景现象SELECT COUNT(*) FROM DBA_FREE_SPACE;如何禁止SMON合并空闲区间10269, 00000, "Don't do coalesces of free space in SMON"// *Cause: setting this event prevents SMON from doing free space coalescesalter system set events '10269 trace name context forever, level 10';...
SMON功能(一):清理临时段
曾几何时对SMON功能的了解程度可以作为评判一位DBA理论知识的重要因素,至今仍有很多公司在DBA面试中会问到SMON有哪些功能这样的问题。首先这是一道开放式的题目,并不会奢求面试者能够打全(答全几乎是不可能的,即便是在你阅读本篇文章之后),答出多少可以作为知识广度的评判依据(如果面试人特意为这题准备过,那么也很...
10g数据库实例使用11g asm错误问题处理
在Oracle11.2 RAC 的ASM 实例上创建10g 数据库时,报错说:不能连接到Cluster Manager ,不能定位到ASM 实例。具体错误信息如下:ORA-15077: could not locate ASM instance serving a required diskgroupORA-29701: unable to connect to Cluster Manager我的目标...
Index Range Scan成本与10053
biSQL> create table irs pctfree 80 tablespace users as 2 select rownum id,a.* from all_objects a;SQL> alter table irs add constraint irs_id_pk primary key(id); SQL> create index irs_owner_idx on...
分区表中全局及本地分区索引什么时候会失效及处理
分区表中 local 索引的维护会在oracle 操作表分区的时候自动进行,需要注意的是global 索引,当global索引所在表执行alter table 涉及下列操作时,会导至该索引失效,需要重新建立:? ADD PARTITION | SUBPARTITION? COALESCE PARTITION | SUBPARTITION? DROP PARTITION | SUBPARTITION? EXCHANGE PARTITION ...
关于DB TIME
从Oracle 10g开始,Oracle数据库开始进入性能度量收集、自诊断、智能调整阶段。应该说,就数据库本质特性而言,9i奠定了基础结构,之后一直到11g,Oracle的体系结构就没有发生本质性的变化。各种Oracle10g新特性中,笔者认为比较吸引人的特性是ASMM和AWR基础信息库。ASMM(Automatic Shared Memory Managment)让...
Oracle 11g 新特性 – HM(Hang Manager)简介
在这篇文章中我们会对Oracle 11g 新特性—hang 管理器(Hang Manager) 进行介绍。我们需要说明,HM 只在RAC 数据库中存在。在我们诊断数据库问题的时候,经常会遇到一些数据库/进程 hang住的问题。对于hang的问题,一般来说,常见的原因有以下两种。死锁(cycle)。对于这种hang, 除非循环被打破,问题会永远...