OGG-配置源端为Linux和目标端为window10的数据同步

2024-01-20 07:18

本文主要是介绍OGG-配置源端为Linux和目标端为window10的数据同步,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1配置前准备(目标端)

1.1创建需要同步的用户和表空间

1.1.1使用数据库管理员登录

$ sqlplus / as sysdba

1.1.2 创建表空间

create tablespace test_tablespace
datafile ' D:\app\JSSR\virtual\oradata\orcl\test_tablespace.dbf'
size 30M
autoextend on next 100M;

1.1.3 创建用户并赋予权限

-- 创建用户
create user test identified by testdefault tablespace test_tablespacetemporary tablespace TEMP;-- 赋予权限
grant CONNECT,RESOURCE,DBA to test;exit;

1.2配置日志模式

1.2.1 配置为规档模式

创建归档日志目录

mkdir D:\app\JSSR\virtual\archive

开启日志

sqlplus / as sysdba
SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database archivelog;
SQL> alter database open; 

设置日志目录

SQL> alter system set log_archive_dest_1='location=D:\app\JSSR\virtual\archive' scope=both;

1.2.2打开强制规档与补充日志模式

SQL> alter database add supplemental log data;
SQL> alter database force logging;
SQL> alter system archive log current;

1.2.3 查看配置结果

col open_mode for a10
col LOG_MODE for a20
col  FORCE_LOGGING for a20SQL> select open_mode,log_mode,supplemental_log_data_min,force_logging from v$database;

1.3开启OGG支持

源端和目标端都需要设置

$ sqlplus / as sysdba
SQL> alter system set enable_goldengate_replication = true;
SQL> exit

1.4创建 GoldenGate数据库帐号并赋予权限

1.4.1创建 init.sql文件

vim init.sql
-- drop user ogg cascade; //删除用户
-- drop tablespace tbs_ogg including contents and datafiles; //删除表空间
-- 创建表空间
create tablespace tbs_ogg datafile ' D:\app\JSSR\virtual\oradata\orcl\tbs_ogg.dbf' size 100M
autoextend on next 50M;
-- 创建 ogg 用户
create user ogg identified by ogg default tablespace tbs_ogg temporary tablespace TEMP
quota unlimited on tbs_ogg;
-- 赋予 ogg 用户权限
grant connect,resource,dba to ogg;

1.4.2执行 sql 文件

# su - oracle
$ sqlplus / as sysdba
SQL>@init.sql

测试登录

sqlplus ogg/ogg

1.5安装 GoldenGate(OGG)软件

准备安装包

V978712-01(OracleGoldenGate12.3.0.1.0-windows64).zip

解压缩以后直接安装就好了注意选择ogg的安装目录以及ORACLE_HOME

2 GoldenGateDML同步(目标端配置)

2.1环境说明

这里我配置的是window10企业版,安装的数据库是Oracle12c Release 12.2.0.1.0

科目版本说明
操作系统Windows 10 企业版20H2
OracleOracle 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
Oracle GoldenGate(Ogg)Version 12.3.0.1.5

2.2目标端 MGR 进程

编辑 MGR 配置文件

d:
cd oggs
ggsci
GGSCI 1>edit params mgr
port 7809
dynamicportlist 7800-8000
autostart er *
autorestart extract *, waitminutes 2, resetminutes 5
lagreporthours 1
laginfominutes 3
lagcriticalminutes 5
purgeoldextracts  D:\oggs\dirdat\rt*,  usecheckpoints,MINKEEPFILES 5

2.3启动 MGR

GGSCI 2>start mgr

2.4添加检查表

说明: 当我们在 GLOBALS 文件里指定了默认的 checkpoint 之后,新的 Replicat groups 在创建时会自动使用这个参数,不需要其他指令

a> 编辑全局配置文件

GGSCI 3>edit params ./GLOBALS

在弹出的记事本中添加

GGSCHEMA ogg
CHECKPOINTTABLE ogg.checkpoint

保存退出。
这里需要退出 ggsci 终端

GGSCI 2>exit

b> 添加checkpoint

步骤一: 重新进入ggsci.exe

步骤二 :登录数据库

GGSCI 1> dblogin userid ogg,password ogg

步骤三: 添加检查表

GGSCI 2> add checkpointtable ogg.checkpoint

步骤四: 退出ggsci

GGSCI (slave) 3> exit

