Oracle OGG 数据同步简单配置

简介: 1、安装包准备 数据库版本:Oracle Database 11g Release 2(11.2.0.4.0) 安装包版本:Oracle GoldenGate 12.3.0.1.4 for Oracle on Linux x86-64 2、创建OGG用户 useradd -u 700 -g o.
1、安装包准备
数据库版本:Oracle Database 11g Release 2(11.2.0.4.0)
安装包版本:Oracle GoldenGate 12.3.0.1.4 for Oracle on Linux x86-64

2、创建OGG用户
useradd -u 700 -g oinstall -G dba ogg

3、创建软件安装目录
mkdir -p /ogg/product/ogg_home
mkdir -p /ogg/setup/
chown -R ogg:oinstall /ogg
chmod -R g+w /ogg

4、配置环境变量
# oracle
export LANG=en_US
export ORACLE_SID=orcl
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/db_home_1
export LD_LIBRARY_PATH=/u01/app/oracle/product/db_home_1/lib
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/jdk/bin:$PATH
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS";
export NLS_LANG=AMERICAN_AMERICA.UTF8;
# ogg 
export OGG_HOME=/ogg/product/ogg_home
export PATH=$OGG_HOME:$PATH
export LD_LIBRARY_PATH=$OGG_HOME:$LD_LIBRARY_PATH

5、解压安装软件安装完成即可
./runInstaller

6、在源和目标创建OGG专用表空间和用户并授予权限
$ sqlplus / as sysdba
SQL> create tablespace ogg logging datafile '/u01/app/oracle/oradata/orcl/ogg.dbf' size 20m autoextend on uniform size 2m;
SQL> create user ogg identified by oracle default tablespace ogg temporary tablespace temp quota unlimited on ogg;
SQL> grant unlimited tablespace to ogg;
SQL> grant connect, resource, dba to ogg;
SQL> grant create session, alter session to ogg;
SQL> grant alter system to ogg;
SQL> grant select any dictionary to ogg;
SQL> grant flashback any table to ogg;
SQL> grant select any table, insert any table, update any table, delete any table, drop any table to ogg;
SQL> grant create table, create sequence to ogg;
SQL> grant select on dba_clusters to ogg;
SQL> grant select on v_$database to ogg;
SQL> grant select on sys.logmnr_buildlog to ogg;
SQL> grant select any transaction to ogg;
SQL> grant lock any table to ogg;
SQL> grant ggs_ggsuser_role to ogg;
SQL> grant execute on dbms_flashback to ogg;
SQL> grant execute on dbms_logmnr_d to ogg;
SQL> grant execute on dbms_capture_adm to ogg;
SQL> grant execute on dbms_streams to ogg;
SQL> grant execute on utl_file to ogg;
SQL> exec dbms_streams_auth.grant_admin_privilege('ogg');

7、配置源和目标数据库模式
SQL> select log_mode, supplemental_log_data_min, force_logging from v$database;
SQL> alter system set enable_goldengate_replication=true scope=both; -- 11.2.0.4
SQL> alter system set log_archive_dest_1='location=/u01/app/oracle/archivelog_1';
SQL> shutdown immediate;                          
SQL> startup mount;                               
SQL> alter database archivelog;                   
SQL> alter database open;                         
SQL> alter database force logging;                
SQL> alter database add supplemental log data;

8、源及目标库创建测试用表
CREATE TABLE customers
(
    id          number,
    name          VARCHAR2(20),
    city          VARCHAR2(20),
    state         VARCHAR2(20),
    CONSTRAINT pk_custid PRIMARY KEY(id)
);

9、用户级别的附加日志
$ ggsci
GGSCI (dbsrc) 1> dblogin userid ogg, password oracle
GGSCI (dbsrc as ogg@orcl) 2> add schematrandata ogg

10、表级别的附加日志
$ ggsci
GGSCI (dbsrc) 1> dblogin userid ogg, password oracle
GGSCI (dbsrc as ogg@orcl) 2>  add trandata ogg.customers;

11、执行配置脚本配置DDL同步
SQL> @marker_setup
SQL> @ddl_setup
SQL> @role_setup
SQL> grant ggs_ggsuser_role to ogg;
SQL> @ddl_enable


