我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何实现OGG单到单部署

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何实现OGG单到单部署

这篇文章主要介绍了如何实现OGG单到单部署,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

环境介绍:
项目源环境目标环境
操作系统:Oracle Linux Server release 6.5
主机名:ogg1,ogg2
IP地址:ogg1:192.168.1.11,ogg2:192.168.1.12
数据库及版本:11.2.0.4
数据库字符集:AL32UTF8
SID:ogg1:mtx,ogg2:ymx
OGG用户:ogg1:ogg,ogg2:ogg
OGG版本:11.2.1.0.1
归档模式:archive log


部署步骤:
1.创建OGG操作系统用户(非必须,使用Oracle用户也可以)
useradd -u 2100 -g oinstall -G dba ogg
passwd ogg2008


2.修改操作系统用户的环境变量,因为本环境没有对OGG创建操作系统用户,直接使用的Oracle用户,所以环境变量为Oracle用户的环境变量
export PATH
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2/db
export ORACLE_SID=mtx
export ORACLE_TERM=xterm
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib64:/usr/lib64:/usr/local/lib64:/usr/X11R6/lib64
export CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export NLS_LANG="AMERICAN_AMERICA.AL32UTF8"
注意:如果是新创建的操作系统用户,配置环境变量之后要重载一下:source .bash_profile


3.两台服务器创建OGG安装路径并更改权限
mkdir /u01/app/ogg -pv
chown oracle.oinstall /u01/app/ogg -R


4.将OGG安装文件上传到两台服务器的OGG路径下,本人的路径为“/u01/app/ogg”
OGG软件的下载网址在Oracle官网,https://edelivery.oracle.com/osdc/faces/SearchSoftware 找到对应版本即可。
解压上传的文件“V34339-01.zip”,这时你会看到路径下又会生成其他多个文件,包括文档、使用说明等
其中有一个tar包“fbo_ggs_Linux_x64_ora11g_64bit.tar”,我们需要解压这个tar文件。
[oracle@ogg1 ogg]$ unzip V34339-01.zip (两个服务器都要做)
Archive:  V34339-01.zip
  inflating: fbo_ggs_Linux_x64_ora11g_64bit.tar  
  inflating: Oracle_GoldenGate_11.2.1.0.3_README.doc  
  inflating: Oracle GoldenGate_11.2.1.0.3_README.txt  
  inflating: OGG_WinUnix_Rel_Notes_11.2.1.0.3.pdf
[oracle@ogg1 ogg]$ tar -xvf fbo_ggs_Linux_x64_ora11g_64bit.tar(两个服务器都要做)


5.解压成功之后,登录OGG测试:
[oracle@ogg1 ogg]$ ./ggsci


Oracle GoldenGate Command Interpreter for Oracle
Version 11.2.1.0.3 14400833 OGGCORE_11.2.1.0.3_PLATFORMS_120823.1258_FBO
Linux, x64, 64bit (optimized), Oracle 11g on Aug 23 2012 20:20:21


Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.


GGSCI (ogg1) 1> 
注意:如果LD_LIBRARY_PATH变量设置正确,会像上面演示一样正确进入命令行,如果提示找不到so文件,就需要查看LD_LIBRARY_PATH变量是否配置正确


6.创建OGG的管理目录(两端都要做)
GGSCI (ogg1) 1> create subdirs


Creating subdirectories under current directory /u01/app/ogg


Parameter files                /u01/app/ogg/dirprm: already exists--存放OGG参数的配置信息    
Report files                   /u01/app/ogg/dirrpt: created--存放进程报告文件
Checkpoint files               /u01/app/ogg/dirchk: created--存放检查点文件
Process status files           /u01/app/ogg/dirpcs: created--存放进程状态文件
SQL script files               /u01/app/ogg/dirsql: created--存放sql脚本文件
Database definitions files     /u01/app/ogg/dirdef: created--存放defgen工具生成的数据定义文件
Extract data files             /u01/app/ogg/dirdat: created--存放Trail文件,也就是捕获进程的文件
Temporary files                /u01/app/ogg/dirtmp: created--当事物需要的内存超过已分配内存时,默认存储在这个目录
Stdout files                   /u01/app/ogg/dirout: created


