ITPub博客

首页 > 数据库 > Oracle > 资源供给:并发性控制和锁之七

资源供给:并发性控制和锁之七

原创 Oracle 作者:sunsapollos 时间:2013-12-07 13:40:14 0 删除 编辑
简单案例说明: 某医院业务系统每个30分钟左右会出现一次短暂的卡壳,发现卡壳期间为CKPT等待CF Lock,具体原因由每半小时一次的rman调度引起。

     文件锁,比如CF,DF等等,这里对于性能影响比较大的主要是CF锁,由于CF锁引起的性能问题非常多见,在各行各业都会遇到。CF锁,作用在控制文件之上的队列锁,用来保护控制文件的修改串行化,并且保证在读期间的一致性。
     要避免CF锁导致的性能问题,我们只要看看controlfile的结构就知道CF锁在什么时候发生了。
    V$CONTROLFILE_RECORD_SECTION视图包含了控制文件的结构信息,所以下面信息发生变化或者阅读都需要加载CF lock。    
  • DATABASE

  • CKPT PROGRESS

  • REDO THREAD

  • REDO LOG

  • DATAFILE

  • FILENAME

  • TABLESPACE

  • TEMPORARY FILENAME

  • RMAN CONFIGURATION

  • LOG HISTORY

  • OFFLINE RANGE

  • ARCHIVED LOG

  • BACKUP SET

  • BACKUP PIECE

  • BACKUP DATAFILE

  • BACKUP REDOLOG

  • DATAFILE COPY

  • BACKUP CORRUPTION

  • COPY CORRUPTION

  • DELETED OBJECT

  • PROXY COPY

  • BACKUP SPFILE

  • DATABASE INCARNATION

  • FLASHBACK LOG

  • RECOVERY DESTINATION

  • INSTANCE SPACE RESERVATION

  • REMOVABLE RECOVERY FILES

  • RMAN STATUS

  • THREAD INSTANCE NAME MAPPING

  • MTTR

  • DATAFILE HISTORY


      显然最主要访问控制文件主要是一下操作:ckpt进程,lgwr进程,arch进程,rman备份操作,日志切换。我们在实践中发现的CF锁问题大部分也和这三个部分相关。
      ckpt的CF锁访问使不可控制的,rman备份操作和日志切换虽然可以适当调整,但是是业务需求决定的。
     
      controlfile的自动备份: 已经发生过多起controlfile自动备份到NFS出现业务系统挂起,建议不要自动备份到NFS之上。
      rman日志文件备份和删除:已经发生过多起调度日志文件备份和删除导致定期的短暂挂起,建议定期crosscheck以降低rman操作成本
      其他最典型的问题在于日志切换速度太快,在日志切换期间最容易出现CF lock问题。
     
     所有的CF锁问题都在于阻扰了ckpt工作,而ckpt如果拥有了其他业务所需要的锁定(lock and latch)不释放之后就会引起系统由于CF锁导致的短暂挂起,而CF挂起的延迟时间长达15分钟,15分钟会杀死Holding进程,这个时候如果 Holding process为后台进程就会导致database crash。
     一般情况下CF锁的问题都是由于各种调度不当和异常产生的,但也有可能确实是由于controlfile write的IO效率太低引起CF lock持有时间过长。

      加速controlfile write:
      (1)、异步IO,异步IO是针controlfile最主要的改善,在多控制文件的情况将依次写每个控制文件,异步IO可以极大的改善这种状况。
      (2)、保持控制文件规模,避免其动态增长
   
      当发生了CF锁定的时候怎么办?
      大部分情况下是ckpt进程等待其他进程释放CF lock,一般情况下可以kill其他进程。
      相当多的情况使属于logfile switch切换太快导致,这个时候会出现lgwr等待CF lock,其他会话log file sync,增大redolog file。
     
      曾经看到过大量的业务进程等待CF lock,除了nologging操作会访问CF lock,不知道在其他场合下user session会访问CF lock。只有通过重现该种状况才有可能去了解当时究竟发生了什么了。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/92650/viewspace-1062629/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
专注于Oracle,BI,Security,DR &^BCP,Performance tuning

注册时间:2013-10-15

  • 博文量
    68
  • 访问量
    725326