AIX下开启大页的方法
目前负责的生产交易系统内存预估会比较大,系统上线前有必要对开启/关闭 AIX大页情况下做下性能比对。开启大页一般有下面几种情形:1)数据库内存较大,因此页...
IBM小机+ORACLE数据库迅猛提升事物数TPS的方法总结
IBM小机+ORACLE数据库迅猛提升事物数TPS的方法总结:近期一直在搞业务压测,提升系统的事务处理能力。事务处理量从刚开始的三千到如今的接近一万,也积累了一些优化方法,分享给各...
AIX虚拟内存管理机制(转)
AIX采用了基于分页的虚拟内存机制。页面一般都是统一大小的(默认页面大小4k,当然也可以启用大页面内存支持,POWER5 芯片支持四种虚拟内存页面的大小:4KB、64KB、16MB 和 16GB),这样可以简化整个的管理算法。页面...
Oracle Dba必须了解的Read By Other Session等待:
Oracle Dba必须了解的Read By Other Session等待:微博里写了篇关于Buffer Busy Waits等待,这里再介绍一种跟它很相像的一个等待Read By Other Session,这个等待在10G前就是Buffer Busy Waits等待的一种情况,10G后...
查看正在运行的存储过程
[i=s] 本帖最后由 wei-xh 于 2012-7-28 20:43 编辑 最近项目一直在对表增加字段,很多失效对象需要编译,经常发现由于过程正在运行因此导致编译的会话HANG在那,直到过程运行结束。如果能有一个手段告诉我数据库里有...
构造一致性CR块读,ORACLE需要做的工作:
构造一致性读,ORACLE需要做的工作:1)克隆这个块到另一个buffer,克隆的块跟之前的current块在一个HASH CHAIN上。我们后面的四个步骤,就是发生在新克隆的块上的。2)如果这个块上存在 延迟块清除或者快速块清除,...
Oracle Dba必须了解的buffer busy waits等待
Buffer Busy Waits是怎么产生的?作为一个Oracle Dba,如果你从未遇到过Buffer Busy Waits等待,那么你算不上一个真正的Oracle Dba。Buffer Busy Waits是Oracle 数据库非常常见的一个等待,特别是在并发写比较频繁的...
Oracle 什么时候select会产生redo?
什么情况下select会产生redo ?1`)快速块清除或者叫commit cleanout。事务提交的时候,oracle针对内存里的块 1)把数据块ITL ENTRY里flag的标记为U 2)设置commit scn在Scn/Fsc列。有了两个标记就可以告诉全...
删除主键,唯一约束,什么时候会自动删除列上的索引?
你可能经常会有这样的顾虑,在删除唯一约束或者主键约束的时候,附带的索引会不会被删除掉?现在的团队有一个规范,但凡是增加主键,都需要先手工创建索引,再增加主键。给出的原因是:这样删除主键的时候,索引就不...
PL/SQL 事务持久化异常 / PL/SQL commit优化
传统情况下,当用户发出commit后,用户会话会等待log file sync直到lgwr写完成。LGWR写完成后,通知处于等待log file sync的会话继续处理后面的操作。这个机制保障了事务的持久性,满足了事务ACID的D。...
checkpoint queue和lruw链表在功能上的差异
以前一直存在的一个疑问:为什么Oracle要搞出两个脏列表:一个Checkpoint Queue,一个Lruw现在可以给出一个阶段性的回答:两个链表设计的目的是不一样的,Checkpoint Queue按照数据块第一次被修改的先后时间...
Oracle实例恢复的时候所采用的 two-phase recovery/two pass recovery
读Oracle Core第六章的时候,Lewis提到了Oracle做实例恢复时候的two-phase recovery,其实就是需要读取两遍日志:Lewis描述的two-phase recovery过程:第一次读日志,读取的起点是从控制文件里获得,因为增量检查...
为什么我的归档文件比我设定的在线日志的大小要小?
为什么我的归档文件比我设定的在线日志的大小要小?有几种可能的原因:1) 你用命令手工切换了2) 你设定了archive_lag_target参数,导致定期触发的切换3) 10G后,Oracle的新特性,private r...
Log File Sync等待的背后
Log File Sync:当看到log file sync等待时候,狠多人会有这样的担心,我的数据库正在等待写日志,是不是写入的效率存在问题。这样的担心,也就是把前台的等待log file sync都归因于后台log file parallel write的写...
修改一个数据块Oracle需要做的工作
修改一个数据块Oracle需要做的工作(从写的角度做的描述,latch等其他角度没做描述):1)修改Undo段头块登记一个事务,标记事务开始2)产生步骤一的Redo Log3)真正修改数据块前,先把旧镜像记录在UNDO块用来做回...
ORACLE的日志浪费是怎么产生的?
为什么ORACLE写日志存在浪费?ORACLE有项统计信息是用来统计redo wastage的,可以从session和database级别来统计。那么为什么会有日志浪费呢?日志浪费指的是什么呢?磁盘的扇区大小一般为512字节,绝非巧合ORACL...
ORACLE的Group Commit
什么是ORACLE 的 Group Commit?下图上部分是ORACLE的LOG BUFFER,展示的一副繁忙的景象,C1发出提交操作后,通过LGWR去写,LGWR在真正开始接受到这个write message后,首先要获取redo write latch,修改写...
从PGA 拷贝LOG 到LOG BUFFE,从LOG BUFFER拷贝到LOG FILE的过程:
从PGA 拷贝LOG 到LOG BUFFE,从LOG BUFFER拷贝到LOG FILE的过程:1)获取redo copy latch,这个latch一般有2*cpu_count个,ORACLE会轮流的以immediate mode去获得,如果他们都是busy的,那么以willing-to-w...
通过BBED的COPY来覆盖表里现有的数据块
[i=s] 本帖最后由 wei-xh 于 2012-5-12 13:44 编辑 #通过BBED的COPY来覆盖表里现有的数据块#修改完成后,需要修改RDBA。#数据库版本10.2.0.41.创建测试表空间、测试表,表空间的段管理方式为ASSM。2.查看表都占用了...
通过修改SCN来骗过ORACLE启动验证
实验过程的整理,还没有添加解释说明,后面有时间再整理。 sys>create tablespace users datafile '/data1/oracle/crmd/users01.dbf' size 20m;Tablespace created.sys>shutdown immediateDatab...