A. 安装需求

(1)内存要求

GoldenGate对操作系统内存的需求主要取决于Extract和Replicat进程数,一般建议>2G。

(2)DISK空间需求

  由于要数据库必须设置为归档模式,所以要求至少保存7天以上的日志,建议剩余空间在10G~100G之间。

(3)对于RAC环境

GoldenGate的相关软件和工作目录需要配置在shared disk环境中,从而保证对所有node都是可用的,从任何一个node都可以启动GoldenGate的进程,当其中一个node出现异常时,可以在剩余的node启动而无须修改任何配置参数。否则如果运行在单个node上的话,需要将剩余node中的归档日志通过一定的技术共享出来并加载到GoldenGate运行节点。

对于RAC环境,GoldenGate要求所有node必须保持时钟同步,同时必须保持所有RAC node和运行extract进程的node节点保持时钟同步。因为GoldenGate会比较本地的系统时间和commit的时间戳。所以不能忽略这个设置。否则可能导致数据复制的紊乱。

本次测试环境:

环境:RHEL5U4—64

Oracle:10.2.0.1.0-64,全部都开启了归档,字符集一致

用户:scott,表结构都在,target表没有数据,源表有数据

Ogg也是64位的最新版本;

B. 安装过程

1、 oracle用户登录

#su - oracle

2、 在/u01目录下创建oraclegoldengate目录

$ cd  /u01/app/oracle

$ mkdir  /u01/app/oracle/ogg11

3、 将解压好的goldengate文件解压到ogg11目录中

$ cd  /u01/app/oracle/ogg11

$ tar  xvf  /soft/fbo_ggs_Linux_x64_ora10g_64bit.tar   //将其它目录下的压缩包中的文件,解压到当前目录下

-------------------------------------------------------------------------------------------

上述操作可以概括为,图形化取得,解压的最终ogg安装文件夹,放到一个位置,改变文件夹的拥有者为oracle.oinstall 就可以了。 这样oracle用户就可以操作了。。。

-------------------------------------------------------------------------------------------

4、 配置oracle用户的环境变量.Bash_profile文件

TMP=/tmp;export TMP

TMPDIR=$TMP;export TMPDIR

ORACLE_BASE=/u01/app/oracle;export ORACLE_BASE

ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1;export ORACLE_HOME

ORACLE_SID=ogg1;export ORACLE_SID

LD_LIBRARY_PATH=/ogg:$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH

PATH=/ogg:$ORACLE_HOME/bin:$PATH; export PATH

注意:

除了红字字体,皆为oracle用户的原先环境变量,红色字体是后加的,给ogg使用的环境变量。

紫色的为数据库的sid ,这里是源端的数据库SID,为了方便识别数据库source端和target端。

5、 执行ggsci命令(通常是在OGG11文件夹下执行)

$ ggsci

GGSCI (localhost.localdomain) 1>create subdirs    //创建初始化文件

GGSCI (localhost.localdomain) 1>quit      //退出,安装完成

C. 配置数据库(2个数据库都要配)

1、 创建ogg数据库用户(2个数据库)

这里我们使用默认的SCOTT用户所以不用创建用户;

2、 Sql> @demo_ora_create   创建试验表(在两个scott用户下执行这脚本,各生成2个空表)

3、 Sql> @demo_ora_insert    在源端导入数据(目标端不用执行此脚本)

先进入/ogg目录 ,然后再sqlplus,否则要在脚本前加上@/ogg/xxx.sql

4、 数据库开启redo额外信息功能(源端配置)

sys> alter database add supplemental log data; 将额外的信息(除了rowid之外的日志信息)添加到redo日志里面。

sys> alter system switch logfile;  切换日志文件

sys> select supplemental_log_data_min from v$database; 检查是否开启(ogg必须开启,ogg依靠这个额外信息来进行工作)

sys>exit

5、 Ogg配置(源)

Ggsci> dblogin userid system,password oracle  登陆到oracle数据库

*Ggsci> add trandatascott.tcustmer指定scott用户schema下tcustmer表的额外信息添加到redo日志中,这样ogg就能捕获分析传到远端,否则数据库开启的附加信息也没有意义,下同;

