在ORACLE GG中,为了支持连续地提取与复制数据库变化,Oracle GG将捕捉到的数据变化临时存放在磁盘上的一系列文件中,这些文件就叫做trail文件!这些文件可以在source DB上也可以在目标DB上,也可以在中间系统上,这依赖以你的配置情况。在source DB上的叫做local trail或者extract trail,在目标端的叫做remote trail。需要注意的是,
只有primary
extract进程需要写trail文件,并且仅有一个extract进程写一个trail文件,注意,这里是只是写,那么谁来读取这个文件呢?我们知道extract进程是提取变化数据的,可以配置它写local trail,或者是remote trail,如果是写local trail,那么就是data pump进程负责读取trail文件里的内容并传递给target端的trail文件中,如果是配置extract写remote trail,那么就是Replicat进程负责来读取trail文件中的内容并应用之!
综上所述,我们知道读trail文件的进程有如下两个:
1.data pump进程:data pump从local trail文件中读取数据以便处理,如果需要,data pump会将数据传递到目标端或者下一个GG的处理进程中。
2.replicat进程: replicat读取数据并应用到目标数据库。
默认,trail文件是10M一个,在添加trail文件时指定,也可以通过alert命令来修改,需要注意的是所有的文件名都要以两个字母开始,在创建trail的时候指定,然后,后面会自动跟上6位数字,从000000到999999,例如:c:\ggs\dirdat\tr000001,默认trail文件是存放在GG的dirdat子目录中。
trail文件的aged是由PURGEOLDEXTRACTS参数来控制的,过期后就自动删除。
默认,extract进程以append模式添加数据到trail文件中。当一个extract进程失败了,一个恢复标记会写到trail文件中。
Data pump或者replicat进程从恢复点读取数据。
阅读(2573) | 评论(0) | 转发(0) |