OGG的Oracle与Hadoop集群准实时同步详解

本文详细介绍了使用Oracle GoldenGate (OGG) 实现Oracle数据库与Hadoop集群之间的准实时同步。从环境配置、源端与目标端的基础配置、OGG进程的配置到测试和总结,全面阐述了OGG的使用步骤和注意事项,适用于需要实时迁移Oracle数据到Hadoop的场景。
摘要由CSDN通过智能技术生成

Oracle里存储的结构化数据导出到Hadoop体系做离线计算是一种常见数据处置手段。近期有场景需要做Oracle到Hadoop体系的实时导入,这里以此案例做以介绍。
Oracle作为商业化的数据库解决方案,自发性的获取数据库事务日志等比较困难,故选择官方提供的同步工具OGG(Oracle GoldenGate)来解决。

安装与基本配置

环境说明

软件配置

角色 数据存储服务及版本 OGG版本 IP
源服务器 OracleRelease11.2.0.1 Oracle GoldenGate 11.2.1.0 for Oracle on Linux x86-64 10.0.0.25
目标服务器 CDH5.7 Oracle GoldenGate for Big Data 12.2.0.1 on Linux x86-64 10.0.0.2

以上源服务器上OGG安装在Oracle用户下,目标服务器上OGG安装在root用户下。

注意

Oracle导出到异构的存储系统,如MySQL,DB2,PG等以及对应的不同平台,如AIX,Windows,Linux等官方都有提供对应的Oracle GoldenGate版本,可在这里或者在旧版本查询下载安装。

Oracle源端基础配置

将下载到的对应OGG版本放在方便的位置并解压,本示例Oracle源端最终的解压目录为/u01/gg。

  1. 配置环境变量
    这里的环境变量主要是对执行OGG的用户添加OGG相关的环境变量,本示例为Oracle用户添加的环境变量如下:(/home/oracle/.bash_profile文件)

    export OGG_HOME=/u01/gg/
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$OGG_HOME:/lib:/usr/lib
    export CLASSPATH=$ORACLE_HOME/jdk/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
    
  2. Oracle打开归档模式
    使用如下命令查看当前是否为归档模式(archive)

    SQL> archive log list 
    Database log mode              Archive Mode
    Automatic archival             Enabled
    Archive destination            /u01/arch_log
    Oldest online log sequence     6
    Next log sequence to archive   8
    Current log sequence           8
    

    如非以上状态,手动调整即可

    SQL> conn / as sysdba(以DBA身份连接数据库) 
    SQL> shutdown immediate(立即关闭数据库)
    SQL> startup mount(启动实例并加载数据库,但不打开)
    SQL> alter database archivelog(更改数据库为归档模式)
    SQL> alter database open(打开数据库)
    SQL> alter system archive log start(启用自动归档)
    
  3. Oracle打开日志相关
    OGG基于辅助日志等进行实时传输,故需要打开相关日志确保可获取事务内容。通过一下命令查看当前状态:

    SQL> select force_logging, supplemental_log_data_min from v$database;
    FOR SUPPLEME--- --------
    YES YES
    

    如果以上查询结果非YES,可通过以下命令修改状态:

    SQL> alter database force logging;
    SQL> alter database add supplemental log data;
    
  4. Oracle创建复制用户
    为了使Oracle里用户的复制权限更加单纯,故专门创建复制用户,并赋予dba权限

    SQL> create tablespaceoggtbsdatafile '/u01/app/oracle/oradata/orcl/oggtbs01.dbf' size 1000M autoextend on;
    SQL> create user ggs identified by ggs default tablespaceoggtbs;
    User created.
    SQL> grant dba to ggs;
    Grant succeeded.
    

    最终这个ggs帐号的权限如下所示:

    SQL> select * from dba_sys_privs where GRANTEE='GGS';
    GRANTEE                        PRIVILEGE                                ADM
    GGS                            DROP ANY DIRECTORY                       NO
    GGS                            ALTER ANY TABLE                          NO
    GGS                            ALTER SESSION                            NO
    GGS                            SELECT ANY DICTIONARY                    NO
    GGS                            CREATE ANY DIRECTORY                     NO
    GGS                            RESTRICTED SESSION                       NO
    GGS                            FLASHBACK ANY TABLE                      NO
    GGS                            UPDATE ANY TABLE                         NO
    GGS                            DELETE ANY TABLE                         NO
    GGS                            CREATE TABLE                             NO
    GGS                            INSERT ANY TABLE                         NO
    GRANTEE                        PRIVILEGE                                ADM
    GGS                            UNLIMITED TABLESPACE                     NO
    GGS                            CREATE SESSION                           NO
    GGS                            SELECT ANY TABLE                         NO
    
  5. OGG初始化
    进入OGG的主目录执行./ggsci,进入OGG命令行

    [oracle@VM_0_25_centos gg]$ ./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 (VM_0_25_centos) 1>
    执行create subdirs进行目录创建
    GGSCI (VM_0_25_centos) 4> create subdirs
    Creating subdirectories under current directory /u01/gg
    Parameter files                /u01/gg/dirprm: already exists
    Report files                   /u01/gg/dirrpt: already exists
    Checkpoint files               /u01/gg/dirchk: already exists
    Process status files           /u01/gg/dirpcs: already exists
    SQL script files               /u01/gg/dirsql: already exists
    Database definitions files     /u01/gg/dirdef: already exists
    Extract data files             /u01/gg/dirdat: already exists
    Temporary files                /u01/gg/dirtmp: already exists
    Stdout files                   /u01/gg/dirout: already exists
    
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

河南骏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值