2.5配置目标端 Replicat 进程组

步骤一: 进入ggsci.exe

步骤二: 编辑配置文件

GGSCI 1>edit params repl

在打开的文本文件中增加如下参数:

replicat repl
setenv (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
userid ogg,password ogg
assumetargetdefs
reperror default,discard
discardfile D:\oggs\dirrpt\repl.dsc,append,megabytes 50
dynamicresolution
map test.*, target test.*;

说明:
setenv:设置环境变量
assumetargetdefs:两端数据结构一致使用此参数
reperror:定义出错以后进程的响应一般分为两种::abend 即一旦错误后立即停止复制,
此为缺省配置;discard 出现错误后继续复制,只是把错误的数据放到 discard 文件中。
discardfile:定义 discardfile 文件位置,如果处理中由于记录出错会写入到此文件中。
Megabytes 指定队列大小,这里我设置的是 50M
dynamicresolution:
map:用于指定源端与目标端表的映射关系

然后保存退出。

步骤三: 添加复制进程

GGSCI  2>add  replicat  repl,exttrail  D:\oggs\dirdat\pt,  CHECKPOINTTABLE ogg.checkpoint

步骤四: 启动进程

GGSCI 3>start repl

3 GoldenGateDML同步(源端配置)

1)源 MGR 进程

编辑主管理进程

ggsci
GGSCI 1>edit params mgr

输入 i 进入编辑模式,在文件中增加如下参数:

port 7809
dynamicportlist 7800-8000
autostart er *
autorestart er *,retries 5,waitminutes 2,resetminutes 5
purgeoldextracts /u01/app/oracle/ogg/dirdat/et*,usecheckpoints,minkeepdays 10

说明:
port 指定 mgr 进程通信端口;
dynamicportlist 表示 mgr 进程可以为源与目的端动态通信指定端口;
autorestart er 表示 mgr 启动以后自动启动所有进程组,每 2 分钟尝试重启所有进程,重试5 次,每 5 分钟清零。
purgeoldextracts表示定期清理tail文件这里设置的是超过10天的tail文件进行删除

配置参数后,重启 mgr 进程生效

启动主管理进程

stop mgr
start mgr

2)配置 Extract 进程组

编辑 eora 配置文件

GGSCI 3>edit params eora

输入 i 进入编辑模式,在文件中增加如下参数:

extract eora
dynamicresolution
setenv (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
userid ogg,password ogg
exttrail /u01/app/oracle/ogg/dirdat/et
table test.*;

说明:
extract eora 定义 extract 进程别名
dynamicresolution
setenv 设置环境变量
userid 登录数据库
exttrail 指定本地 trail 文件地址
table 定义同步的表 scott.* 表示 同步 scott 用户下的所有表

添加抽取进程

GGSCI 4>add extract eora, tranlog,begin now

添加本地 trail 文件
添加extract进程的trail文件配置
其中megabytes表示队列大小,这里设置的10m

GGSCI 6>add exttrail /u01/app/oracle/ogg/dirdat/et,extract eora
或
GGSCI 6>add exttrail /u01/app/oracle/ogg/dirdat/et,extract eora,megabytes 10

说明:
创建本地 trail 文件,主 extract 进程负责写这部分文件,pump 负责把这部分文件传到目标服务器端。

启动 eora 服务

GGSCI >start extract eora

查看状态

info all

3)配置 Pump 传输进程组

编辑 pump 配置文件

GGSCI >edit params pump_so
extract pump_so
dynamicresolution
passthru
rmthost 172.23.13.151,mgrport 7809,compress
rmttrail  D:\oggs\dirdat\pt
table test.*;

说明:
dynamicresolution:动态解析表名
passthru:采用 pass-through 模式处理表
rmthost:目标端主机 IP,管理进程端口号,投递传输前压缩队列文件
rmttrail:目标端保存队列文件的目录

添加 pump 进程源端路径

GGSCI 1>add extract pump_so,exttrailsource /u01/app/oracle/ogg/dirdat/et

添加pump 进程远程 trail 文件目标路径

GGSCI 2>add rmttrail D:\oggs\dirdat\pt,extract pump_so

说明: 指定远程 trail 文件

启动 pump 进程

GGSCI 3>start extract pump_so

4 DML同步测试

源端和目标端同时创建 t1 表
注意:需要同步的表必须要有主键,否则更新表数据的时候会报错,从而导致同步失败。