*Ggsci> add trandata scott.tcustord   指定scott用户schema下tcustord表的额外信息添加到redo日志中

小提示: 如果所有表都要同步,可以使用SCOTT.*来表示哦^.^

添加完成之后可以看到完成状态

GGSCI (ogg1) 4> info trandata scott.*

Logging of supplemental redo log data is disabled for table SCOTT.BONUS.

Logging of supplemental redo log data is disabled for table SCOTT.DEPT.

Logging of supplemental redo log data is disabled for table SCOTT.EMP.

Logging of supplemental redo log data is disabled for table SCOTT.SALGRADE.

Logging of supplemental redo log data is enabled for table SCOTT.TCUSTMER

Logging of supplemental redo log data is enabled for table SCOTT.TCUSTORD

a、配置ogg管理进程(2个端都要执行)

Ggsci> edit params mgr  à

port 7809    编辑端口7809(默认)

GGSCI> START MGR                      启动管理进程

GGSCI> INFO MGR                       查看管理进程

b、增加extract进程(source端,初始化进程)

Ggsci> add extract einikk, sourceistable

增加抽取进程einixx,eini为规定格式XX随便写,sourceistable表示一次全部抽取出来,是初始化操作

c、编辑extract进程

GGSCI> edit params einikk  为这个抽取组增加一个配置文件(大小写皆可)

extract einikk

userid system, password "111111"

rmthost 192.168.1.31, mgrport 7809

rmttask replicat,group rinikk

table scott.*;

d、 增加replicat进程(target端配置,接收进程)

Ggsci> add replicat rinikk, specialrun

e、 编辑replication进程(target端)

Ggsci> edit params rinikk

replicat rinikk

assumetargetdefs

userid system, password 111111

discardfile ./dirrpt/rinikk.dsc, purge

map scott.*, target scott.*;

f、 启动replication进程(target端)

Ggsci> start replicat rinikk

g、 启动extract进程(source端)

Ggsci> start extract einikk

注意:初始化进程,在info all里面是看不到进程状态的,可以使用view report einikk来观察初始化进程的执行情况。当然了,这个是需要等待一会的,立刻看是没有东西的。

1、 新增extract进程(source端)

Ggsci>add extract eorakk,  tranlog,  begin now,  threads 1

--ora表示联机,tranlog表示 从日志抓取,begin now 现在就抓取,threads 1 表示只有1个实例源

2、 编辑extract进程参数文件(source端)

Ggsci> edit params eorakk

extract  eorakk

userid system, password 111111

rmthost 192.168.1.31, mgrport 7809

rmttrail ./dirdat/kk这个是远端的trail位置,不是本地

table scott.*;

3、 新增远程trail文件(source端)

Ggsci> add rmttrail ./dirdat/kk,  extract eorakk,  megabytes 5

./dirdat/kk远程的trail文件路径(需要执行命令的时候,在/ogg目录下)

extract eorakk 代表远程trail文件对应的本地extract进程

megabytes 5 代表每个文件大小为5M,不指定就是10M

4、 Start extract eorakk process(source node)

Ggsci> start extract eorakk

Tips: when start eorakk extract process ,wait a moment, you will see the rmttrail file from rmt_computer(command: ls /ogg/dirdat/). And there is not anything before start extract eorakk process ^.^

5、 Edit global params(target node)

Ggsci> edit  params  ./GLOBALS                   全局英文一定要大写,否则必定出错!

checkpointtable system.scottchkpttable如果权限足够,最好放在对应的用户下

6、 Connect oracle from ggsci(target node)

Ggsci> dblogin userid system, password 111111连接数据库

Ggsci> add checkpointtable增加专用检查点表

7、 Add replicat rorakk process(target node)

Ggsci> add replicat rorakk,  exttrail  ./dirdat/kk

exttrail  ./dirdat/kk指定本进程的本地的接收trail文件为 ./dirdat/kk

8、 Edit replicat rorakk params(target node)

Ggsci> edit params rorakk