7.源端创建OGG表空间和OGG用户
Oracle建议使用单独的表空间存放OGG数据,表空间大小可以自己定义,也可以设置数据文件是否自动扩展,建议自动扩展
SYS@mtx> create tablespace ogg datafile '/u01/app/oracle/oradata/mtx/ogg01.dbf'   
  2  size 1024m
  3  autoextend on;


SYS@mtx> create user ogg identified by ogg2008 default tablespace ogg;


8.给予ogg用户相应的权限,有些人为了省事,直接给OGG用户DBA的权限
SYS@mtx> grant CONNECT, RESOURCE to ogg;
SYS@mtx> grant SELECT ANY DICTIONARY, SELECT ANY TABLE to ogg;
SYS@mtx> grant ALTER ANY TABLE to ogg;
SYS@mtx> grant FLASHBACK ANY TABLE to ogg;
SYS@mtx> grant EXECUTE on DBMS_FLASHBACK to ogg;
SYS@mtx> grant insert any table to ogg;
SYS@mtx> grant update any table to ogg;
SYS@mtx> grant delete any table to ogg;
或者
SYS@mtx> grant resource,connect,dba to ogg;


9.建立测试表
源端基于scott用户的EMP和DEPT表建立相应的测试表,包括其中的数据
SCOTT@mtx> create table emp_ogg as select * from emp;


Table created.


SCOTT@mtx> create table dept_ogg as select * from dept;


Table created.


目标端基于scott用户的EMP和DEPT表建立相应的测试表,不包含数据
SCOTT@ymx> create table emp_ogg as select * from emp where 1=2;   


Table created.


SCOTT@ymx> create table dept_ogg as select * from dept where 1=2;


Table created.


源端和目标端分别在两个测试表上建立主键或唯一键约束
SCOTT@mtx> alter table EMP_OGG add constraint PK_EMPNO_OGG primary key (EMPNO);


Table altered.


SCOTT@mtx> alter table DEPT_OGG add constraint PK_DEPTNO_OGG primary key (DEPTNO);


Table altered.


10.源端添加最小补充日志和表级补充日志


打开最小补充日志:
SYS@mtx> SELECT SUPPLEMENTAL_LOG_DATA_MIN FROM V$DATABASE;


SUPPLEME
--------
NO


SYS@mtx> alter database add supplemental log data;


Database altered.


打开表级补充日志(需要以最小补充日志为前提)
GGSCI (ogg1) 1> dblogin userid ogg,password ogg2008
Successfully logged into database.


GGSCI (ogg1) 2> add trandata scott.emp_ogg


Logging of supplemental redo data enabled for table SCOTT.EMP_OGG.


GGSCI (ogg1) 3> add trandata scott.dept_ogg


Logging of supplemental redo data enabled for table SCOTT.DEPT_OGG.




SYS@mtx> alter table scott.emp_ogg logging;


Table altered.


SYS@mtx> alter table scott.dept_ogg logging;


Table altered.


