Report files D:\\ggs\\dirrpt: created Checkpoint files D:\\ggs\\dirchk: created Process status files D:\\ggs\\dirpcs: created SQL script files D:\\ggs\\dirsql: created Database definitions files D:\\ggs\\dirdef: created Extract data files D:\\ggs\\dirdat: created Temporary files D:\\ggs\\dirtmp: created Veridata files D:\\ggs\\dirver: created Veridata Lock files D:\\ggs\\dirver\\lock: created Veridata Out-Of-Sync files D:\\ggs\\dirver\\oos: created Veridata Out-Of-Sync XML files D:\\ggs\\dirver\\oosxml: created Veridata Parameter files D:\\ggs\\dirver\\params: created Veridata Report files D:\\ggs\\dirver\\report: created Veridata Status files D:\\ggs\\dirver\\status: created Veridata Trace files D:\\ggs\\dirver\\trace: created Stdout files D:\\ggs\\dirout: created
6
3.数据库复制实施文档(DML)
3.1准备工作
◆准备两台机器,分别为SourceDB, TargetDB,通过TCP/IP网络进行互连 SourceDB :WIN XP环境,Oracle 10g 10.2.0.1.0 TargetDB :WIN 2003 环境 Oracle 10g 10.2.0.1.0 ◆必须保证SourceDB是运行在归档模式下。
◆目的 :将SourceDB中相关Schema中的数据同步复制到TargetDB相对应的Sechema中
本文中要同步的是SouceDB中的SAJET,SJ,SMT,LANG到Target中的SAJET,SJ,SMT,LANG用户下
◆首先要保持SourceD, TargetDB相关Schema中的初始数据一致,可以通过Exp/Imp,Rman,冷备等方式实现.
◆双方DB建立GoldenGate用户,赋予DBA权限,用于GoldenGate连接DB. ◆双方DB安装GoldenGate,安装方式如第二章节所示 ◆SourceDB必须开始最小附加日志模式
通过以下语句查看DB是否开启了最小附加日志模式
SQL> select SUPPLEMENTAL_LOG_DATA_MIN from v$database; SUPPLEME -------- YES
如果没有开启数据库的最小附加日志,则通过以下语句开启 SQL>alter database add supplemental log data;
◆ 开启表的最小附加日志,通过GoldenGate命令行来添加 GGSCI (PONY) 1> dblogin userid sajet password tech Successfully logged into database.
GGSCI (PONY) 2> add trandata sajet.* 第一条命令表示登录到Database
第二条命令表示添加Sajet用户下所有表的最小附加日志 同样的命令开启SJ,LANG,SMT用户下的表的最小附加日志。
7
3.2配置GoldenGate
3.2.1配置SourceDB的GoldenGate
SourceDB端需要配置mgr进程,添加一个extract进程,和一个远端队列。 1.配置mgr参数
GGSCI (PONY) 2> edit param mgr
此时系统自动会新建一个名为mgr的参数文件,填入以下内容后保存 PORT 7809
--mgr进程使用的TCP/IP端口侦听请求
2.新增一个抽取进程,在GGSCI命令行中输入如下命令: GGSCI (PONY) 1> add extract ext1,tranlog,begin now EXTRACT added.
---新增一个抽取进程,负责抓取SourceDB中变化的数据,基于日志方式,立即生效 3.配置抽取进程
GGSCI (PONY) 2> edit param ext1
此时系统会自动新建一个名为ext1的参数文件,填入以下内容后保存 extract ext1
userid goldengate,password goldengate rmthost 172.17.17.61, mgrport 7809 rmttrail d:\\ggs\\dirdat\\r1 dynamicresolution gettruncates table sajet.*; table sj.*; table smt.*; table lang.*; --
抽取进程名为 ext2
连接本机DB的账号和密码
远程主机地址以及服务端口号(TargetDB) 远程队列的位置(TargetDB) 优化参数,动态分析表结构 是否抓取Truncate的数据 需要抽取哪些table。
4.新增远端队列位置
GGSCI (PONY) 3> add rmttrail d:\\ggs\\dirdat\\r1 extract ext2 RMTTRAIL added.
8
--
新增一个远程队列,位置为在TargetDB的d:\\ggs\\dirdat\\r1,是抽取进程ext1抽取的数据队列,注意和抽取进程中配置的rmttrail d:\\ggs\\dirdat\\r1一致。 开启所有进程
GGSCI (PONY) 11> start mgr
Starting Manager as service ('GGSMGR')... Service started.
GGSCI (PONY) 14> start ext1
Sending START request to MANAGER ('GGSMGR') ... EXTRACT EXT1 starting
查看进程的运行情况
GGSCI (PONY) 185> info all
Program Status Group Lag Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING EXT1 00:00:00 00:00:06
OK,Mgr进程和EXT进程都已经正常运行 SouceDB端的配置完成。
3.2.2 配置TargetDB的GoldenGate
1.配置mgr参数
GGSCI (PONY) 2> edit param mgr
此时系统自动会新建一个mgr的参数文件,填入以下内容后保存 PORT 7809
DYNAMICPORTLIST 7840-7850 --mgr进程使用的TCP/IP端口侦听请求 接受远端队列的端口列表。
2.新增一个复制进程
GGSCI (PONY) 2>ADD replicat rep1 EXTTRAIL d:\\ggs\\dirdat\\r1, nodbcheckpoint
--新增一个复制进程,将抽取到队列中的文件解析后写进TargetDB
3.配置复制进程
9
GGSCI (PONY) 2> edit param rep1
此时系统会自动新建一个参数文件,填入一下内容后保存
replicat rep1
userid goldengate,password goldengate assumetargetdefs
reperror default,discard
discardfile D:\\oradata\\discard\\repsz.dsc,append,megabytes 100 gettruncate
map sajet.*, target sajet.*; map sj.*, target sj.*;
map lang.*, target lang.*; map smt.*, target smt.*;
--复制进程名
登入TargetDB的账号和密码
两台DB数据结构一致则使用此参数
如果复制出错,则继续,并将错误放进discardfile中 复制truncate操作
复制的源表为sajet,sj,lang,smt用户下的所有表,目标为TargetDB中对用用户下的所有表
开启mgr和rep进程
GGSCI (PONY) 20> start mgr
Starting Manager as service ('GGSMGR')... Service started.
GGSCI (PONY) 21> start rep1
Sending START request to MANAGER ('GGSMGR') ... REPLICAT REP1 starting
查看进程的运行情况
GGSCI (PONY) 22> info all
Program Status Group Lag Time Since Chkpt
MANAGER RUNNING
REPLICAT RUNNING REP1 00:00:00 00:00:07
10