Oracle DRM技术的变迁 (七)

http://www.dbaleet.org/the_evolution_of_oracle_rac_drm_season_7/

我们可以从新版本引入的一些隐含参数中推测到DRM会有哪些改进。其中最重要的三个隐含参数是控制DRM频率以及最大值的参数:_lm_drm_batch_time,_lm_drm_max_requests, _lm_drm_min_interval,这三个参数互相配合共同控制DRM的行为。

_lm_drm_batch_time这个隐含参数默认值为10秒。简单的说就是LMD进程会检测DRM请求的最小间隔为10秒钟。更详细的说就是LMD进程如果需要进行DRM操作,那么必须距离上一次DRM中间需要间隔10秒钟。这样做的好处在于在DRM请求比较频繁的情况下降低LMD进程的繁忙程度,防止多个节点的来来回回的进行DRM请求导致的性能下降。如果按照时间间隔进行批量的提交则能很大程度上避免这个问题的发生。

同样_lm_drm_max_requests则是控制DRM请求的上限的,如果DRM请求累计的数量超过参数默认值的100次,那么这样就达到了LMD提交量临界值上限,即使没有超过10秒钟,LMD依然会进行DRM。

_lm_drm_min_interval这个隐含参数的模式值为300秒,大小为_gc_policy_time的一半。其中_gc_policy_time的默认值为10分钟。300秒只是一个最小值,准确的说对于同一个对象的两次连续的DRM操作时间间隔至少需要300秒,同时需要注意的是这个开关对于read mostly和undo affinity并不适用。

另外几个隐含参数我这里就不介绍了,有些是为了解决某些bug引入的,有一部分则对于drm行为的控制并不是那么关键。

Comment

*

沪ICP备14014813号

沪公网安备 31010802001379号