数据仓库配置是多对一的配置方案。多个源端数据库将数据发送到同一个目标数据仓库。OGG支持将源库同步到多个目标系统。
数据仓库配置需要注意以下事项:
假设每个源端的数据库发送到目标系统的数据都是不同的。如果在多个源端系统出现了相同的表,表中出现了相同的记录时,需要做出冲突解决。
你可以将源端系统和目标端系统的数据存储相互分离,节约目标端所需的大量磁盘空间。为了避免提取进程通过网络直接将数据发送给目标端,每个源端系统上都需要设置数据泵投递进程。
初级提取组将数据写入每个源端的本地trail
每个源端数据泵投递进程将读取本地trail,然后通过TCP/IP发送给专属复制组(dedicated replicat group)。
创建仓库分布结构
源端系统
配置管理进程
1,在源端配置管理进程,参见笔 【goldengate】官方文档笔记一
http://blog.itpub.net/29047826/viewspace-1249506/
2,在管理进程参数文件中,使用PURGEOLDEXTRACTS参数来控制本地trail文件的清除工作。
配置初级提取进程
3,在每一个源端上,使用ADD EXTRACT命令来创建一个初级提取组。在这里我们取名为ext_1和ext_2。
Extract_1
ADD EXTRACT <ext_1>, {TRANLOG | INTEGRATED TRANLOG}, BEGIN <time>, [, THREADS]
Extract_2
ADD EXTRACT <ext_2>, {TRANLOG | INTEGRATED TRANLOG}, BEGIN <time>, [, THREADS]
4,在每一个源端上,使用ADD EXTTRAIL命令来创建一个本地trail
Extract_1
ADD EXTTRAIL <local_trail_1>, EXTRACT <ext_1>
Extract_2
ADD EXTTRAIL <local_trail_2>, EXTRACT <ext_2>
使用参数EXTRACT将同一个系统上的提每一个取组连接到本地trail。提取组将信息写入trail,投递组从trail中读取。
5,在每一个源端上,使用EDIT PARAMS命令为初级提取组创建一个参数文件。
Extract_1 EXTRACT <ext_1> [SOURCEDB <dsn_1>][, USERID <user>][, PASSWORD <pw> [<encryption options>]]
ENCRYPTTRAIL <encryption options> EXTTRAIL <local_trail_1> TABLE <owner>.<table>;
Extract_2
EXTRACT <ext_2>
[SOURCEDB <dsn_1>][, USERID <user>][, PASSWORD <pw> [<encryption options>]]
ENCRYPTTRAIL <encryption options>
EXTTRAIL <local_trail_2>
TABLE <owner>.<table>;
配置数据泵投递组
6,在每一个源端上,使用ADD EXTRACT 命令为每一个目标系统创建数据泵。在这里我们取名为pump_1,pump2.
Data pump_1
ADD EXTRACT <pump_1>, EXTTRAILSOURCE <local_trail_1>, BEGIN <time>
Data pump_2
ADD EXTRACT <pump_2>, EXTTRAILSOURCE <local_trail_2>, BEGIN <time>
EXTTRAILSOURCE作为数据源选项,指定本地trail文件。
7,在每一个源端上,使用ADD RMTTRAIL命令创建一个目标数据库上的trail。
source_1
ADD RMTTRAIL <remote_trail_1>, EXTRACT <pump_1>
source_2
ADD RMTTRAIL <remote trail_2>, EXTRACT <pump_2>
使用EXTRACT参数将每个远程的tail连接到不同的数据泵投递组。投递组通过TCP/IP向trail写入数据,然后复制组从trail读取数据。
8,在每一个源端上,使用EDIT PARAMS命令为每一个数据泵提取组创建参数文件。
Data pump_1
EXTRACT <pump_1> [SOURCEDB <dsn_1>][, USERID <user>][, PASSWORD <pw> [<encryption options>]]
DECRYPTTRAIL <encryption options> RMTHOST <target_1>, MGRPORT <portnumber>, ENCRYPT <encryption options> ENCRYPTTRAIL <encryption options> RMTTRAIL <remote_trail_1> [PASSTHRU | NOPASSTHRU] TABLE <owner>.<table>;
Data pump_2
EXTRACT <pump_2> [SOURCEDB <dsn_1>][, USERID <user>][, PASSWORD <pw> [<encryption options>]]
DECRYPTTRAIL <encryption options> RMTHOST <target_2>, MGRPORT <portnumber>, ENCRYPT <encryption options> ENCRYPTTRAIL <encryption options> RMTTRAIL <remote_trail_2> [PASSTHRU | NOPASSTHRU] TABLE <owner>.<table>;
目标系统
配置管理进程
9,在源端配置管理进程,参见笔 【goldengate】官方文档笔记一
http://blog.itpub.net/29047826/viewspace-1249506/
10,在管理进程参数文件中,使用PURGEOLDEXTRACTS参数来控制本地trail文件的清除工作。
配置复制组
11,在目标系统上,使用ADD REPLICAT命令为每一个远程的trail创建复制组(Replicat group)。在这里我们取名为rep_1,rep_2
Relicat_1
ADD REPLICAT <rep_1>, EXTTRAIL <remote_trail_1>, BEGIN <time>
Replicat_2
ADD REPLICAT <rep_2>, EXTTRAIL <remote_trail_2>, BEGIN <time>
EXTTRAIL参数用于将复制组连接到正确的trail。
12,在目标系统上,使用EDIT PARMAS命令分别创建一个提取组参数文件。
Relicat_1
REPLICAT <rep_1> SOURCEDEFS <full_pathname> | ASSUMETARGETDEFS [TARGETDB <dsn_2>][, USERID <user>][, PASSWORD <pw> [<encryption options>]]
DECRYPTTRAIL <encryption options> REPERROR (<error>, <response>) MAP <owner>.<table>, TARGET <owner>.<table>[, DEF <template name>];
Replicat_2
REPLICAT <rep_2> SOURCEDEFS <full_pathname> | ASSUMETARGETDEFS [TARGETDB <dsn_3>][, USERID <user>][, PASSWORD <pw> [<encryption options>]]
DECRYPTTRAIL <encryption options> REPERROR (<error>, <response>) MAP <owner>.<table>, TARGET <owner>.<table>[, DEF <template name>];
你可以为复制组使用多个MAP语句。这些MAP语句必须指定包含在连接到该组中相同trail里的对象。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/196700/viewspace-2150459/
,如需转载,请注明出处,否则将追究法律责任。