专家答疑:关于DB2中Capture程序解析

来源:IT专家网  作者:database
专家答疑:关于DB2中Capture程序解析
摘要:在DB2数据库中Capture程序是一个很关键的应用程序,特别是在数据库复制解决方案中。这个程序的主要的作用就是追踪在DB2服务器上对复制源所做的更改。如果有更改的话,会将这些更改的记录保存在一张特殊的表中(CD表)。通常情况下,这个应用程序时运行在控制服务器…

内容提示:在DB2数据库中Capture程序是一个很关键的应用程序,特别是在数据库复制解决方案中。这个程序的主要的作用就是追踪在DB2服务器上对复制源所做的更改。如果有更改的话,会将这些更改的记录保存在一张特殊的表中(CD表)。通常情况下,这个应用程序时运行在控制服务器上。不过具体运行在哪个位置,根据操作系统的不同可以有不同的选择。作为数据库管理员,必须要将Capture程序牢牢的掌握在手中。让其在关键的时候发挥关键的作用。具体的来说,需要在必要的时候,启动如下几个Capture程序相关的进程。

一、工程程序进程。

  如上图所示,既然Capture程序主要用来监测数据源表的变动并将相关的记录保存到CD表中,那么必然要有一个进程,好像一只眼睛一样,时刻盯着数据源表数据的的变化情况。如果有变化的话,即使告知其他进程。这个进程就叫做工作程序进程。通常情况下,当启动Capture进程的时候,这个工作程序进程就会启动。

工作程序进程与复制源所驻留的DB2数据库相连,监视复制源的更改情况。同时,其也决定了Capture程序的启动方式(即根据相关的参数来决定是以热启动方式或者以冷启动方式来启动Capture程序)。当这个工作程序进程启动的时候,它就会读取活动的数据库日志,以判断相关的复制源(如基础表、视图)等等是否进行了更改。只要启动了这个进程,那么这个监测会一直持续下去。也就是说,并不是用户对复制源作了更改,才触发这个进程。而是无论复制源是否有更改,这个进程一直都存在(只要启动了Capture程序)。对于这个进程,笔者认为数据库管理员需要从以下几个方面去了解。

一是其监测的内容来源。工作程序进程会读取活动的数据库日志。不过对于DB2数据库来说,数据库日志包括两部分,分别为重做日志缓存与重做日志文件。由于内存的速度要比硬盘速度快的多,所以为了提高数据库的性能,系统往往是先将数据存储在内存中。然后在符合一定的条件下,再将内存中的数据保存到数据文件中。而内存中的事务日志又可以分为两类,分别为已落实的事务记录(即已经递交的事务)与未落实的事务记录(还没有递交的事务)。工作程序进程在工作过程中,会收集内存中属于每个事务的所有记录,并每个一个固定的时间将收集到的已经落实的事务写入到对应的CD表中。故其数据源其实是内存中已经落实了的事务记录。

二是需要注意,一个时间间隔的问题。即隔多少时间,将相关的记录保存到CD表中。如果这个时间间隔设置的比较长,那么数据的同步性就比较差。而如果设置的比较短的话,又会影响数据库的性能。一般情况下,只要采取数据库的默认设置即可。但是如果数据源表中的数据更改非常频繁,则需要根据实际情况来合理调整这个时间参数,以提高数据库性能。笔者的建议是,先采用默认的值,并进行数据库性能的监测。如果发现这个值不合适的话,则可以适当调整并继续监测其对数据库性能的影响。经过几次调试之后,就可以得到一个相对合理的时间间隔值。

【相关文章】好搜一下
数据库指南:关于DB2常用技巧解析

数据库指南:关于DB2常用技巧解析

DB2数据库操作是开发人员经常接触到的,是我们最常用的数据库之一,下面就教您一个…