12、配置Manager进程(管理进程)
$ ggsci
GGSCI (dbsrc) 1>  info mgr
-- 源端
GGSCI (dbsrc) 2> edit param mgr
PORT 7809
DYNAMICPORTLIST  7810-7850
AUTOSTART EXTRACT *
AUTORESTART EXTRACT *, RETRIES 5, WAITMINUTES 2
PURGEOLDEXTRACTS /ogg/product/ogg_home/dirdat/ *, USECHECKPOINTS, MINKEEPDAYS 5
LAGREPORTHOURS 1
LAGINFOMINUTES 30
LAGCRITICALMINUTES 45
-- 目标端:
GGSCI (dbtrg) 1> edit param mgr
PORT 7809
DYNAMICPORTLIST  7810-7850
AUTOSTART REPLICAT *
AUTORESTART REPLICAT *, RETRIES 5, WAITMINUTES 2
PURGEOLDEXTRACTS /ogg/product/ogg_home/dirdat/ *, USECHECKPOINTS, MINKEEPDAYS 10
PURGEDDLHISTORY MINKEEPDAYS 7, MAXKEEPDAYS 10
PURGEMARKERHISTORY MINKEEPDAYS 7, MAXKEEPDAYS 10
LAGREPORTHOURS 1
LAGINFOMINUTES 30
LAGCRITICALMINUTES 45

