一. GoldenGate 概述

  GoldenGate现在是业内成熟的数据容灾与复制产品;GoldenGate是一种基于日志的结构化数据复制方式,它通过解析源数据库在线日志或归档日志获得数据的增删改变化(数据量只有日志的四分之一左右),再将这些变化应用到目标数据库,实现源数据库与目标数据库同步、双活。

二. GoldenGate 搭建

  目标在linux系统下安装Oracle;利用GoldenGate 实现数据同步;可复制DML和DDL操作

环境如下:本环境目标端是源端的克隆;步骤请参考第8篇

  源端 目标端
操作系统 linux6.5 linux6.5
IP 192.168.1.235 192.168.1.221
数据库版本 11.2.0.4.0 11.2.0.4.0
GoldenGate版本 11.2.1.0.1 11.2.1.0.1

2.1 创建 GoldenGate 操作系统用户

  两台服务器都需要创建 ogg 操作系统用户(此步骤非必须,也可以使用ORACLE用户安装)。

useradd -u  -g oinstall -G dba ogg
passwd ogg

2.2 修改 GoldenGate 系统用户环境变量

source /home/oracle/.bash_profile
# or
export ORACLE_BASE=/u01/app
export ORACLE_HOME=$ORACLE_BASE/oracle
export ORACLE_SID=ora221
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin/data/ogg
export NLS_LANG=AMERICAN_AMERICA.UTF8
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
alias sqlplus='rlwrap sqlplus'
alias ggsci='rlwrap ggsci'

2.3 创建 GoldenGate 安装目录

  两台服务器都需要做同样的操作。

mkdir -p /data/ogg
chown -R ogg:oinstall /data/ogg

2.4 安装 GoldenGate

  两台服务器都需要操作。

unzip fbo_ggs_Linux_x64_ora11g_64bit.tar.zip
tar -xvf fbo_ggs_Linux_x64_ora11g_64bit.tar -C /data/ogg
  登录 GoldenGate执行ggsci命令即可。

2.5 建立 GoldenGate表空间

  两台服务器都需要操作: 建议使用单独的表空间存放 GoldenGate 数据

create tablespace tsp_ogg datafile '/data/oracle/data/ogg01.dbf' size 100M autoextend on;

2.6 创建 GoldenGate 用户并赋权

  两台服务器都需要操作

create user ogg identified by ogg default tablespace tsp_ogg;
grant dba to ogg;
GRANT CREATE TABLE,CREATE SEQUENCE TO OGG;

2.7 配置数据库

  由于 GoldenGate 的原理是根据 Oracle 的日志进行抽取复制。为了保证日志的完整性;需要打开 Oracle 数据库归档;

alter system set log_archive_dest_1 = 'LOCATION=/data/arch' scope = spfile;
shutdown immediate;
startup mount
alter database archivelog;
alter database open;

  还需要开启 force log 和 supplemental log

alter database force logging;
alter database add SUPPLEMENTAL log data;

  最后查询结果如下:

SQL> select NAME,OPEN_MODE,FORCE_LOGGING,SUPPLEMENTAL_LOG_DATA_MIN from v$database;

NAME   OPEN_MODE        FOR SUPPLEME
--------- -------------------- --- --------
ORA235 READ WRITE YES YES

2.8 运行 GoldenGate 支持 DDL 脚本

  如果要让 GoldenGate 支持DDL操作,还需要额外运行几个脚本,这些脚本是OGG带的而不是 Oracle 带的,在 GoldenGate 的安装目录都可以找到,源端与目标端都需要运行,如下:

@marker_setup.sql
@ddl_setup.sql
@role_setup.sql
@ddl_enable.sql

  在11.2.0.4.0版本;需要设置

ALTER SYSTEM SET ENABLE_GOLDENGATE_REPLICATION = TRUE SCOPE=BOTH;

三. GoldenGate单向复制流程配置

  现在就可以正式配置OGG了,在配置OGG之前,先看下OGG的复制流程,OGG和其他传统复制软件一样,也是通过源端捕获/挖掘ORACLE的日志信息, 目标端根据源端传送过来的日志信息进行重塑,实现源端-目标端数据同步,可以参考下图。

  只有commit之后的日志信息才会被Capture进程捕获,未提交的事务OGG不会捕获。

3.1 创建 GoldenGate 的工作目录

  源端和目标端都需要创建,登录GoldenGate,只需要执行create subdirs命令就可以了。

[ogg@oracle235 ogg]$ ggsci

