文档章节

Linux下Oracle GoldenGate(OGG)的配置

我就叫你女王吧
 我就叫你女王吧
发布于 2016/05/16 14:23
字数 1729
阅读 307
收藏 4

首先解压下载的OGG软件,并授权:

 图片

图片

 之后,设置必要变量
注意修改ORACLE_SID,ORACLE_HOME,LD_LIBRARY_PATH变量值
[oracle@upgg ~]$ cat ~/.bash_profile 
# .bash_profile


# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi


# User specific environment and startup programs
export ORACLE_BASE=/u01/oracle
export ORACLE_HOME=/u01/oracle/11g
export GG_HOME=/u01/goldengate/112101
PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$GG_HOME:$LD_LIBRARY_PATH
export ORACLE_SID=updb
export PATH
然后source ~/.bash_profile使之生效


初始化GG

 图片

 

这样就OK了呀,然后就是数据库的一些配置了:
1. 归档
GoldenGate 的原理是基于对日志变化的捕获(CDC )。所以 Oracle 的 redo 对于GoldenGate 至关重要。为了保证 GoldenGate 能读取到完整的事务日志,必须打开归档。
在数据库负载较大的情况下,redo 会频繁切换日志组,我们知道,Redo 日志组在 Oracle 中有限且会被重复利用的。如果打开归档,被切换过的 redo log 就会被归档为 archive log,这样即使一个事务过长,等到提交的时候,部分可能已经归档,这时 GoldenGate 就会到 archive log 中查找对应的记录,从而保证了信息的完整性。

Oracle 10g /11g 版本的 Oracle 打开归档较简单:首先,在使用 sysdba 用户登录在SQLPLUS 下执行以下命令,确认归档是否已经开启:

图片

 
如上结果表述已经运行在归档模式下,不需要任何处理。

图片
 
看到如上结果的,表述运行非归档模式下,则执行如下命令:
 

 图片

图片

下面的步骤是可选的,不配置GG在使用中将出现如下警告信息:
WARNING OGG-01423  No valid default archive log destination directory found for thread 1.

我的习惯不想看到这个警告,所以做如下操作:

图片

 2. 附加日志
当数据库启用了Supplemental Logging之后,对于修改操作,Oracle就会同时附加一些能够唯一标识修改记录的列到redo log中,如果这个表是有主键或唯一键的表,只需要附加主键或唯一键的信息即可,这样生成的redo日志量是最少的,如果某些表可能无法创建主键或者唯一键,抑或数据表本来不存在主键/唯一键,这种情况下Oracle会将所有列都做为附加信息记录到redo中,那么redo就可能增长很快,同时对性能产生较大的负面影响。所以Oracle 建议所有需要复制的表都存在主键或者唯一键。Supplemental Logging可以在数据库级设置,也可以精确到表级设置,对于数据库级有两种类型:minimal logging和identification key logging,其主要区别就在于写入redolog中的数据详尽程度不同。
从上述分析可以得出:GoldenGate要准确的知道源端的数据修改了哪些列,就需要更为详细的日志信息,所以需要数据库开启supplemental log。可以按照下列方式打开数据库级别的supplemental log。

 

图片

确认附加日志是否打开

 

图片

返回YES或IMPLICIT表示附加日志被打开。
3. 回收站
在gg 11之前版本需要关闭回收站才能完成DDL同步
在gg 11 版本开始可以开启回收站也能完成DDL同步


SQL> select value from v$parameter where name='recyclebin';


VALUE
--------------------------------------------------------------------------------
on


on 表示开启回收站
off 表示关闭回收站
关闭回收站
SQL> alter system set recyclebin=off scope=spfile;
System altered.
如果你不配置DDL同步的本步骤可以不做
Recyclebin 在 10.1 中是隐含参数,关掉 recyclebin 的命令为:
SQL>ALTER SYSTEM SET “_ recyclebin” = false;
4. GG软件用户设置
gg用户有2种:


管理用户
管理用户是管理,维护GG软件的用户,此用户必须在后台数据库建立起来,并分配必要的权限。管理用户需要在原数据端建立,也需要在目标数据端建立。而原数据端与目标数据端需要的权限最小化也不相同。为了方便可以授予dba权限,甚至不建立管理用户,直接使用system用户。


数据用户  
数据用户是gg运行中数据加载,数据同步的用户。比如需要将scott用户数据加载与同步到s1用户下。scott为原数据端用户,s1为目标数据端用户。数据用户存在就可以了,但管理用户必须有相应操作数据用户的权限。 比如原数据端管理用户至少有查询,修改,闪回数据用户对象的权限,目标数据端管理用户至少需要dml操作数据用户的权限.
在源端和目标端创建 GoldenGate 管理用户,并授予下列权限。
SQL>create tablespace ggdata datafile '$ORACLE_BASE/oradata/$ORACLE_SID/ggdata01.dbf' size 200m;
SQL>create userggs identified by ggm default tablespace ggdata;
SQL>grant connect,resource,unlimited tablespace to ggm ; SQL>grant execute on utl_file to ggm;
在源端还需要授予 ggm 用户以下权限:
SQL>grant connect,resource to ggm ;
SQL>grant select any dictionary,select any table to ggm;
SQL>grant alter any table to ggm;
SQL>grant flashback any table to ggm;
SQL>grant execute on DBMS_FLAHBACK TO ggm;
在目标端需要授予 ggm 用户以下权限:
grant insert any table to ggm; 
grant delete any table to ggm; 
grant update any table to ggm;