replicat rorakk

userid system, password 111111

handlecollisions当目标端已有数据时,略过重复数据错误

assumetargetdefs说明源和目标的表结构完全相同

discardfile ./dirrpt/rorakk.dsc, purge

map scott.*, target scott.*;

9、 Start replicat rorakk process(target node)

Ggsci> start replicat rorakk

至此,ogg单向DML复制配置完成,去源端数据库修改一下,再提交,然后再来target端看看数据库里面的数据是不是被同步了,很简单吧^o^

进阶设置:

1、 Source端配置

配置MGR

Ggsci> edit params mgr              source端和target端都要配置

port 7809

dynamicportlist 7800-8000当端口无效的时候,自动切换其他端口。

purgeoldextracts./dirdat/*, usecheckpoints, minkeepdays 7自动清理过期(7天)的trail文件

autorestart extract *, waitminutes 2, retries 5

-- 指定Extract/Replicat进程的自动重启(每次尝试时间间隔为2秒,最多尝试5次)

--会有警告出现,但是没有关系,以上设置正常可用;

启动MGR

Ggsci> start mgr

新增extract进程

Ggsci> add extract eorakk,  tranlog,  begin now,  threads 1

编辑Extract文件

Ggsci> edit extract eorakk

extract  eorakk

userid system, password 111111

exttrail ./dirdat/dd

table scott.*;

增加本地trail文件

ggsci> add extrail ./dirdat/dd, extract eorakk    本地trail文件名和远程的不要一致,可能会导致异常

增加PUMP进程

Ggsci>add extract pumpkk, exttrailsource ./dirdat/dd, begin now

增加指定远程trail文件位置

Ggsci> add rmttrail ./dirdat/kk, extract pumpkk

编辑pump进程参数

Ggsci> edit params pumpkk

extract pumpkk

userid system, password 111111

rmthost 192.168.1.31, mgrport 7809远程主机信息

rmttrail ./dirdat/kk远程trail

table scott.*;                            远程scheme及对象

2、 Target端配置

配置MGR

Ggsci> edit params mgr              source端和target端都要配置

port 7809

dynamicportlist 7800-8000当端口无效的时候,自动切换其他端口。

purgeoldextracts./dirdat/*, usecheckpoints, minkeepdays 7自动清理过期(7天)的trail文件autorestart extract *, waitminutes 2, retries 5

-- 指定Extract/Replicat进程的自动重启(每次尝试时间间隔为2秒,最多尝试5次)

--会有警告出现,但是没有关系,以上设置正常可用;

启动MGR

Ggsci> start mgr

Edit global params(target node)

Ggsci> edit  params  ./GLOBALS                   全局英文一定要大写,否则必定出错!

checkpointtable  system.scottchkpttable如果权限足够,最好放在对应的用户下

Connect oracle from ggsci(target node)

Ggsci> dblogin userid system, password 111111连接数据库

Ggsci> add checkpointtable增加专用检查点表

Add replicat rorakk process(target node)

Ggsci> add replicat rorakk,  exttrail  ./dirdat/kk ,begin now, checkpointtable  system.checkpoint

exttrail  ./dirdat/kk  指定本进程的本地的接收trail文件为 ./dirdat/kk

编辑参数文件

Ggsci> edit params rorakk

replicat rorakk

userid system, password 111111

handlecollisions当目标端已有数据时,略过重复数据错误

assumetargetdefs说明源和目标的表结构完全相同

discardfile ./dirrpt/rorakk.dsc, purge

map scott.*, target scott.*;

启动接收进程

Ggsci> start replicat rorakk

转载于:https://blog.51cto.com/lfansh/1332084

linux下同步库的创建相关推荐

  1. Linux下动态库的创建与更新

    Linux下动态库(libname.x.y.z)的创建与更新 由于主程序和它依赖的共享库是由不同的开发者开发的.共享库的开发者会不停地更新共享库的版本,以修正bug,增加功能或改进性能.版本多了之后, ...

  2. Linux下动态库和静态库制作与调用

    Linux下动态库和静态库制作与调用 1.动态库和静态库简介   静态库是指在应用中,有一些公共代码需要反复使用,就把这些代码编译为"库"文件:在链接步骤中,连接器将从库文件取得所 ...

  3. Linux下boost库的编译、安装详解

    1.下载源文件 去官网下载:http://www.boost.org/ 这里下载最新版本 wget https://dl.bintray.com/boostorg/release/1.64.0/sou ...

  4. linux 动态库建立,浅析linux下静态库和动态库的建立和使用

    在粤嵌学了很多知识,我们把常用的公用函数放在一起做成一个函数库,可以供其他程序共同使用,函数库本质上说,是一个可执行代码的二进制形式,可被操作系统载入内存执行.linux下的库分为两种:静态库,后缀名 ...

  5. linux下编译libuv,linux下libuv库安装教程

    下载并编译libuv libuv需要自己手动下载源码,并手动编译. 当前目录为:/home/xlz/test/github/,在后面,会用$PATH来代替,我的系统的Debian8,64bit. $g ...

  6. linux下libxml2库使用说明

    linux下libxml2库使用说明_lanlicen的专栏-CSDN博客_linux xml库 第一章 什么是XML? 1.xml简介 XML(Extensible Markup Language) ...

  7. linux编译安装jpeg,Linux下JPEG库安装脚本(转)

    Linux下JPEG库安装脚本(转)[@more@]该脚本用于在Linux下安装JPEG库,在安装GD库的时候如果没有JPEG库,GD将不能生成JPEG格式的图象. 作者: 何志强#----where ...

  8. linux oracle 用户创建,LINUX下Oracle数据库用户创建方法详解

    本文实例分析了LINUX下Oracle数据库用户创建方法.分享给大家供大家参考,具体如下: 1)登录linux,以oracle用户登录(如果是root用户登录的,登录后用 su - oracle命令切 ...

  9. 【Linux开发】Linux下jpeglib库的安装详解

    Linux下jpeglib库的安装详解 首先要下载所需的库压缩包:jpegsrc.v6b.tar.gz或 jpegsrc.v8b.tar.gz 然后将下载的压缩包随便放在和解压到你喜欢的地方. # t ...

最新文章

  1. 关于我的CSDN博客的一些要说的话
  2. 【windows】python安装小结
  3. XGBoost 重要参数、方法、函数理解及调参思路(附例子)
  4. 《复杂》读书笔记(part2)--混沌与逻辑斯蒂映射
  5. java仿qq登录 界面设计,Java Swing仿QQ登录界面效果
  6. 第几天? 2005
  7. QT 信号与槽 QT简单加法器的实现
  8. mysql事件关闭解决办法
  9. 大数据Hadoop最新版实战Linux Ubuntu 16.04安装与运行测试例子...
  10. 2018 Multi-University Training Contest 8 - Taotao Picks Apples
  11. 华为模拟eNSP器交换机简单开具以及基础命令
  12. 如何构建健商品期carry组合
  13. python pip是什么的简写,python pip是什么
  14. 史上最容易听错的歌词
  15. 一个“编码十几年”的『老程序员』分享的四点心得
  16. 新手入门,求大神帮助!!!
  17. 像图形一样思考以做出决策:彼得斯堡
  18. Java架构师 每日微笔记 0001
  19. python读取webp格式图像
  20. maplesim matlab,maple

热门文章

  1. python循环写入csv文件_Python3.5想把抓到的股票信息以循环方式存入到csv文件中怎么做...
  2. 7.10 枚举——最大公约数和最小公倍数问题
  3. vue中mixin的一点理解
  4. WebStorm10.0.4 Live Edit与Google浏览器实时无刷新自动加载页面
  5. 15个热门的编程趋势及15个逐步走向衰落的编程方向
  6. C#: switch语句的重构
  7. 多域环境下people picker查找不到用户问题的解决(转载jianyi)
  8. 教程:创建简单的 ETL 包
  9. 弱类型、强类型、动态类型、静态类型语言的区别
  10. jq塞入不同状态html的写法 switch (defaults.type)