Oracle GoldenGate Command Interpreter for Oracle
Version 11.2.1.0. OGGCORE_11.2.1..1_PLATFORMS_120423.0230_FBO
Linux, x64, 64bit (optimized), Oracle 11g on Apr :: Copyright (C) , , Oracle and/or its affiliates. All rights reserved. GGSCI (oracle235) > create subdirs Creating subdirectories under current directory /data/ogg Parameter files /data/ogg/dirprm: already exists
Report files /data/ogg/dirrpt: created
Checkpoint files /data/ogg/dirchk: created
Process status files /data/ogg/dirpcs: created
SQL script files /data/ogg/dirsql: created
Database definitions files /data/ogg/dirdef: created
Extract data files /data/ogg/dirdat: created
Temporary files /data/ogg/dirtmp: created
Stdout files /data/ogg/dirout: created

3.2 添加 CheckPoint 表

  为了保证源和目标端在传数据的时候不会重复或者少传,在目标端添加checkpoin表。

操作如下:

GGSCI (oracle235) > EDIT PARAMS ./GLOBALS
CHECKPOINTTABLE ogg.ggschkpt GGSCI (oracle235) > exit
[ogg@oracle235 ogg]$ ggsci Oracle GoldenGate Command Interpreter for Oracle
Version 11.2.1.0. OGGCORE_11.2.1..1_PLATFORMS_120423.0230_FBO
Linux, x64, 64bit (optimized), Oracle 11g on Apr :: Copyright (C) , , Oracle and/or its affiliates. All rights reserved. GGSCI (oracle235) > DBLOGIN USERID ogg, PASSWORD ogg
Successfully logged into database. GGSCI (oracle235) > ADD CHECKPOINTTABLE No checkpoint table specified, using GLOBALS specification (ogg.ggschkpt)... Successfully created checkpoint table ogg.ggschkpt.

3.3 配置 MGR 进程组

  在源端和目标端都必须运行一个MGR进程组;负责启动GoldenGate进程,以及启动动态进程,管理trail文件,错误信息。

  运行ggsci程序;输入 “EDIT PARAMS MGR” 编辑参数文件:

[ogg@oracle235 ogg]$ ggsci

Oracle GoldenGate Command Interpreter for Oracle
Version 11.2.1.0. OGGCORE_11.2.1..1_PLATFORMS_120423.0230_FBO
Linux, x64, 64bit (optimized), Oracle 11g on Apr :: Copyright (C) , , Oracle and/or its affiliates. All rights reserved. GGSCI (oracle235) > EDIT PARAMS MGR

  输入内容如下:

PORT
DYNAMICPORTLIST -
AUTORESTART EXTRACT *, WAITMINUTES , RESETMINUTES
PURGEOLDEXTRACTS /data/ogg/dirdat, USECHECKPOINTS, MINKEEPDAYS
  • PORT:指定服务监听端口;默认端口为7809
  • DYNAMICPORTLIST:动态端口:可以制定最大256个可用端口的动态列表,当指定的端口不可用时,管理进程将会从列表中选择一个可用的端口,源端和目标段的Collector、Replicat、GGSCI进程通信也会使用这些端口
  • AUTORESTART:自动重启参数设置:本处设置表示每2分钟尝试重新启动所有EXTRACT进程;以后5分钟清零。
  • PURGEOLDEXTRACTS:定期清理trail文件设置:本处设置表示对于超过3天的trail文件进行删除

   启动MGR进程

GGSCI (oracle235) > start mgr

Manager started.

GGSCI (oracle235) > info mgr

Manager is running (IP port oracle235.).

3.4 源端配置 Extract 进程

  负责抓取需要传输数据;下面在源端配置抽取进程。

GGSCI (oracle235) > EDIT PARAMS EORA_1

EXTRACT EORA_1
SETENV (NLS_LANG=AMERICAN_AMERICA.UTF8)
USERID ogg, PASSWORD ogg
EXTTRAIL /data/ogg/dirdat/aa
TABLE lottu.*;

  在源端用 add extract 命令创建 extract 组;用add exttrail 命令创建本地 trail 文件

GGSCI (oracle235) > ADD EXTRACT EORA_1, TRANLOG, BEGIN NOW
EXTRACT added. GGSCI (oracle235) > ADD EXTTRAIL /data/ogg/dirdat/aa, EXTRACT EORA_1, MEGABYTES
EXTTRAIL added.

  启动 extract 进程;在 ggsci 中:可以使用 add, alter, cleanup, delete, info, kill命令管理extract进程

GGSCI (oracle235) > start extract eora_1

Sending START request to MANAGER ...
EXTRACT EORA_1 starting GGSCI (oracle235) > info eora_1 EXTRACT EORA_1 Last Started -- : Status RUNNING
Checkpoint Lag :: (updated :: ago)
Log Read Checkpoint Oracle Redo Logs
-- :: Seqno , RBA
SCN 0.0 ()