11.配置MGR管理进程
源端和目标端:
GGSCI (ogg1) 1> edit param mgr
PORT 7809--服务监听端口,默认7809
DYNAMICPORTLIST 7840-7939--动态端口,指定端口不可用时,从列表中选择一个作为可用端口,可以制定最大256个
AUTORESTART EXTRACT *, RETRIES 5, WAITMINUTES 3--自动重启参数设置,本处设置表示每3分钟尝试重新启动所有EXTRACT进程,共尝试5次
PURGEOLDEXTRACTS ./dirdat/*, USECHECKPOINTS, minkeepdays 7--定期清理trail文件,本处设置表示对超过7天的trail文件进行删除,从此参数也能看到trail文件的位置
LAGREPORTHOURS 1--定义延迟预警机制,本处设置每隔1小时检查extract的延迟情况
LAGINFOMINUTES 30--定义延迟预警机制,本处设置超过了30分钟就把延迟新信息记录到错误日志中
LAGCRITICALMINUTES 45--定义延迟预警机制,本处设置延迟超过45分钟,则把它作为警告写到错误日志中


启动MGR管理进程
GGSCI (ogg1) 2> start mgr


12.配置抽取进程
添加捕获进程:
GGSCI (ogg1) 4> add extract ext1,tranlog,begin now   
EXTRACT added.
指定捕获进程生成的trail文件所在路径
GGSCI (ogg1) 7> add exttrail /u01/app/ogg/dirdat/ea, extract ext1, megabytes 100
EXTTRAIL added.
配置进程的参数文件
GGSCI (ogg1) 6> edit param ext1
extrail ext1
SETENV (ORACLE_SID="mtx")
SETENV (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
USERID ogg , PASSWORD ogg2008配置
EXTTRAIL /u01/app/ogg/dirdat/ea
NUMFILES 3000
GETTRUNCATES
DYNAMICRESOLUTION
table scott.dept_ogg;
table scott.emp_ogg;


启动捕获进程
GGSCI (ogg1) 31> start ext1


Sending START request to MANAGER ...
EXTRACT EXT1 starting


13.配置传输进程
添加传输进程:
GGSCI (ogg1) 16> add extract pum1,exttrailsource /u01/app/ogg/dirdat/ea
EXTRACT added.
指定传输进程的trail文件路径
GGSCI (ogg1) 18> add rmttrail /u01/app/ogg/dirdat/pm,extract pum1,megabytes 100
RMTTRAIL added.
配置进程的参数文件
extract pum1
SETENV (ORACLE_SID="mtx")
SETENV (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
RMTHOST  192.168.1.12,MGRPORT 7809, TCPBUFSIZE 100000, TCPFLUSHBYTES 300000
CACHEMGR CACHEBUFFERSIZE 64KB, CACHESIZE 1024MB, CACHEDIRECTORY /u01/app/ogg/dirtmp
rmttrail /u01/app/ogg/dirdat/pm
PASSTHRU
DYNAMICRESOLUTION
TABLE scott.*;


启动传输进程


GGSCI (ogg1) 32> start pum1   


Sending START request to MANAGER ...
EXTRACT PUM1 starting


14.做初始化操作
查询当前数据库的系统改变号
SYS@mtx> select to_char(sysdate,'yyyy-mm-dd hh34:mi:ss') ,dbms_flashback.get_system_change_number || '' from dual;
15158302130192
SYSDATE            DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER|
------------------ ----------------------------------------
13-JUL-17          286349


按SCN号导出两个表的数据,用数据泵的方式,目录对象需要自己创建
expdp ogg/ogg2008 directory=pump exclude=grant dumpfile=dept_ogg.dmp tables=SCOTT.DEPT_OGG flashback_scn=286349
expdp ogg/ogg2008 directory=pump exclude=grant dumpfile=emp_ogg.dmp tables=SCOTT.EMP_OGG flashback_scn=286349


通过SCP或者FTP的方式将导出的数据文件传送到目标端做导入操作
impdp ogg/ogg2008 directory=pump dumpfile=dept_ogg.dmp tables=SCOTT.DEPT_OGG table_exists_action=append
impdp ogg/ogg2008 directory=pump dumpfile=emp_ogg.dmp tables=SCOTT.EMP_OGG table_exists_action=append


--15.目标端配置OGG的检查点
--此步骤不是必须的,但是为了让OGG网络中断、服务器宕机、掉电等在突发情况下也能正确断点续传,Oracle建议配置OGG的检查点队列


--GGSCI (ogg2) 75> edit param ./GLOBALS
--checkpointtable ogg.checkpoint_tab


--GGSCI (ogg2) 7> add checkpointtable ogg.checkpoint_tab


--Successfully created checkpoint table ogg.checkpoint_tab.


16.目标端配置replycat进程
GGSCI (ogg2) 8> add replicat rep1 exttrail /u01/app/ogg/dirdat/pm, checkpointtable ogg.checkpoint_tab
REPLICAT added.


GGSCI (ogg2) 12> edit  param rep1
replicat rep1
SETENV (ORACLE_SID="ymx")
SETENV (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
USERID ogg , PASSWORD ogg2008
sqlexec "Alter session set commit_write=nowait"
DISCARDFILE /u01/app/ogg/dirrpt/rep1err.dsc,append,megabytes 100
ASSUMETARGETDEFS
ALLOWNOOPUPDATES
DYNAMICRESOLUTION
NUMFILES 3000
EOFDELAYCSECS 30
GETTRUNCATES
BATCHSQL BATCHESPERQUEUE 200,OPSPERBATCH 2000
MAP SCOTT.DEPT_OGG, TARGET SCOTT.DEPT_OGG*;
MAP SCOTT.EMP_OGG, TARGET SCOTT.EMP_OGG*;


开启replycat进程
GGSCI (ogg2) 18> start replicat rep1,aftercsn 286349


17.测试效果
源端:
SCOTT@mtx> select * from dept_ogg;


    DEPTNO DNAME          LOC
---------- -------------- -------------
        10 ACCOUNTING     NEW YORK
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     BOSTON


SCOTT@mtx> insert into dept_ogg values (50,'TEC','BEIJING');


1 row created.


SCOTT@mtx> commit;


Commit complete.


源端捕获到的结果:
GGSCI (ogg1) 71> stats ext1


Sending STATS request to EXTRACT EXT1 ...


Start of Statistics at 2017-07-13 14:39:28.


Output to /u01/app/ogg/dirdat/ea:


Extracting from SCOTT.DEPT_OGG to SCOTT.DEPT_OGG:


*** Total statistics since 2017-07-13 14:37:03 ***
        Total inserts                                      1.00
        Total updates                                      0.00
        Total deletes                                      0.00
        Total discards                                     0.00
        Total operations                                   1.00


*** Daily statistics since 2017-07-13 14:37:03 ***
        Total inserts                                      1.00
        Total updates                                      0.00
        Total deletes                                      0.00
        Total discards                                     0.00
        Total operations                                   1.00


*** Hourly statistics since 2017-07-13 14:37:03 ***
        Total inserts                                      1.00
        Total updates                                      0.00
        Total deletes                                      0.00
        Total discards                                     0.00
        Total operations                                   1.00


*** Latest statistics since 2017-07-13 14:37:03 ***
        Total inserts                                      1.00
        Total updates                                      0.00
        Total deletes                                      0.00
        Total discards                                     0.00
        Total operations                                   1.00


End of Statistics.




GGSCI (ogg1) 72> stats pum1


Sending STATS request to EXTRACT PUM1 ...


Start of Statistics at 2017-07-13 14:39:33.


Output to /u01/app/ogg/dirdat/pm:


Extracting from SCOTT.DEPT_OGG to SCOTT.DEPT_OGG:


*** Total statistics since 2017-07-13 14:37:03 ***
        Total inserts                                      1.00
        Total updates                                      0.00
        Total deletes                                      0.00
        Total discards                                     0.00
        Total operations                                   1.00


*** Daily statistics since 2017-07-13 14:37:03 ***
        Total inserts                                      1.00
        Total updates                                      0.00
        Total deletes                                      0.00
        Total discards                                     0.00
        Total operations                                   1.00


*** Hourly statistics since 2017-07-13 14:37:03 ***
        Total inserts                                      1.00
        Total updates                                      0.00
        Total deletes                                      0.00
        Total discards                                     0.00
        Total operations                                   1.00


*** Latest statistics since 2017-07-13 14:37:03 ***
        Total inserts                                      1.00
        Total updates                                      0.00
        Total deletes                                      0.00
        Total discards                                     0.00
        Total operations                                   1.00


End of Statistics.


目标端:
GGSCI (ogg2) 38> stats rep1


Sending STATS request to REPLICAT REP1 ...


Start of Statistics at 2017-07-13 18:11:18.


Replicating from SCOTT.DEPT_OGG to SCOTT.DEPT_OGG:


*** Total statistics since 2017-07-13 18:11:11 ***
        Total inserts                                      1.00
        Total updates                                      0.00
        Total deletes                                      0.00
        Total discards                                     0.00
        Total operations                                   1.00


*** Daily statistics since 2017-07-13 18:11:11 ***
        Total inserts                                      1.00
        Total updates                                      0.00
        Total deletes                                      0.00
        Total discards                                     0.00
        Total operations                                   1.00


*** Hourly statistics since 2017-07-13 18:11:11 ***
        Total inserts                                      1.00
        Total updates                                      0.00
        Total deletes                                      0.00
        Total discards                                     0.00
        Total operations                                   1.00


*** Latest statistics since 2017-07-13 18:11:11 ***
        Total inserts                                      1.00
        Total updates                                      0.00
        Total deletes                                      0.00
        Total discards                                     0.00
        Total operations                                   1.00


End of Statistics.


目标端将数据应用到数据库中的结果:
SCOTT@ymx> select * from dept_ogg;


    DEPTNO DNAME          LOC
---------- -------------- -------------
        10 ACCOUNTING     NEW YORK
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     BOSTON
        50 TEC            BEIJING


感谢你能够认真阅读完这篇文章,希望小编分享的“如何实现OGG单到单部署”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何实现OGG单到单部署

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Redis 单节点部署的实现

目录第一步 下载Redis第二步 安装Redis第三步 修改配置文件第四步 启动服务第一步 下载Redis下载地址:http://www.redis.cn/download/第二步 安装Redis[root@localhost /]#
2022-06-27

docker部署Nestjs的简单配置实现

Docker部署NestJS的简单配置实现,可实现应用程序的可移植性、一致性和可扩展性。通过创建Dockerfile、构建镜像并运行容器,即可在本地环境中部署NestJS应用程序。还可以将其部署到云平台,如DockerHub、ECS和GKE。需要注意镜像版本、优化Dockerfile、使用适当的命令并监控资源使用情况。
docker部署Nestjs的简单配置实现
2024-04-02

单机Linux如何部署多IP squid3

本篇内容介绍了“单机Linux如何部署多IP squid3”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!网络爬虫最终要的资源就是IP地址,尤
2023-06-27

Rancher Server单容器如何部署使用外部数据库

这期内容当中小编将会给大家带来有关Rancher Server单容器如何部署使用外部数据库,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Rancher 除了使用内部的数据库,你可以启动一个Rancher
2023-06-19

eclipse如何实现热部署

在Eclipse中实现热部署有以下几种方法:使用JRebel插件:JRebel是一款商业插件,可以实现无需重启应用程序的热部署。你可以在Eclipse中安装JRebel插件,然后配置你的项目以使用JRebel进行热部署。使用Spring B
2023-10-26

Nginx热部署如何实现

小编给大家分享一下Nginx热部署如何实现,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!关闭防火墙,让本地可以通过浏览器访问Nginx服务。[root@local
2023-06-22

Android如何实现底部缓慢弹出菜单

这篇文章主要介绍了Android如何实现底部缓慢弹出菜单,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。项目要求要做一个从底部缓慢弹出一个Button Menu 开始编码: M
2023-05-30

java静态内部类单例模式如何实现

在Java中,静态内部类的单例模式可以通过以下步骤实现:创建一个私有的静态内部类,命名为SingletonHolder,并在该类中声明一个私有的静态final的外部类实例。静态内部类的定义如下:private static class Si
2023-10-24

如何利用Docker部署一个简单的springboot项目

本文介绍了如何使用Docker部署SpringBoot项目。步骤包括:创建Dockerfile构建Docker镜像运行Docker容器配置Nginx代理验证部署延伸阅读部分提供了相关指南和文档链接。常见问题解答了解释了如何查看日志、停止容器以及更新代码。
如何利用Docker部署一个简单的springboot项目
2024-04-02

php如何实现单例

这篇文章主要介绍了php如何实现单例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。php能实现单例,其实现一个单例的方法:1、申请一个私有的静态成员变量来保存该类的唯一实例;
2023-06-14

MPLS-VPN是什么?如何部署一个简单的MPLS-VPN?

  MPLS-VPN在大型企业和运营商内部运用的非常广泛,是MPLS技术与VPN的结合。下面给大家介绍一些有关MPLS-VPN的知识。  1、MPLS-VPN简介  MPLS-VPN(多协议标记转换)技术的精华在于快速标签交换,通过将查找标签列表替换传统的路由表递归查询,从而大大加速了数据包传输。在需要处理巨大数据量的
MPLS-VPN是什么?如何部署一个简单的MPLS-VPN?
2024-04-18

编程热搜

目录