13、配置Extract进程(只在源端配置)
-- 配置抽取进程
GGSCI (dbsrc) 5> dblogin userid ogg, password oracle
GGSCI (dbsrc as ogg@orcl) 6> add extract ext1,tranlog,begin now
GGSCI (dbsrc as ogg@orcl) 7> add exttrail /ogg/product/ogg_home/dirdat/sr, extract ext1
GGSCI (dbsrc as ogg@orcl) 8> edit param ext1 
extract ext1
SETENV(ORACLE_SID="orcl")
SETENV(NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
userid ogg, password oracle
REPORTCOUNT EVERY 30 MINUTES, RATE
DISCARDFILE /ogg/product/ogg_home/dirrpt/extsr.dsc, APPEND, MEGABYTES 1024
DISCARDROLLOVER AT 3:00
EXTTRAIL /ogg/product/ogg_home/dirdat/sr
DYNAMICRESOLUTION
DBOPTIONS  ALLOWUNUSEDCOLUMN
FETCHOPTIONS NOUSESNAPSHOT
FETCHOPTIONS FETCHPKUPDATECOLS
table ogg.*;
-- 配置投递进程
GGSCI (dbsrc as ogg@orcl) 9> add extract dpump1, exttrailsource /ogg/product/ogg_home/dirdat/sr
GGSCI (dbsrc as ogg@orcl) 10> edit param dpump1
extract dpump1
SETENV(ORACLE_SID="orcl")
SETENV(NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
RMTHOST 192.168.93.226, mgrport 7809, COMPRESS
PASSTHRU
RMTTRAIL /ogg/product/ogg_home/dirdat/tr
DYNAMICRESOLUTION
table ogg.*;
GGSCI (dbsrc as ogg@orcl) 11> add rmttrail /ogg/product/ogg_home/dirdat/tr, extract dpump1

14、目标端配置Replicat进程
GGSCI (dbtrg) 1> dblogin userid ogg, password oracle
-- 创建和配置Checkpoint Table
GGSCI (dbtrg as ogg@orcl) 2> add checkpointtable ogg.checkpoint
GGSCI (dbtrg as ogg@orcl) 3> edit param /ogg/product/ogg_home/GLOBALS
GGSCHEMA ogg
CHECKPOINTTABLE ogg.checkpoint
-- 创建replicat进程
GGSCI (dbtrg as ogg@orcl) 4> add replicat rep1, exttrail /ogg/product/ogg_home/dirdat/tr, checkpointtable ogg.checkpoint
GGSCI (dbtrg as ogg@orcl) 5> edit param rep1
REPLICAT rep1
SETENV(ORACLE_SID="orcl")
SETENV(NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
USERID ogg, PASSWORD oracle
REPORT AT 06:00
REPORTCOUNT EVERY 30 MINUTES, RATE
REPORTROLLOVER AT 02:00
REPERROR DEFAULT, ABEND
ALLOWNOOPUPDATES
ASSUMETARGETDEFS
HANDLECOLLISIONS
DISCARDFILE /ogg/product/ogg_home/dirrpt/repsa.dsc, APPEND, MEGABYTES 1024
DISCARDROLLOVER AT 02:00
MAP ogg.*, target ogg.*;

15、初始化数据
初始化数据可以使用OGG进程初始化,也可以使用其他同步工具来初始化。


16、启动GoldenGate
注:因为在mgr都相应的配置了extract进程和replicat进程的自启动,所以在mgr进程启动后会自动启动extract进程和replicat进程
-- 目标端
$ ggsci
GGSCI (dbtrg) 1> start mgr
GGSCI (dbtrg) 2> info all
GGSCI (dbtrg) 3> start rep1  
-- 源端
$ ggsci
GGSCI (dbsrc) 1> start mgr
GGSCI (dbsrc) 2> info all
GGSCI (dbsrc) 3> start ext1
GGSCI (dbsrc) 4> start dpump1
日志文件存储路径:
GoldenGate安装目录下/ogg/product/ogg_home/ggserr.log

17、同步测试
-- 测试的时候分别测试insert、delete、update操作
$ sqlplus / as sysdba
SQL> conn ogg/oracle
SQL> select count(*) from customers;
SQL> insert into customers(id,name,city,state) values(1,'ahern','CQ','CN');
SQL> select count(*) from customers;
SQL> commit;
-- 查看源端extract进程状态
GGSCI (dbsrc) 5> stats ext1
GGSCI (dbsrc) 6> stats dpump1
-- 查看目标端replicat进程状态
GGSCI (dbtrg) 4> stats rep1
-- 目标端数据查询
$ sqlplus / as sysdba
SQL> conn ogg/oracle
SQL> select count(*) from customers;
SQL> select * from customers where name='ahern';
目录
相关文章
|
8月前
|
SQL API 数据处理
实时计算 Flink版产品使用合集之DataStream方式是否可以实现oracle-->的数据同步
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStreamAPI、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
8月前
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用合集之和Oracle数据同步必须是使用主库吗
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStreamAPI、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
实时计算 Flink版产品使用合集之和Oracle数据同步必须是使用主库吗
|
4月前
|
Ubuntu Oracle 关系型数据库
Oracle VM VirtualBox之Ubuntu 22.04LTS双网卡网络模式配置
这篇文章是关于如何在Oracle VM VirtualBox中配置Ubuntu 22.04LTS虚拟机双网卡网络模式的详细指南,包括VirtualBox网络概述、双网卡网络模式的配置步骤以及Ubuntu系统网络配置。
432 3
|
5月前
|
Oracle 关系型数据库 BI
ORACLE Apex: EBS多组织结构 理解与配置
【8月更文挑战第11天】在Oracle Apex中理解和配置与EBS多组织结构相关内容需掌握:1) EBS多组织结构概念及组成部分,如法律实体、业务单位与库存组织;2) Oracle Apex与EBS集成的目的与方式,包括提供友好界面及自定义业务流程;3) 在Apex中配置多组织结构应用,涉及数据访问控制、页面报表设计及业务流程集成。整体而言,需精通EBS架构与Apex开发技术,以实现高效灵活的企业解决方案。
123 2
|
5月前
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用问题之Oracle数据库是集群部署的,怎么进行数据同步
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
6月前
|
存储 NoSQL API
Redis问题之ETCD进行秒杀活动的配置数据同步如何解决
Redis问题之ETCD进行秒杀活动的配置数据同步如何解决
|
8月前
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用合集之可以通过配置Oracle数据库的schema注册表来监测表结构的变化吗
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
63 1
|
7月前
|
Java 关系型数据库 流计算
实时计算 Flink版操作报错合集之配置cats进行从MySQL到StarRocks的数据同步任务时遇到报错,该怎么办
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
365 0
|
8月前
|
Oracle 关系型数据库 Java
java操作多数据源将oracle数据同步达梦数据库
java操作多数据源将oracle数据同步达梦数据库
|
5月前
|
SQL DataWorks 关系型数据库
DataWorks操作报错合集之如何处理数据同步时(mysql->hive)报:Render instance failed
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。

推荐镜像

更多