3.5 配置 Pump 进程

  extract进程负责将抓取的数据写入本地trail文件;而需要Pump进程把trail文件传输到目标端。使用 EDIT PARAMS PORA_1 添加配置文件

GGSCI (oracle235) > EDIT PARAMS PORA_1

EXTRACT PORA_1
SETENV (NLS_LANG=AMERICAN_AMERICA.UTF8)
PASSTHRU
RMTHOST 192.168.1.221, MGRPORT
RMTTRAIL /data/ogg/dirdat/pa
TABLE lottu.*;

  用 add extract 指定本地 trail 文件

GGSCI (oracle235) > ADD EXTRACT PORA_1, EXTTRAILSOURCE /data/ogg/dirdat/aa
EXTRACT added.

  用 add rmttrail 指定远程 trail 文件

GGSCI (oracle235) > ADD RMTTRAIL /data/ogg/dirdat/pa, EXTRACT PORA_1, MEGABYTES
RMTTRAIL added.

  启动 pump 进程

GGSCI (oracle235) > START EXTRACT PORA_1

Sending START request to MANAGER ...
EXTRACT PORA_1 starting GGSCI (oracle235) > info all Program Status Group Lag at Chkpt Time Since Chkpt MANAGER RUNNING
EXTRACT RUNNING EORA_1 :: ::
EXTRACT RUNNING PORA_1 :: ::

3.6 配置目标端的 Replicat 进程

  Replicat 进程运行于目标端;负责将源端传过来的 trail 文件;在目标端数据库应用。实现源端和目标端数据同步。

GGSCI (oracle221) > EDIT PARAMS RORA_1

REPLICAT RORA_1
SETENV (NLS_LANG=AMERICAN_AMERICA.UTF8)
USERID ogg, PASSWORD ogg
HANDLECOLLISIONS
ASSUMETARGETDEFS
DISCARDFILE /data/ogg/dirrpt/RORA_aa.rpt, append
MAP lottu.*, TARGET lottu.*;

  在目标端使用 add replicat 添加 Replicat 进程

GGSCI (oracle221) > add replicat RORA_1, exttrail /data/ogg/dirdat/pa
REPLICAT added.

   使用 start replicat 启动 Replicat 进程

GGSCI (oracle221) > start REPLICAT RORA_1

Sending START request to MANAGER ...
REPLICAT RORA_1 starting GGSCI (oracle221) > info all Program Status Group Lag at Chkpt Time Since Chkpt MANAGER RUNNING
REPLICAT RUNNING RORA_1 :: ::

四. 配置 DDL 同步

  在前面我们已经配置 GoldenGate 支持DDL脚本;其中有创建 Trigger;DDL跟DML 复制机制不同;DML复制是基于redo log。其DDL复制原理是基于Trigger;它扑捉DDL操作记录在中间表;Extract读取中间表DDL操作;Pump投递到目标端;目标端在应用DDL语句。

4.1 运行 GoldenGate 支持 DDL 脚本

  前面已级操作 ;略。

4.2 关闭 Oracle 的 recyclebin

  在执行上一步操作有一个温馨提示:‘NOTE: For an Oracle 10g source, the system recycle bin must be disabled. For Oracle 11g and later, it can be enabled.’ GoldenGate10G DDL不支持Oracle回收站功能;本文提供的GoldenGate版本是11G;该操作也略;

  关闭Oracle回收站功能

alter system set recyclebin=off scope=both;

4.3 源端配置

  指定DDL复制的用户

GGSCI (oracle235) > view params ./GLOBALS

GGSCHEMA OGG

  停MGR,Extract进程;
  配置Extract配置文件;在配置文件添加一下内容:

DDL INCLUDE ALL
DDLOPTIONS ADDTRANDATA,REPORT

4.4 目标端配置

  停MGR,Replicat进程;
  配置Replicat配置文件;在配置文件添加一下内容:

DDL INCLUDE MAPPED
DDLOPTIONS REPORT

  配置完成;在重启各进程进行验证。

五. 总结

  本文只涉及到 GoldenGate 的单向复制的配置和安装;其实GoldenGate还有很多架构:例如1对多同步,级联同步;双向同步等等。根据场景不同应用不同架构;还有GoldenGate日常维护,错误分析,监控,以及性能优化调整。大家可以阅读《企业级IT运维宝典之GoldenGate实战》或者查看官方文档

