OGG-配置源端为Linux和目标端为window10的数据同步
Posted 没刮胡子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 test
default tablespace test_tablespace
temporary 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 a20
SQL> 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 |
Oracle | Oracle 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 retryop
map 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的数据同步的主要内容,如果未能解决你的问题,请参考以下文章
ORACLE 11G R2 RAC classical install OGG12.1(LINUX) 经典抽取模式单项同步配置OGG12.1