oracle goldgate 支付宝测试配置脚本(内部资料)

更新时间:2023-12-08 15:39:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

附录

附录A: 系统准备

防火墙端口

开通源端←→目标端之间的防火墙,策略为打开目标端网络的7809到7810、7840到7850之间的端口。在两台主机中分别安装Oracle数据库,并导入核心数据用于压力测试。

源数据库准备

1. 创建GoldenGate数据库用户goldengate

CREATE USER goldengate IDENTIFIED BY goldengate default tablespace users; GRANT dba TO goldengate;

2. 检查源端数据库是否为归档模式,若为非归档模式,将其改为归档模式

archive 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=spfile; 重新启动数据库,使参数生效。

5. 为需要复制的数据表添加TRANDATA即增加表级Supplemental Log

Shell>ggsci

GGSCI>DBLOGIN USERID goldengate, PASSWORD goldengate GGSCI>ADD 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_LOGIN_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(CURRENCY,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

CREATE USER goldengate IDENTIFIED BY goldengate default tablespace users; GRANT dba TO goldengate;

源与目标GoldenGate的安装准备

1. 在指定位置建立GoldenGate安装目录,并确认该目录属组为oracle:dba

2. 通过ftp上传GoldenGate软件包到安装目录,并解压缩

gzip –d *.gz tar xvf *.tar

3. 在安装目录下执行./ggsci命令进入命令行界面, 创建GoldenGate子目录

create subdirs

4. 在GGSCI命令行界面下编辑全局参数文件GLOBALS

edit param ./GLOBALS

输入下列内容,其中goldengate为复制而建立的数据库用户:

GGSCHEMA goldengate

5. 编辑mgr进程参数

edit param mgr

port 7809

DYNAMICPORTLIST 7840-7850

autorestart er *, retries 5, waitminutes 1

purgeoldextracts /tmp/goldengate/ggs/dirdat/*,usecheckpoints, minkeepdays 7

6. 启动Mgr进程

start mgr Mgr is running!

7. 目标端需要继续安装 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 now b) edit param extu1

extract extu1

setenv (ORACLE_SID=%userid goldengate, password goldengate exttrail /opt/oracle/oradata/dirdat/u1 discardfile ./dirrpt/extu1.dsc,append numfiles 3000

EOFDELAYCSECS 10 dynamicresolution table scott.*;

table dwtest.*;

c) add exttrail /tmp/goldengate/ggs/dirdat/, extract extu1, megabytes 100

2. 源端添加Data Pump进程dmpu1:

a) add extract dmpu1, exttrailsource ./dirdat/u1 b) edit param dmpu1

extract dmpu1 passthru

RMTHOST 172.17.126.24, MGRPORT 7809, compress RMTTRAIL ./dirdat/u1 EOFDELAYCSECS 10 dynamicresolution numfiles 3000 table scott.*; table dwtest.*;

c) add rmttrail ./dirdat/u1, extract dmpu1, megabytes 100

3. 目标端添加应用进程repu1:

a) add rep repu1, ./dirdat/u1 nodbcheckpoint b) edit param repu1

replicat repu1

userid goldengate, password goldengate

sqlexec \batchsql

--handlecollisions

reperror default,abend

discardfile ./dirrpt/repu1.dsc,append,megabytes 100m EOFDELAYCSECS 10 assumetargetdefs allownoopupdates dynamicresolution numfiles 3000

MAP scott.* ,TARGET scott.*;

map scott.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 1 b) edit param extf1

extract extf1

setenv (ORACLE_SID=\

userid goldengate@primarydb, password goldengate exttrail ./dirdat/f1

discardfile ./dirrpt/extf1.dsc, append

numfiles 3000 eofdelaycsecs 10 dynamicresolution

TRANLOGOPTIONS ALTARCHIVELOGDEST /opt/oracle/oradata/arch/goldengate TRANLOGOPTIONS ARCHIVEDLOGONLY TABLE DWTEST.TEST_TRADE_1; TABLE DWTEST.TEST_TRADE_2; TABLE DWTEST.TEST_TRADE_3; TABLE DWTEST.TEST_TRADE_4;

c) add exttrail ./dirdat/f1, extract extf1, megabytes 100

2. 源端添加Data Pump进程dmpf1:

a) add extract dmpf1, exttrailsource ./dirdat/f1 b) edit param dmpf1

extract dmpf1

passthru

RMTHOST 172.17.126.24, MGRPORT 7809 RMTTRAIL ./dirdat/f1

TABLE DWTEST.TEST_TRADE_1; TABLE DWTEST.TEST_TRADE_2; TABLE DWTEST.TEST_TRADE_3; TABLE DWTEST.TEST_TRADE_4;

c) add rmttrail ./dirdat/f1, extract dmpf1, megabytes 100

3. 目标端添加应用进程ffw:

a) add extract ffw, exttrailsource ./dirdat/f1 b) edit param ffw

extract ffw

SETENV (GG_USEREXIT_PROPFILE = \SOURCEDEFS ./dirdef/f1.def

CUSEREXIT ./flatfilewriter.so CUSEREXIT EXTTRAIL /data1/software/goldengate/dirdat/v1 GETUPDATEBEFORES

TABLE 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命令下输入如下命令“ GGSCI>Edit param defgen

DEFSFILE ./dirdat/f1.def

USERID dwtest@primarydb, 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 extract ext01, tranlog, begin 2009-12-09 10:30:00, threads 1

b) edit param ext01

extract ext01 userid goldengate@primarydb, password goldengate exttrail ./dirdat/e1 discardfile ./dirrpt/exte1.dsc, append numfiles 3000 eofdelaycsecs 10 dynamicresolution TRANLOGOPTIONS ALTARCHIVELOGDEST /opt/oracle/oradata/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 100

5. 源端添加Data Pump进程dmpe1:

a) add extract dmpe1, exttrailsource ./dirdat/e1 b) edit param dmpe1

REPLICAT rep01

USERID scott, PASSWORD SCOTT

sqlexec \batchsql

reperror default,abend HANDLECOLLISIONS

ASSUMETARGETDEFS

DISCARDFILE ./dirrpt/rep01.DSC, PURGE EOFDELAYCSECS 10 allownoopupdates

dynamicresolution

numfiles 3000

MAP DWTEST.TEST_TRADE_5, TARGET SCOTT.TEST_TRADE_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 100

6. 目标端添加应用进程rep01:

a) add replicat rep01, exttrail ./dirdat/e1 b) edit param rep01

REPLICAT 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.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);

附录E:数据文件控制属性说明

GoldenGate File Adapter for Greenplum提供了两个文件,用来生成数据文件。其中ffwriter.properties中有多个文件格式控制属性,通过设置这些属性,即可以控制生成文件的格式。 主要属性如下:

dsvwriter.includecolnames=false

是否在字段值前放置字段名称,缺省为false

dsvwriter.files.onepertable=true

每个表格各生成一个文件,还是所有数据放入一个文件,缺省为true

dsvwriter.files.data.rootdir=./dirout

数据文件输出目录

dsvwriter.files.data.ext=_data.dsv

已就绪的数据文件扩展名

dsvwriter.files.data.tmpext=_data.dsv.temp

处理中的数据文件

dsvwriter.files.data.rollover.time=1800

数据文件由“处理中”切换为“就绪”的最大时间(秒)

dsvwriter.files.data.rollover.size=104857600

数据文件由“处理中”切换为“就绪”的最大文件尺寸(KB)

dsvwriter.files.data.norecords.timeout=1800

当无记录写入时,最多等待时间(秒)即切换数据文件为“就绪”,缺省120秒

dsvwriter.files.rolloveronshutdown=true

当本属性为true时,如果Extract进程停止,则所有空白“处理中”文件被删除,所有有数据的“处理中”文件切换为“就绪”文件。当本属性为false时,如果Extract进程停止,则所有空白“处理中”文件被删除,所有有数据的“处理中”文件状态不变。

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和Delete Timestamp - 记录的提交时间戳

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_n

数据文件名字格式: %s - schema %t - table

%d - timestamp n - 5位序号

附录F:测试SQL脚本样例

创建测试表格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_ACCOUNT 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, ADDITIONAL_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 '',

本文来源:https://www.bwwdw.com/article/49ut.html

Top