上面的 insert、delete、update 没有指定模式,表示在所有模式都能进行 insert、 delete、update 操作。


原数据端用户设置   略
目标数据端用户设置 略
5. 添加表级的transdata
这里的表级的 trandata 就是指表级的 supplemental log。
表级supplemental log 需要在数据库级别最小supplemental log 打开的情况下才起作用。如果数据库没有开启 minimal supplemental log,即使指定了表级supplemental log,实际在redo log 输出描述的记录仍只记录rowid和相关列值,所以我们还需要同时开启表级的transadata。添加表级的 transdat 可以理解为你需要将源端的哪些schema下的哪些表传输到目标库中,那么就需要你手动添加这些transdata。按照上一小节的内容创建GoldenGate管理用户并授予必要的权限之后,就可以使用dblogin 登录数据库,然后添加特定表的trandata。


操作步骤如下:


在 scott 用户下创建一张表 demo,用来作为需要同步的表:

图片

对这个表添加 trandata:

图片


提示:在对表添加 trandata 的时候,表名可以使用通配符。例如如果我要添加 scott 用户下所有的表,则语句可以这样写:


GGSCI(source 4) add trandata scott.*;
查看表有没有附加日志:
GGSCI(source 5) info trandata scott.*;
enabled 表示开启附加日志
disabled 表示没开启附加日志
当然也可以在oracle中执行sql命令增加附加日志

SQL> alter table  t1 add supplemental log data(all) columns;

 

更多精彩Oracle内容 请关注我:

© 著作权归作者所有

我就叫你女王吧
粉丝 3
博文 34
码字总数 25430
作品 0
海淀
私信 提问
一篇很详细很全的OGG配置文档

1 GoldenGate简要说明 GoldenGate现在是业内成熟的数据容灾与复制产品,经过多年的发展与完善,现在已经成为业内事实上的标准之一。 GoldenGate软件是一种基于日志的结构化数据复制软件,它通...

yanfeilai528
2018/08/10
0
0
『调错』OGG Error opening module ggjava_ue.dll

Win7 配置 OGG (GoldenGate) Adapter Java 时, 报错: ERROR OGG-01122 Oracle GoldenGate Capture, javaue.prm: Error opening module ggjava_ue.dll - ]. ERROR OGG-01668 Oracle Golden......

InkFx
2018/06/08
0
0
Oracle 11G GoldenGate实现Windows与Windows之间的单向同步

Oracle GoldenGate实现Windows与Windows之间的单向同步 本次实验都是在win环境进行,目的通过GoldenGate实现Windows与Windows之间的单向同步进行对源库复制备份。 实验环境说明 操作系统:W...

pimg2005
2018/06/28
0
0
『OGG 03』Win7 配置 Oracle GoldenGate 一次性成功(包括Adapter Java)

安装Oracle: 安装 Oracle_11g 32位【Oracle 32位的话,OGG 也必须是 32位,否则会有0xc000007b无法正常启动 错误】 安装目录为 D:oracleproduct11.1.0db1 【这个目录要设置为 环境变量 ORAC...

InkFx
2018/06/30
0
0
Oracle Golden Gate - 概念和机制 (ogg)

Golden Gate(简称OGG)提供异构环境下交易数据的实时捕捉、变换、投递。 OGG支持的异构环境有: OGG的特性: 对生产系统影响小:实时读取交易日志,以低资源占用实现大交易量数据实时复制 ...

rechardchensir
01/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

聊聊中国的通信行业:从“七国八制”到“中华”脊梁

本期文章和大家一起来聊一聊我曾经从事过的通信行业吧。最近各方面信息的泛滥,包括和华为的同学聊天,自己确实也感慨颇多。想想我自己本科主修通信工程,研究生再修信息与通信工程,从本科开...

CodeSheep
50分钟前
4
0
MDK:ARM M451M:exceed the range of code meory, continue to erase or not?

问题: 代码空间超限 几天前就遇到:exceed the range of code meory, continue to erase or not? 如下所示: 解决过程 开始以为中MDK软件的128KB限制,如是就不能生成HEX文件,应该链接时有提...

SamXIAO
57分钟前
1
1
OSChina 周六乱弹 —— 因违反《中华人民共和国治安管理处罚法》第四十四条之规定

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @xiaoshiyue :#今日歌曲推荐# 惊艳分享谷微的单曲《安守本份》(@网易云音乐) 《安守本份》- 谷微 手机党少年们想听歌,请使劲儿戳(这里) ...

小小编辑
今天
292
7
Angular 英雄编辑器

应用程序现在有了基本的标题。 接下来你要创建一个新的组件来显示英雄信息并且把这个组件放到应用程序的外壳里去。 创建英雄组件 使用 Angular CLI 创建一个名为 heroes 的新组件。 ng gener...

honeymoose
今天
8
0
Kernel DMA

为什么会有DMA(直接内存访问)?我们知道通常情况下,内存数据跟外设之间的通信是通过cpu来传递的。cpu运行io指令将数据从内存拷贝到外设的io端口,或者从外设的io端口拷贝到内存。由于外设...

yepanl
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部