1、oracle goldgate 支付宝测试配置脚本内部资料附录附录A: 系统准备防火墙端口开通源端目标端之间的防火墙,策略为打开目标端网络的7809到7810、7840到7850之间的端口。在两台主机中分别安装Oracle数据库,并导入核心数据用于压力测试。源数据库准备1. 创建GoldenGate数据库用户goldengate CREATE USER goldengate IDENTIFIED BY goldengate default tablespace users; GRANT dba TO goldengate;2. 检查源端数据库是否为归档模式,若为非归档模式,将其改为归档模式 a
2、rchive log list;3. 检查源端数据库附加日志是否打开 select supplemental_log_data_min from v$database; 将数据库附加日志打开 alter database add supplemental log data; 切换日志以使附加日志生效: ALTER SYSTEM ARCHIVE LOG CURRENT;4. 如果数据库是9i版本的话检查 show parameter log_parallelism 在9i此参数必须是1,通过如下命令设置: alter system set log_parallelistm=1 scope=spf
3、ile; 重新启动数据库,使参数生效。5. 为需要复制的数据表添加TRANDATA即增加表级Supplemental LogShellggsciGGSCIDBLOGIN USERID goldengate, PASSWORD goldengateGGSCIADD TRANDATA .对于字段数目大于32的表格,需要在SQLPLUS命令中执行如下命令:ALTER TABLE DWTEST.TEST_TRADE_1 ADD SUPPLEMENTAL LOG GROUP TEST_TRADE_1_1(ID,OUT_TRADE_NO,TRADE_NO,SELLER_ACCOUNT,SELLER_LOG
4、IN_EMAIL,SELLER_USER_ID,BUYER_ACCOUNT,BUYER_LOGIN_EMAIL,BUYER_USER_ID,SELLER_TYPE,BUYER_TYPE,TRADE_FROM,TRADE_EMAIL,OPERATOR_ROLE,TRADE_STATUS,ADDITIONAL_TRD_STATUS,TRADE_TYPE,TOTAL_FEE,SERVICE_FEE_RATIO,SERVICE_FEE) always; ALTER TABLE DWTEST.TEST_TRADE_1 ADD SUPPLEMENTAL LOG GROUP TEST_TRADE_1_2(C
5、URRENCY,SELLER_ACTION,BUYER_ACTION,GMT_CREATE,SELLER_FULLNAME,BUYER_FULLNAME,SELLER_NICK,BUYER_NICK,GOODS_TITLE,GMT_LAST_MODIFIED_DT,GATHERING_TYPE,STOP_TIMEOUT,BUYER_MARKER,SELLER_MARKER,BUYER_MARKER_MEMO,SELLER_MARKER_MEMO,CHANNEL,PRODUCT,PAY_CHANNEL) always;目标数据库准备创建GoldenGate数据库用户goldengate CREA
6、TE USER goldengate IDENTIFIED BY goldengate default tablespace users; GRANT dba TO goldengate;源与目标GoldenGate的安装准备1. 在指定位置建立GoldenGate安装目录,并确认该目录属组为oracle:dba2. 通过ftp上传GoldenGate软件包到安装目录,并解压缩 gzip d *.gz tar xvf *.tar3. 在安装目录下执行./ggsci命令进入命令行界面, 创建GoldenGate子目录create subdirs4. 在GGSCI命令行界面下编辑全局参数文件GLO
7、BALS edit param ./GLOBALS 输入下列内容,其中goldengate为复制而建立的数据库用户: GGSCHEMA goldengate5. 编辑mgr进程参数edit param mgrport 7809DYNAMICPORTLIST 7840-7850autorestart er *, retries 5, waitminutes 1 purgeoldextracts /tmp/goldengate/ggs/dirdat/*,usecheckpoints, minkeepdays 76. 启动Mgr进程 start mgr Mgr is running!7. 目标端需要
8、继续安装 Goldengate File Adapter for Greenplum,通过ftp上传File Adapter软件包到安装目录,并解压缩 gzip d *.gz tar xvf *.tar附录B:场景1配置命令1. 源端添加EXTRACT进程extu1:a) add extract extu1, tranlog, begin nowb) edit param extu1extract extu1setenv (ORACLE_SID=ggdb)userid goldengate, password goldengateexttrail /opt/oracle/oradata/dir
9、dat/u1discardfile ./dirrpt/extu1.dsc,appendnumfiles 3000EOFDELAYCSECS 10dynamicresolutiontable scott.*;table dwtest.*; c) add exttrail /tmp/goldengate/ggs/dirdat/, extract extu1, megabytes 1002. 源端添加Data Pump进程dmpu1:a) add extract dmpu1, exttrailsource ./dirdat/u1b) edit param dmpu1extract dmpu1 pas
10、sthru RMTHOST 172.17.126.24, MGRPORT 7809, compress RMTTRAIL ./dirdat/u1 EOFDELAYCSECS 10dynamicresolutionnumfiles 3000table scott.*;table dwtest.*; c) add rmttrail ./dirdat/u1, extract dmpu1, megabytes 1003. 目标端添加应用进程repu1:a) add rep repu1, ./dirdat/u1 nodbcheckpointb) edit param repu1replicat repu
11、1userid goldengate, password goldengatesqlexec Alter session set constraints=deferredbatchsql-handlecollisions reperror default,abenddiscardfile ./dirrpt/repu1.dsc,append,megabytes 100mEOFDELAYCSECS 10assumetargetdefsallownoopupdatesdynamicresolutionnumfiles 3000MAP scott.* ,TARGET scott.*;map scott
12、.tb8 , target scott.tb8, colmap (h=a,i=b,j=c,k=d,l=e);map dwtest.* , target scott.*;附录C:场景2配置命令1. 源端添加EXTRACT进程extf1:a) add extract extf1, tranlog, begin now, threads 1b) edit param extf1extract extf1setenv (ORACLE_SID=ggdb)userid goldengateprimarydb, password goldengateexttrail ./dirdat/f1discardfi
13、le ./dirrpt/extf1.dsc, appendnumfiles 3000eofdelaycsecs 10dynamicresolutionTRANLOGOPTIONS ALTARCHIVELOGDEST /opt/oracle/oradata/arch/goldengateTRANLOGOPTIONS ARCHIVEDLOGONLYTABLE DWTEST.TEST_TRADE_1;TABLE DWTEST.TEST_TRADE_2;TABLE DWTEST.TEST_TRADE_3;TABLE DWTEST.TEST_TRADE_4;c) add exttrail ./dirda
14、t/f1, extract extf1, megabytes 1002. 源端添加Data Pump进程dmpf1:a) add extract dmpf1, exttrailsource ./dirdat/f1b) edit param dmpf1extract dmpf1passthruRMTHOST 172.17.126.24, MGRPORT 7809RMTTRAIL ./dirdat/f1TABLE DWTEST.TEST_TRADE_1;TABLE DWTEST.TEST_TRADE_2;TABLE DWTEST.TEST_TRADE_3;TABLE DWTEST.TEST_TRA
15、DE_4;c) add rmttrail ./dirdat/f1, extract dmpf1, megabytes 1003. 目标端添加应用进程ffw:a) add extract ffw, exttrailsource ./dirdat/f1b) edit param ffwextract ffwSETENV (GG_USEREXIT_PROPFILE = ffwriter.properties)SOURCEDEFS ./dirdef/f1.defCUSEREXIT ./flatfilewriter.so CUSEREXITEXTTRAIL /data1/software/goldeng
16、ate/dirdat/v1GETUPDATEBEFORESTABLE DWTEST.TEST_TRADE_1;TABLE DWTEST.TEST_TRADE_2;TABLE DWTEST.TEST_TRADE_3;TABLE DWTEST.TEST_TRADE_4;c) add exttrail ./dirdat/vf1, extract ffw最后配置Goldengate安装目录下的ffwriter.properties属性文件,控制输出数据文件的格式。具体参数见附录E。备注:生成表定义文件命令(导出到文本文件需要执行,如果目标为数据库但表结构不同也需要执行) 在ggsci命令下输入如下命令
17、“ GGSCIEdit param defgen DEFSFILE ./dirdat/f1.def USERID dwtestprimarydb, PASSWORD dwtest TABLE DWTEST.*; TABLE SCOTT.*; 在shell命令行下执行defgen命令生成表定义文件f1.def Shell defgen paramfile ./dirprm/defgen.prm 把生成的f1.def文件(在dirdef目录下)ftp到目标服务器Goldengate安装目录下的dirdef子目录即可。附录D:场景3配置命令4. 源端添加EXTRACT进程ext01:a) add e
18、xtract ext01, tranlog, begin 2009-12-09 10:30:00, threads 1b) edit param ext01extract ext01 userid goldengateprimarydb, password goldengate exttrail ./dirdat/e1 discardfile ./dirrpt/exte1.dsc, append numfiles 3000 eofdelaycsecs 10 dynamicresolution TRANLOGOPTIONS ALTARCHIVELOGDEST /opt/oracle/oradat
19、a/arch/goldengate TRANLOGOPTIONS ARCHIVEDLOGONLY TABLE DWTEST.TEST_TRADE_5; TABLE DWTEST.TEST_TRADE_6; TABLE DWTEST.TEST_TRADE_7; TABLE DWTEST.TEST_TRADE_8; c) add exttrail ./dirdat/e1, extract ext01, megabytes 1005. 源端添加Data Pump进程dmpe1:a) add extract dmpe1, exttrailsource ./dirdat/e1b) edit param
20、dmpe1REPLICAT rep01USERID scott, PASSWORD SCOTTsqlexec Alter session set constraints=deferredbatchsqlreperror default,abendHANDLECOLLISIONSASSUMETARGETDEFSDISCARDFILE ./dirrpt/rep01.DSC, PURGEEOFDELAYCSECS 10allownoopupdatesdynamicresolutionnumfiles 3000MAP DWTEST.TEST_TRADE_5, TARGET SCOTT.TEST_TRA
21、DE_5, KEYCOLS(TRADE_NO);MAP DWTEST.TEST_TRADE_6, TARGET SCOTT.TEST_TRADE_6, KEYCOLS(TRADE_NO);MAP DWTEST.TEST_TRADE_7, TARGET SCOTT.TEST_TRADE_7, KEYCOLS(TRADE_NO);MAP DWTEST.TEST_TRADE_8, TARGET SCOTT.TEST_TRADE_8, KEYCOLS(TRADE_NO); c) add rmttrail ./dirdat/e1, extract dmpe1, megabytes 1006. 目标端添加
22、应用进程rep01:a) add replicat rep01, exttrail ./dirdat/e1b) edit param rep01REPLICAT rep01 USERID scott, PASSWORD SCOTT HANDLECOLLISIONS ASSUMETARGETDEFS DISCARDFILE ./dirrpt/rep01.DSC, PURGE MAP DWTEST.TEST_TRADE_5, TARGET SCOTT.TEST_TRADE_5, KEYCOLS(TRADE_NO); MAP DWTEST.TEST_TRADE_6, TARGET SCOTT.TES
23、T_TRADE_6, KEYCOLS(TRADE_NO); MAP DWTEST.TEST_TRADE_7, TARGET SCOTT.TEST_TRADE_7, KEYCOLS(TRADE_NO); MAP DWTEST.TEST_TRADE_8, TARGET SCOTT.TEST_TRADE_8, KEYCOLS(TRADE_NO);附录E:数据文件控制属性说明GoldenGate File Adapter for Greenplum提供了两个文件,用来生成数据文件。其中ffwriter.properties中有多个文件格式控制属性,通过设置这些属性,即可以控制生成文件的格式。主要属性如
24、下:dsvwriter.includecolnames=false是否在字段值前放置字段名称,缺省为falsedsvwriter.files.onepertable=true每个表格各生成一个文件,还是所有数据放入一个文件,缺省为truedsvwriter.files.data.rootdir=./dirout数据文件输出目录dsvwriter.files.data.ext=_data.dsv已就绪的数据文件扩展名dsvwriter.files.data.tmpext=_data.dsv.temp处理中的数据文件dsvwriter.files.data.rollover.time=1800数据
25、文件由“处理中”切换为“就绪”的最大时间(秒)dsvwriter.files.data.rollover.size=104857600数据文件由“处理中”切换为“就绪”的最大文件尺寸(KB)dsvwriter.files.data.norecords.timeout=1800当无记录写入时,最多等待时间(秒)即切换数据文件为“就绪”,缺省120秒dsvwriter.files.rolloveronshutdown=true当本属性为true时,如果Extract进程停止,则所有空白“处理中”文件被删除,所有有数据的“处理中”文件切换为“就绪”文件。当本属性为false时,如果Extract进程
26、停止,则所有空白“处理中”文件被删除,所有有数据的“处理中”文件状态不变。dsvwriter.dsv.fielddelim.chars=|数据文件中的字段分隔符dsvwriter.dsv.linedelim.chars=n数据文件中的行终结符号dsvwriter.dsv.quotes.chars=数据文件中的引号符号dsvwriter.dsv.quotes.escaped.chars=数据文件中的escape符号dsvwriter.metacols=opcode,timestamp数据文件中每行数据之前的元数据:Opcode I,U与D代表Insert, Update和DeleteTimest
27、amp 记录的提交时间戳dsvwriter.metacols.opcode.insert.chars=I数据文件中代表Insert操作的字符dsvwriter.metacols.opcode.update.chars=U数据文件中代表Update操作的字符dsvwriter.metacols.opcode.delete.chars=D数据文件中代表Delete操作的字符dsvwriter.files.formatstring=pump_%s_%t_%d_%05n数据文件名字格式: %s schema %t table %d timestamp %05n 5位序号 附录F:测试SQL脚本样例创建
28、测试表格Test_Trade_1到Test_Trade_8,表结构均相同:CREATE TABLE TEST_TRADE_1 ( ID NUMBER(11,0) NOT NULL ENABLE, OUT_TRADE_NO VARCHAR2(64), TRADE_NO VARCHAR2(64) NOT NULL ENABLE, SELLER_ACCOUNT VARCHAR2(100) NOT NULL ENABLE, SELLER_LOGIN_EMAIL VARCHAR2(100) NOT NULL ENABLE, SELLER_USER_ID VARCHAR2(16), BUYER_ACCOU
29、NT VARCHAR2(100) NOT NULL ENABLE, BUYER_LOGIN_EMAIL VARCHAR2(100) NOT NULL ENABLE, BUYER_USER_ID VARCHAR2(16), SELLER_TYPE NUMBER(2,0), BUYER_TYPE NUMBER(2,0), TRADE_FROM VARCHAR2(100), TRADE_EMAIL VARCHAR2(100), OPERATOR_ROLE CHAR(1) NOT NULL ENABLE, TRADE_STATUS VARCHAR2(50) NOT NULL ENABLE, ADDIT
30、IONAL_TRD_STATUS VARCHAR2(50), TRADE_TYPE VARCHAR2(4) NOT NULL ENABLE, TOTAL_FEE NUMBER(15,0) DEFAULT 0 NOT NULL ENABLE, SERVICE_FEE_RATIO NUMBER(5,3), SERVICE_FEE NUMBER(15,0) DEFAULT 0 NOT NULL ENABLE, CURRENCY VARCHAR2(3), SELLER_ACTION VARCHAR2(200), BUYER_ACTION VARCHAR2(200), GMT_CREATE DATE DEFAULT SYSDATE NOT NULL ENABLE, SELLER_FULLNAME VARCHAR2(256) DEFAULT , BUYER_FULLNAME VARCHAR2(256) DEFAULT , SELLER_NICK VARCHAR2(100) DEFAULT NOT NULL ENABLE, BUYER_NICK VARCHAR2(100) DEFAULT NOT NULL ENABLE, GOODS_TITLE VARCHAR2(256), GMT_LAST_MODIFIED_DT DATE, GATH
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1