windows平台goldgate同步oracle数据库

这篇具有很好参考价值的文章主要介绍了windows平台goldgate同步oracle数据库。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、环境
操作系统 Microsoft Windows Server 2003 R2 Enterprise Edition Service Pack 2
数据库版本: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0
GoldenGate: Oracle GoldenGate Capture for Oracle Version 11.1.1.1.2

注:在安装goldgate之前,需要先安装好Oracle数据库,并且需要安装Microsoft Visual C++ 2005 SP1 Redistributable ,这是Windows环境下Visual C++库的运行组件。Goldgate运行的时候会用到一些库,所以不安装,可能导致“系统无法执行指定的程序”的错误。

Microsoft Visual C++ 2005 SP1 Redistributable下载地址:
链接:https://pan.baidu.com/s/13lPN6HbFM_YCo8Pbfccrgw
提取码:t8l0

GoldenGate软件下载地址:
链接:https://pan.baidu.com/s/12m_CNuxZEdoKEemr4OY67g
提取码:b7zb

二、安装Goldgate软件
1、设置Oracle数据库的环境变量
ORACLE_HOME=E:\app\Administrator\product\11.2.0\dbhome_1
ORACLE_SID=orcl
2、将下载好的GoldenGate软件放到E盘(软件的位置可自行定义),然后解压缩,然后进行E:\goldgate目录,运行ggsci,进入ogg管理控制台。输入命令:create subdirs,让ogg创建其需要用到的目录。
3、把manager进程添加到windows服务。
手动指定服务名:在命令行模式下切换到Ogg目录,用ggsci命令进入GGSCI交互界面。然后输入edit param ./GLOBALS,(注意:./GLOBALS最好使用大写)在弹出的记事本编辑器中,输入以下代码:
MGRSERVNAME GGMGR
保存后退出,回到windows命令提示符,在Ogg根目录用install命令添加服务:install addservice,然后手动命名的服务,这样就添加成功了。当然也可以直接使用默认的服务名GGSMGR----直接在Ogg目录输入install addservice.

注:源端和目标端操作一样。

三、配置Oracle数据库
注:10g要检查回收站功能是否关闭;11g则不必检查。这里咱们用11g,所以不必检查。
在源端库中关闭回收站

SQL>show parameter recyclebin
SQL>alter system set recyclebin=off deferred;   ---非立即生效

注意:如果是oracle10.1版本需要使用一下命令。

alter system set "_recyclebin=off";

默认情况归档模式、附加日志、强制日志参数是关闭的。

SQL> select supplemental_log_data_min from v$database;

启动归档模式、附加日志、强制日志。其中开启归档模式需要重启数据库,开启附加日志、强制日志不需要重启数据库。

SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database archivelog;
SQL> alter database force logging;
SQL> alter database add supplemental log data;
SQL> alter database open;

查看数据库级别的补充日志是否开启:

select supplemental_log_data_min from v$database;

四、创建Goldgate管理用户,并授权
源端和目标端:

--创建表空间
create tablespace OGG_D datafile 'F:\app\Administrator\oradata\dleam75\OGG_D_01.dbf' size 500m autoextend on;  
---创建临时表空间
create temporary tablespace OGG_T tempfile 'F:\app\Administrator\oradata\dleam75\OGG_T_01.dbf' size 500m autoextend on;  
---创建用户并指定默认表空间
create user ogg identified by oracle default tablespace OGG_D temporary tablespace OGG_T;   

源端和目标端授权:

grant connect,resource,unlimited tablespace to ogg;
grant execute on utl_file to ogg;

源端授权:

grant select any dictionary,select any table to ogg;
grant alter any table to ogg;
grant flashback any table to ogg;
grant execute on DBMS_FLASHBACK to ogg;

目标端授权:

grant select any dictionary,select any table to ogg;
grant CREATE SESSION, ALTER SESSION to ogg;
grant alter any table to ogg;
grant flashback any table to ogg;
grant execute on DBMS_FLASHBACK to ogg;
grant insert any table to ogg;
grant delete any table to ogg;
grant update any table to ogg;

源端添加表级trandata

---先通过goldgate用户登录数据库
dblogin userid ogg,password oracle
---给表添加trandata
add trandata ddling.*

五、配置源端的进程组
1、MGR管理进程组
进入E:\goldgate目录下,运行ggsci.exe

GGSCI (DB7) 2> edit param mgr
PORT 7809
DYNAMICPORTLIST  7809-7849
AUTOSTART EXTRACT *
AUTORESTART EXTRACT *, RETRIES 5, WAITMINUTES 2
PURGEOLDEXTRACTS E:\goldgate\dirdat\em*,USECHECKPOINTS, MINKEEPDAYS 5
PORT 7839 ## 通信端口7839, 源端和目标端需要保持一致。
DYNAMICPORTLIST 7840-7939 ##动态端口列表的范围从7840到7939。当制定端口被占用或者出现通信故障,管理进程将会从列表中选择下一个端口尝试连接,避免通信端口的单点故障。
AUTOSTART EXTRACT * ##当MGR进程启动后启动EXTRACT进程
AUTORESTART EXTRACT *, RETRIES 5, WAITMINUTES 2 ##当EXTRACT进程中断后尝试自动重启,每隔2分钟尝试启动一次,尝试5次。
PURGEOLDEXTRACTS /home/oracle/product/ogg_src/dirdat/*, USECHECKPOINTS, MINKEEPDAYS 5 ##定期清理dirdat路径下的本地队列(local trail)。保留期限10天,过期后自动删除。从而控制队列文件的目录不会增长过大。
LAGREPORTHOURS 1 ##每隔一小时检查各进程延时情况,并记录到goldengate report文件。
LAGINFOMINUTES 30 ##进程复制延时超过30分钟,向日志文件记录一条错误日志
LAGCRITICALMINUTES 45 ## 传输延时超过45分钟将写入警告日志

通过start mgr命令启动mgr进程,info all查看进程状态。
2、配置源端的extract进程
extract进程:
在源端用add extract命令创建一个extract进程:

GGSCI (DB7) 5>add extract exteam,tranlog begin now

用add exttrail命令创建本地trail文件,extract组负责写这部分文件,pump进程服务读它

GGSCI (DB7) 6>add exttrail ./dirdat/em,extract exteam
GGSCI (DB7) 7>edit param exteam
EXTRACT exteam
SETENV (ORACLE_SID = orcl)
USERID ogg, PASSWORD oracle
DYNAMICRESOLUTION
EXTTRAIL E:\goldgate\dirdat\em
TABLE ddling.*;

参数解释如下:

dblogin userid ogg, password ogg ##使用ogg用户登录GoldenGate
add extract ext1,tranlog,begin now ##创建主抽取进程
add exttrail /home/oracle/product/ogg_src/dirdat/sr, extract ext1 ##创建源端trail文件并指定路径
edit param ext1
##-----------------
extract ext1
SETENV(ORACLE_SID="orcl") ##设置Oracle数据库实例sid
SETENV(NLS_LANG=SIMPLIFIED CHINESE_CHINA.AL32UTF8) ##设置goldengate的字符集变量信息,此处值会覆盖操作系统级别的变量。该值需要和数据库字符集匹配一致。
userid ogg, password ogg
REPORTCOUNT EVERY 30 MINUTES, RATE ##每隔30分钟报告一次从程序开始到现在的抽取进程或者复制进程的事物记录数,并汇报进程的统计信息
DISCARDFILE /home/oracle/product/ogg_src/dirrpt/extsr.dsc, APPEND, MEGABYTES 1024 ##将执行失败的记录保存在discard file中,discard file文件记录了GoldenGate进程错误、数据库错误、GoldenGate操作等信息。该文件位于/home/oracle/product/ogg_src/dirrpt/extsr.dsc,大小为1024MB。 文件中已经包含记录的话,再后面继续追加,不删除之前的记录。
DISCARDROLLOVER AT 3:00 ## 为了防止discard file被写满,每天3:00做一次文件过期设定
EXTTRAIL /home/oracle/product/ogg_src/dirdat/sr ##队列文件路径, trail文件存放路径。
DYNAMICRESOLUTION ## 有时候开启OGG进程的时候较慢,可能是因为需要同步的表太多,OGG在开启进程之前会将需要同步的表建立一个记录并且存入到磁盘中,这样就需要耗费大量的时间。使用该参数来解决此问题。
ddl include all ##配置DDL语句也会同步
DBOPTIONS ALLOWUNUSEDCOLUMN ## 用于阻止抽取进程抽取数据时由于表含有unused列而导致进程异常终止(abend)。使用该参数,抽取进程抽取到unused列时也会向日志文件记录一条警告信息。
FETCHOPTIONS NOUSESNAPSHOT ## 默认值为 usesnapshot,表示利用数据库闪回读取数据。Nousesnapshot表示直接从原表读取相关数据。
FETCHOPTIONS FETCHPKUPDATECOLS ##当使用了HANDLECOLLISIONS时,请使用该参数。复制进程出现丢失update记录(missing update)并且更新的是主键,update将转换成insert。由于插入的记录可能不是完整的行,若要保证完整需要加入此参数
table ogg.*; ##需要复制的对象列表

3、配置源端的pump进程

GGSCI (DB7) 8>add extract pump_em,exttrailsource ./dirdat/em
GGSCI (DB7) 9>add rmttrail ./dirdat/em,extract pump_em
GGSCI (DB7) 10>edit param pump_em
EXTRACT pump_em
USERID ogg, PASSWORD oracle
RMTHOST 172.12.9.33, MGRPORT 7809
PASSTHRU
NUMFILES 5000
RMTTRAIL ./dirdat/em
--DYNAMICRESOLUTION
TABLE ddling.*;
edit param dpump1

extract dpump1
userid ogg, password ogg
SETENV(ORACLE_SID="orcl")
SETENV(NLS_LANG=SIMPLIFIED CHINESE_CHINA.AL32UTF8)
RMTHOST 192.168.66.3, mgrport 7839, COMPRESS ## 目标端主机IP,管理进程端口号,投递前压缩队列文件
PASSTHRU ##表示传输进程直接跟抽取进程交互,而不再和数据库进行交互,减少数据库资源的利用。
ddl include all
RMTTRAIL /home/oracle/product/ogg_trg/dirdat/tr ##目标端保存队列文件的目录
DYNAMICRESOLUTION ##动态解析表名
table ogg.*;
##指定Data Pump进程发送trail文件到目标端的位置(目标端trail文件添加到队列中)
add rmttrail /home/oracle/product/ogg_trg/dirdat/tr, extract dpump1

六、配置目标端的进程组
1、MGR管理进程组
进入E:\goldgate目录下,运行ggsci.exe

GGSCI (easdb) 3> edit param mgr
PORT 7809
DYNAMICPORTLIST  7809-7849
AUTOSTART REPLICAT *
AUTORESTART REPLICAT *, RETRIES 5, WAITMINUTES 2
LAGREPORTHOURS 1
LAGINFOMINUTES 30
LAGCRITICALMINUTES 45
PURGEOLDEXTRACTS E:\goldgate\dirdat\em*,usecheckpoints,minkeepdays 3
PORT 7839 ## 通信端口7839, 源端和目标端需要保持一致。
USERID ogg, PASSWORD ogg ## GoldenGate用户登录数据库的用户名和密码,密码未做加密处理。如果密码需要加密使用:GGSCI (dbtrg) 1> encrypt password pwd ,ENCRYPTKEY default 可以得到加密后的密码字符串,之后配置进程若使用加密过的密码,需要带参数(ENCRYPTKEY default)。例如:USERID ogg, PASSWORD xxx(加密过的密码) ,ENCRYPTKEY default
DYNAMICPORTLIST 7840-7939 ## ##动态端口列表的范围从7840到7939。当制定端口被占用或者出现通信故障,管理进程将会从列表中选择下一个端口尝试连接,避免通信端口的单点故障。
AUTOSTART REPLICAT * ##当MGR进程启动后启动REPLICAT进程
AUTORESTART REPLICAT *, RETRIES 5, WAITMINUTES 2 ## 当REPLICAT进程中断后尝试自动重启,每隔2分钟尝试启动一次,尝试5次。
PURGEOLDEXTRACTS /home/oracle/product/ogg_trg/dirdat/*, USECHECKPOINTS, MINKEEPDAYS 10 ##定期清理dirdat路径下的本地队列(local trail)。保留期限10天,过期后自动删除。从而控制队列文件的目录不会增长过大。
PURGEDDLHISTORY MINKEEPDAYS 7, MAXKEEPDAYS 10 ##删除DDL历史表,最小保存7天,最大保存10天。
PURGEMARKERHISTORY MINKEEPDAYS 7, MAXKEEPDAYS 10 ## 删除MARKER历史表,最小保存7天,最大保存10天。
LAGREPORTHOURS 1 ##每隔一小时检查各进程延时情况,并记录到goldengate report文件。
LAGINFOMINUTES 30 ##进程复制延时超过30分钟,向日志文件记录一条错误日志
LAGCRITICALMINUTES 45 ##传输延时超过45分钟将写入警告日志
GGSCI (easdb)  4> start mgr
Managerstarted.

查看进程状态可发现 MANAGER状态为 RUNNING:

GGSCI (easdb) 5> info all
Program     Status     Group       Lag at Chkpt  Time Since Chkpt
MANAGER     RUNNING

2、配置目标端的replicat进程
先设置GLOBALS参数文件

GGSCI (easdb as ogg@orcl) 4> dblogin userid ogg,password oracle
Successfully logged into database.
GGSCI (easdb as ogg@orcl) 5> add checkpointtable ogg.oggckpt

Successfully created checkpoint table ogg.oggckpt.
GGSCI (easdb as ogg@orcl) 6> edit params ./GLOBALS

配置如下:
CHECKPOINTTABLE ogg.oggckpt

exit //退出,以使全局参数生效

创建完毕后,会在OGG_D表空间创建以下两张表,可用ogg用户登陆查看:

SQL> conn ogg/oracle
Connected.
SQL> select * from tab;
TNAME                TABTYPE                CLUSTERID
-------------------- --------------------- ----------
OGGCKPT              TABLE
OGGCKPT_LOX          TABLE

配置replicat进程

GGSCI (easdb as ogg@orcl) 7>add replicat repem,exttrail ./dirdat/em
GGSCI (easdb as ogg@orcl) 8>edit params repem
REPLICAT repem
SETENV (ORACLE_SID=orcl)
USERID ogg, PASSWORD oracle
REPERROR DEFAULT, Discard
ASSUMETARGETDEFS
DISCARDFILE ./dirrpt/repeam.dsc, APPEND, MEGABYTES 2000
dynamicresolution
MAP ddling.*, TARGET ddling.*;
##创建replicat进程
add replicat rep1, exttrail /home/oracle/product/ogg_trg/dirdat/tr, checkpointtable ogg.checkpoints
edit param rep1
#------------------
REPLICAT rep1
SETENV(ORACLE_SID="orcl")
SETENV(NLS_LANG=SIMPLIFIED CHINESE_CHINA.AL32UTF8)
USERID ogg, PASSWORD ogg
REPORT AT 06:00 ##每天06:00定期生成一个report文件
REPORTCOUNT EVERY 30 MINUTES, RATE ##每隔30分钟报告一次从程序开始到现在的抽取进程或者复制进程的事物记录数,并汇报进程的统计信息
REPORTROLLOVER AT 02:00 ##为了防止report file被写满,每天2:00做一次文件过期设定
REPERROR DEFAULT, ABEND ## 除了特殊指定的REPERROR语句,报告所有复制期间出现的错误,回滚非正常中断的事物和进程。遇到不能处理的错误就自动abend,启动需要人工干预处理
ALLOWNOOPUPDATES ##当源表有排除列情况或者有目标表不存在的列时,当更新这列goldengate默认报错。应用该参数后,即可让goldengate生成一条警告信息而不是报错。
ASSUMETARGETDEFS ##使用ASSUMETARGETDEFS参数时,用MAP语句中指定的生产库源表和灾备端目标表具有相同的列结构。它指示的Oracle GoldenGate不在生产端查找源表的结构定义。
HANDLECOLLISIONS ##用于goldengate自动过滤不能出来的冲突记录,为了严格保证数据一致性
DISCARDFILE /home/oracle/product/ogg_trg/dirrpt/repsa.dsc, APPEND, MEGABYTES 1024 ##将执行失败的记录保存在discard file中,discard file文件记录了GoldenGate进程错误、数据库错误、GoldenGate操作等信息。该文件位于./dirrpt/repsa.dsc,大小为1024MB。 文件中已经包含记录的话,再后面继续追加,不删除之前的记录。
DISCARDROLLOVER AT 02:00 ##为了防止discard file被写满,每天2:00做一次文件过期设定
ddl include all ##设置DDL语句也会同步
ddlerror default ignore retryop ##开启DDL复制后,目标端Replicat进程参数文件中必须配置忽略或者过滤DDLERROR的参数
MAP ogg.*, target ogg.*; ##对应需要复制的对象,默认一一对应传输进程

至此,源端和目标端的所有进程配置完毕,接下来就是启动进程和初始化数据库。

备份数据库准备:
先查看当前数据库的scn,并记录下来

SYS@SIT> select current_scn from v$database;
	CURRENT_SCNacle
	-----------
   22482934597   ---千万记住,在后面启动replicat进程需要用到;

在E盘创建目录dir,并授权

SYS@SIT> create directory MY_DIR as 'E:\dir';
Directory created.
SYS@SIT> grant read,write on directory MY_DIR to system;

创建完毕后,开始备份数据库(以schemsa备份数据库)

expdp system/oracle schemas=ddling  directory=MY_DIR dumpfile=ddling.dmp logfile=ddling.log flashback_scn=723538

备份完毕后,文件存放在E:\dir目录下。

目标端同样在E盘创建目录dir,并授权,操作和源端一样。

接下来就可以通过impdp命令还原数据库

impdp system/oracle directory=MY_DIR dumpfile=ddling.dmp logfile=ddling.log

最后进行验证。文章来源地址https://www.toymoban.com/news/detail-443004.html

到了这里,关于windows平台goldgate同步oracle数据库的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • windows 环境下使用脚本备份 oracle 数据库数据

    当我们的系统部署在 windows 上时,且使用的数据库为 oracle 时,需要将数据库的数据定时备份。 提示:以下是本篇文章正文内容,下面案例可供参考 搜索任务计划程序 创建任务 新建触发器,执行时间设置好 新建操作,选择bat脚本文件 上述基本步骤创建完成之后便可以看到

    2024年01月17日
    浏览(61)
  • SQL Server数据库如何添加Oracle链接服务器(Windows系统)

    官方下载地址:https://www.oracle.com/technetwork/topics/dotnet/downloads/odacdeploy-4242173.html 1.2.1 下载的压缩包解压位置   比如我直接放到D盘根目录 1.2.2 接着用管理员运行Cmd 此处一定要用管理员运行,否则会报错 使用管理员打开终端,运行如下命令: 在系统环境变量中,为Path添加“

    2024年02月14日
    浏览(84)
  • C++ mySQL数据库连接池(windows平台)

    新手学了C++多线程,看了些资料练手写了C++数据库连接池小项目,自己的源码地址 MySQL数据库编程、单例模式、queue队列容器、C++11多线程编程、线程互斥、线程同步通信和 unique_lock、基于CAS的原子整形、智能指针shared_ptr、lambda表达式、生产者-消费者线程模型 为了提高MySQL数

    2024年03月09日
    浏览(56)
  • Windows平台上达梦数据库的ODBC安装与配置

    最近很多公司都在响应信创,需要切换到国产数据库,然而很多数据库的一些基础组件的使用都没有一个很明确的官方文档。为了避免更多的人踩坑,本人将踩过的坑总结成博文,分享给大家。在此文中我将一步步带领大家安装和配置达梦数据库的ODBC驱动。 达梦数据库没有

    2024年02月03日
    浏览(40)
  • Spring Boot进阶(54):Windows 平台安装 MongoDB数据库 | 超级详细,建议收藏

            MongoDB是一种流行的文档型NoSQL数据库,它具有高性能、高可用性、可伸缩性等优点,因此被广泛应用于Web应用程序、分布式系统、云计算等领域。在Windows系统中安装和使用MongoDB也非常简单,只需要按照官方文档提供的步骤进行操作即可。在本篇文章中,我们将介

    2024年02月16日
    浏览(60)
  • 数据库数据恢复-Oracle数据库数据恢复案例

    数据库数据恢复环境: Oracle数据库ASM磁盘组有4块成员盘。 数据库故障分析: Oracle数据库ASM磁盘组掉线 ,ASM实例无法挂载,用户联系我们要求恢复oracle数据库。 数据库数据恢复工程师拿到磁盘后,先将所有磁盘以只读方式进行扇区级别的镜像备份,后续的数据分析和数据恢

    2024年02月13日
    浏览(67)
  • Oracle数据库

    ①层次型数据库 ②网状型数据库 ③关系型数据库(主要介绍) E-R图:属性(椭圆形),实体(矩形),联系(菱形-一对一、一对多、多对多) 注:有的联系也有属性 关系型数据库的设计范式: 第一范式(1NF):属性不可再分,字段保证原子性 第二范式(2NF):在满足1

    2024年02月08日
    浏览(59)
  • Oracle 数据库恢复删除的数据

    需求描述: 同事让删除脏数据,结果删错了,需要恢复数据 思路: 利用闪回恢复数据只能恢复15分钟之内的,后面undo空间会被重写,就恢复不了,所以删除数据后,要谨慎再三确认,若发现不对,则利用闪回恢复 先查询删除时的时间节点的快照 查到时间戳之后 闪回恢复数

    2024年01月24日
    浏览(71)
  • 【数据库】日常使用PL/SQL 登录ORACLE 数据库查询数据

    一、PL/SQL 登录方式 username: ##访问数据库的账号 password: ##访问数据库的密码 Databse: ##数据库IP地址/实例名 数据库集群心跳地址/实例名 Connect as : ##Normal,如果使用sysdba账户登录选择SYSDBA 二、PL/SQL使用SQL语句查询 点击上方导航栏,New,选择SQL Window,即可再次输入要查询的

    2024年02月19日
    浏览(70)
  • 【Oracle】收集Oracle数据库内存相关的信息

    【声明】文章仅供学习交流,观点代表个人,与任何公司无关。 编辑|SQL和数据库技术(ID:SQLplusDB) Oracle数据库包含多个内存区域,每个区域都包含多个子组件。 Oracle Database Memory Structures 根据具体问题的需要,可以通过如下命令收集Oracle数据库内存相关的信息。 例: 注:SET

    2024年01月21日
    浏览(71)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包