1)源端创建 t1 表

$ sqlplus test/test
SQL> create table t1(
id number(3) primary key,
name varchar2(20)
);

2)目标端创建 t1 表

$sqlplus test/test
SQL> create table t1(
id number(3) primary key,
name varchar2(20)
);

3)源端执行 DML 操作后提交

SQL>insert into t1(id,name) values(100,'张三');
SQL>insert into t1(id,name) values(101,'李四');
SQL>commit;

4)目标端查看

SQL> select * from t1;

能查到下面两条数据,即可

5 GoldenGate DDL 同步

1源端服务器操作

1.1 指定数据库模式

登录ggsci

#su - oracle
$cd /u01/app/oracle/ogg/
$ ggsci

编辑全局参数

GGSCI 1> edit param ./GLOBALS

输入 i 进入编辑模式,在文件中增加如下参数:

ggschema ogg

查看配置

GGSCI 2> view param ./GLOBALS

关闭 MGR

GGSCI 3> stop mgr

退出

GGSCI (master) 4> quit

数据库关闭回收站

关闭回收站。

$sqlplus / as sysdba

在关之前可以先看一下,如果是 on,如下图所示,则回收站是开启的。

SQL>show parameter recyclebin

修改为 off

SQL>alter system set recyclebin=off deferred;

改完需要把数据库重启一下才会生效

SQL>shutdown immediate
SQL>startup
SQL>show parameter recyclebin

1.3 安装 DDL 对象

需要进入 ogg 目录 cd /u01/app/oracle/ogg

$ cd /u01/app/oracle/ogg
$ sqlplus / as sysdba
SQL> grant dba to ogg;

说明: 以下各执行如提示:Enter Oracle GoldenGate schema name,均指定用户:ogg

SQL>@marker_setup
SQL>@ddl_setup
SQL>@role_setup
SQL>grant GGS_GGSUSER_ROLE to ogg;
SQL>@ddl_enable
SQL>@marker_status.sql

注 1: 执行 dbmspool 包将在数据库中创建 DBMS_SHARED_POOL 包,之后 ddl_pin 包需要
用到

SQL>@?/rdbms/admin/dbmspool.sql

注 2: 执行 ddl_pin.sql 通过 dbms_shared_pool.keep 存储过程将 DDLReplication 相关对象
keep 在共享池中,以保证这些对象不要 RELOAD,提升性能。

SQL>@ddl_pin.sql ogg

1.4 修改 eora(抽取)进程的 params 文件

停止 eora(抽取)进程

GGSCI 1> stop extract eora

编辑配置文件

GGSCI 2> edit params eora

输入 i 进入编辑模式,在文件中增加如下红色字体参数:

extract eora
setenv (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
userid ogg,password ogg
exttrail /u01/app/oracle/ogg/dirdat/et
ddl include all
ddloptions addtrandata, report
table test.*;

启动 mgr,eora 进程

GGSCI 4> start mgr
GGSCI 5> start extract eora

查看 eora 进程启动情况

GGSCI 6> info extract eora

2目标端操作

2.1给 ogg 用户增加权限

$ sqlplus / as sysdba
SQL> grant dba to ogg;

2.2修改 replicat 进程的 params 文件

停止 mgr 进程

GGSCI 1>stop mgr

停止 repl 进程

GGSCI 2> stop replicat repl

编辑 repl 配置文件

GGSCI 3> edit params repl

在文件中增加如下红色字体参数:

replicat repl
setenv (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
userid ogg,password ogg
assumetargetdefs
reperror default,discard
discardfile D:\oggs\dirrpt\repl.dsc,append,megabytes 50
ddloptions report
ddlerror default ignore retryop maxretries 3 retrydelay 5
ddlerror default discard
ddlerror default ignore retryopmap test.*, target test.*;

启动 mgr 和 repl 进程

GGSCI 4>start mgr

查看进程
启动 mgr 进程后,系统会自动启动 repl 进程

GGSCI 5> info all

3 DDL同步测试

本节验证源端 t1 表增加字段后,目标端自动改变。

3.1 添加字段前查看表结构:

源端查看:

$ sqlplus test/test
SQL> desc t1;

目标端查看

$sqlplus test/test
SQL> desc t1;

3.2 源端添加字段

SQL> alter table t1 add(sex varchar2(2) default '男');
SQL>desc t1;

3.3 目标端验证

SQL> desc t1;

到此 DDL 同步配置完成。

这篇关于OGG-配置源端为Linux和目标端为window10的数据同步的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/625193

相关文章

VScode连接远程Linux服务器环境配置图文教程

《VScode连接远程Linux服务器环境配置图文教程》:本文主要介绍如何安装和配置VSCode,包括安装步骤、环境配置(如汉化包、远程SSH连接)、语言包安装(如C/C++插件)等,文中给出了详... 目录一、安装vscode二、环境配置1.中文汉化包2.安装remote-ssh,用于远程连接2.1安装2

Java中注解与元数据示例详解

《Java中注解与元数据示例详解》Java注解和元数据是编程中重要的概念,用于描述程序元素的属性和用途,:本文主要介绍Java中注解与元数据的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参... 目录一、引言二、元数据的概念2.1 定义2.2 作用三、Java 注解的基础3.1 注解的定义3.2 内

将sqlserver数据迁移到mysql的详细步骤记录

《将sqlserver数据迁移到mysql的详细步骤记录》:本文主要介绍将SQLServer数据迁移到MySQL的步骤,包括导出数据、转换数据格式和导入数据,通过示例和工具说明,帮助大家顺利完成... 目录前言一、导出SQL Server 数据二、转换数据格式为mysql兼容格式三、导入数据到MySQL数据

C++中使用vector存储并遍历数据的基本步骤

《C++中使用vector存储并遍历数据的基本步骤》C++标准模板库(STL)提供了多种容器类型,包括顺序容器、关联容器、无序关联容器和容器适配器,每种容器都有其特定的用途和特性,:本文主要介绍C... 目录(1)容器及简要描述‌php顺序容器‌‌关联容器‌‌无序关联容器‌(基于哈希表):‌容器适配器‌:(

C#提取PDF表单数据的实现流程

《C#提取PDF表单数据的实现流程》PDF表单是一种常见的数据收集工具,广泛应用于调查问卷、业务合同等场景,凭借出色的跨平台兼容性和标准化特点,PDF表单在各行各业中得到了广泛应用,本文将探讨如何使用... 目录引言使用工具C# 提取多个PDF表单域的数据C# 提取特定PDF表单域的数据引言PDF表单是一

一文详解Python中数据清洗与处理的常用方法

《一文详解Python中数据清洗与处理的常用方法》在数据处理与分析过程中,缺失值、重复值、异常值等问题是常见的挑战,本文总结了多种数据清洗与处理方法,文中的示例代码简洁易懂,有需要的小伙伴可以参考下... 目录缺失值处理重复值处理异常值处理数据类型转换文本清洗数据分组统计数据分箱数据标准化在数据处理与分析过

大数据小内存排序问题如何巧妙解决

《大数据小内存排序问题如何巧妙解决》文章介绍了大数据小内存排序的三种方法:数据库排序、分治法和位图法,数据库排序简单但速度慢,对设备要求高;分治法高效但实现复杂;位图法可读性差,但存储空间受限... 目录三种方法:方法概要数据库排序(http://www.chinasem.cn对数据库设备要求较高)分治法(常

Redis多种内存淘汰策略及配置技巧分享

《Redis多种内存淘汰策略及配置技巧分享》本文介绍了Redis内存满时的淘汰机制,包括内存淘汰机制的概念,Redis提供的8种淘汰策略(如noeviction、volatile-lru等)及其适用场... 目录前言一、什么是 Redis 的内存淘汰机制?二、Redis 内存淘汰策略1. pythonnoe

Linux中shell解析脚本的通配符、元字符、转义符说明

《Linux中shell解析脚本的通配符、元字符、转义符说明》:本文主要介绍shell通配符、元字符、转义符以及shell解析脚本的过程,通配符用于路径扩展,元字符用于多命令分割,转义符用于将特殊... 目录一、linux shell通配符(wildcard)二、shell元字符(特殊字符 Meta)三、s

Linux之软件包管理器yum详解

《Linux之软件包管理器yum详解》文章介绍了现代类Unix操作系统中软件包管理和包存储库的工作原理,以及如何使用包管理器如yum来安装、更新和卸载软件,文章还介绍了如何配置yum源,更新系统软件包... 目录软件包yumyum语法yum常用命令yum源配置文件介绍更新yum源查看已经安装软件的方法总结软