10.Oracle Golden Date(ogg)的搭建和管理的更多相关文章

  1. linux下单节点oracle数据库间ogg搭建

    环境说明:   linux为Linux 2.6.32-573.el6.x86_64     oracle为 11g Enterprise Edition Release 11.2.0.1.0 - 64 ...

  2. 转://Oracle Golden Gate 概念和原理

    引言:Oracle Golden Gate是Oracle旗下一款支持异构平台之间高级复制技术,是Oracle力推一种HA高可用产品,简称“OGG”,可以实现Active-Active 双业务中心架构 ...

  3. ORACLE插入DATE类型字段

    1 怎样在ORACLE中输入DATE类型的字段 insert into table_name (date_column) values(to_date('2006-06-04','yyyy-mm-dd ...

  4. ORACLE中date类型字段的处理

    (1)在英文版本的ORACLE中默认日期格式为'DD-MON-YY',例如'01-JAN-98' 在汉化的中文版本中ORACLE默认日期格式为'日-月-年',例如'21-8月-2003'或'21-8月 ...

  5. Oracle GoldenGate (以下简称ogg)在异种移植os同一种db之间的数据同步。

    Oracle GoldenGate (以下简称ogg)在异种移植os同一种db之间的数据同步. ogg要实现的功能: 同步可以细化到单个表,满足特定的where条件rows同步,称号column同步. ...

  6. Oracle 19c使用dbca来搭建物理DG

    Using DBCA to Create a Data Guard Standby The Database Configuration Assistant (DBCA) can also be us ...

  7. Oracle Golden Gate原理简介

    Oracle Golden Gate原理简介 http://www.askoracle.org/oracle/HighAvailability/20140109953.html#6545406-tsi ...

  8. Oracle服务端及客户端搭建帮助文档

    Oracle服务端及客户端搭建帮助文档 目录 简介 Oracle服务端安装 Oracle客户端安装 PLSQL安装 登录测试 系统配置修改 用户操作 解锁账户.密码 创建账户及密码 配置监听文件 监听 ...

  9. win10 + VS2010 + OpenCV2.4.10重编译OpenCV开发环境搭建

    win10 + VS2010 + OpenCV2.4.10重编译OpenCV开发环境搭建 重编译的优点:能够调试的时候看OpenCV的源码. 重编译要得到的东西:Debug版本号和Release版本号 ...

随机推荐

  1. 在极算云安装pytorch0.4.1环境

    1.  已经安装了anaconda.然后就可以创建你自己的环境了(你最好一定要指定个python版本,如下, 我指定为python3.6, 如果需要的话你也可以指定其他python版本,并不是说ana ...

  2. C#_02.14_基础五_.NET类

    C#_02.14_基础五_.NET类 一.类实例: 我们前面说过类是一个模板,我们通过类创建一个又一个的实例,通常情况下类当中的变量是每一个实例都各有一份的,互相不影响,而静态字段是除外的,静态字段是 ...

  3. .Net Core中的通用主机(一)——系统配置

    ASP.NET Core 2.0 中的 WebHost(实现 IWebHost 的基类)是用于为进程提供 HTTP 服务器功能的基础结构项目,例如,如果正在实现 MVC Web 应用或 Web API ...

  4. MiniUI破解方法

    解决JQuery MiniUI前端库到期alert弹窗 MINIUI的到期提示是通过JS的Alert 方法弹出的. 那么我们可以不可以截获所有Alert方法,过滤文本.然后….你们懂得 我们只需要在页 ...

  5. Ubuntu 18 LTS netplan 网络配置

    一.配置网络 1.通过netplan配置网络 #配置网络 nulige@ubuntu:/etc/netplan$ sudo apt install ifupdown nulige@ubuntu:/et ...

  6. tensorflow创建自定义 Estimator

    https://www.tensorflow.org/guide/custom_estimators?hl=zh-cn 创建自定义 Estimator 本文档介绍了自定义 Estimator.具体而言 ...

  7. mysql函数之SUBSTRING_INDEX(str,"/",-1)

    SUBSTRING_INDEX的用法: •SUBSTRING_INDEX(str,delim,count) 在定界符 delim 以及count 出现前,从字符串str返回自字符串.若count为正值 ...

  8. ESP-EYE V2.1 开发板 WINDOWS 10 开发入门

    准备工作 1 × ESP-EYE V2.1 开发板 1 × Micro USB B 电缆 1 × PC(Windows10) 简介 ESP-EYE 是一款面向人脸识别和语音识别市场的开发板,搭载 ES ...

  9. “2014年CityEngine三维建模与设计精英培训班”——全国巡回举办

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYXJjZ2lzX2FsbA==/font/5a6L5L2T/fontsize/400/fill/I0JBQk ...

  10. Generate google sitemap xml

    方式一. XNamespace xNamespace = "http://www.sitemaps.org/schemas/sitemap/0.9"; XNamespace xht ...