zhouying23 发表于 2018-9-23 12:33:06

GoldenGate学习二 在windows下配置oracle到oracle的单向数据同步。

  GoldenGate配置数据DML同步需要配置的进程
  1.源数据库
  Manager进程:GoldenGate的控制进程,负责启动,监控和管理其他进程。
  Extract进程:抽取进程,负责从源数据库中捕获修改的数据,然后保存为本地的tail文件。
  Pump进程:传输进程,负责从本地tial文件中传输到目标数据库上。
  2.目标数据库
  Manager进程:同样需要配置一个 Manager进程
  Replicate进程:应用进程,负责把解析传输过来的tail文件,把修改应用到本地数据库里面。
  配置流程,在源数据库上执行以下步骤:
  1.调整归档模式,如果数据库运行在非归档模式下,首先要修改成归档模式,用sqlplus执行:
  SQL>shutdown immediate;
  SQL>startup mount;
  SQL>alter database archivelog;
  SQL>alter database open;
  2.打开数据库级别的补充日志(supplemental log)
  SQL>alter database add supplemental;
  3.创建GoldenGate用户,为了简化流程,我这里直接给ggs赋予了dba权限,如果需要详细的权限控制,可以查看官方文档。

  SQL>create user ggs>  SQL>grant dba to ggs;
  3.添加表级别的补充日志,
  用GGSCI执行,GGSCI在GoldenGate目录下面:
  GGSCI> dblogin userid ggs,password ggs
  添加要同步表的补充日志,可以用通配符来用户所有的表。
  GGSCI>add trandata scott.*
  4.配置源数据库的Manager进程
  GGSCI> edit params mgr
  在打开的文件里添加一下内容:
  PORT 7809
  DYNAMICPORTLIST 7810-7820
  AUTORESTART ER t*, RETRIES 4, WAITMINUTES 4
  保存文件。参数说明:
  PORT:Manager进程通信端口。
  DYNAMICPORTLIST:表示Manager进程可以为通信分配的动态端口列表。
  AUTORESTART:自动重启Extract进程,重启次数为4次,每次间隔4s,如果不成功就放弃。
  启动Manager进程。
  GGSCI> start mgr
  5.配置源数据库的Extract进程
  创建名字为extest的抽取进程的参数文件
  GGSCI> edit params extest
  在打开的文件里添加一下内容:
  extract extest
  userid ggs,password ggs
  exttrail D:\Oracle_GoldenGate\dirdat\et
  dynamicresolution
  tablescott.* ;
  保存文件,参数说明:
  exttrail:本地tail文件的保存目录
  dynamicresolution:动态解析原端的表名。
  在GGSCI中添加extest进程
  GGSCI>add extractextest,tranlog,begin now
  添加本地tail文件
  GGSCI>add exttrail D:\Oracle_GoldenGate\dirdat\et, extractextest
  启动Extract进程
  GGSCI>start extest
  6.配置源数据库的PUMP进程
  创建名字为dpump的pump进程的参数文件
  GGSCI> edit params dpump
  在打开的文件里添加以下内容:
  extract dpump
  passthru
  userid ggs,password ggs
  rmthost 192.168.119.179,mgrport 7809,compress
  rmttrail D:\Oracle_GoldenGate\dirdat\pt
  table scott.* ;
  保存文件,参数说明:
  rmthost:目标数据库的IP和端口,端口为目标数据库Manager进程中配置的端口号。
  rmttrail:目标数据库tail文件的保存路径
  在GGSCI中添加PUMP进程
  GGSCI>add extract dpump, exttrailsource D:\Oracle_GoldenGate\dirdat\et
  添加远程tail的保存路径
  GGSCI>add rmttrailD:\Oracle_GoldenGate\dirdat\pt,extract dpump
  启动PUMP进程
  GGSCI>start dpump
  在目标数据库上执行以下步骤:
  1.创建GoldenGate用户,为了简化流程,我这里直接给ggs赋予了dba权限,如果需要详细的权限控制,可以查看官方文档。

  SQL>create user ggs>  SQL>grant dba to ggs;
  2.添加checkpoint表,checkpoint表的作用是为了从异常失败场景中恢复数据。
  在GLOBALS中添加checkpoint
  GGSCI>edit params ./GLOBALS
  在打开的文件中添加
  checkpointtable ggs.checkpoint
  保存文件。
  在目标数据库中添加checkpoint表:
  GGSCI>dblogin userid ggs,password ggs
  GGSCI>add checkpointtable ggs.checkpoint
  3.配置目标数据库的Manager进程
  GGSCI> edit params mgr
  在打开的文件里添加一下内容:
  PORT 7809
  DYNAMICPORTLIST 7810-7820
  AUTOSTART ER *
  AUTORESTART EXTRACT *,WAITMINUTES 2,RETRIES 5
  LAGREPORTHOURS 1
  LAGINFOMINUTES 10
  LAGCRITICALMINUTES 30
  PURGEOLDEXTRACTS D:\Oracle_GoldenGate\dirdat\rt*, USECHECKPOINTS, MINKEEPDAYS 5
  保存文件。
  启动Manager进程
  GGSCI>start mgr
  4.配置目标数据库的replicat进程
  GGSCI> edit paramsrepl
  在打开的文件里添加以下内容:
  replicat repl
  userid ggs,password ggs
  assumetargetdefs
  reperror default,discard
  discardfile ./dirrpt/repl.dsc,append,megabytes 50
  dynamicresolution
  map scott.*target scott.* ;
  保存文件,参数说明:
  assumetargetdefs:说明源数据库和目标数据库有相同的表定义。
  reperror:遇到复制错误默认行为记录错误并继续处理
  dynamicresolution:动态解析对象名称,加快解析效率
  启动replicat进程
  GGSCI>start repl
  测试:
  首先在两台服务器上分别输入:
  GGSCI>info all
  看所有的进程状态是否都为RUNNING
  然后在源数据库更新,插入,修改看目标数据库是否更新一致。

页: [1]
查看完整版本: GoldenGate学习二 在windows下配置oracle到oracle的单向数据同步。