百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

OGG实现虚拟机-->阿里云单向同步全库数据(DML)--第2部分

mhr18 2024-10-04 17:11 24 浏览 0 评论

概述

前面已经介绍了怎么在源端和目的端安装ogg软件和配置主进程参数,下面介绍下源端数据库的配置和进程组配置。


一、配置源端数据库

1、开启归档模式

修改之前 创建参数文件做备份

create pfile='/tmp/profile' from spfile;
--alter system set log_archive_dest='/arch/orcl' scope=spfile; --修改归档的路径
---alter system set db_recovery_file_dest='' scope=spfile; --关闭闪回
shutdown immediate;
startup mount; --开启归档模式需在mount状态下更改
alter database archivelog;
archive log list;
alter database open;

2、设置数据库force logging

实际生产应用中,最好同时打开ORACLE的强制日志模式,以防止源数据库因直接路径加载忽略redo生成而导致这部分数据无法同步:

SQL> select force_logging from v$database;

SQL> Alter database force logging;

3、开启最小附加日志(DDL的话好开启数据库级别)

Oracle数据库需要开启归档日志,并开启最小附加日志模式。

SQL> select supplemental_log_data_min from v$database; --查看是否开启了最小附加日志模式

SQL> alter database add supplemental log data; --开启最小附加日志模式

千万不要小看这步日志设置,其实在GoldenGate的配置中,这步是最容易出错的环节。如果开启DDL复制做冗灾备份,最好直接在数据库级别打开补全日志:

SQL> alter database add supplemental log data (primary key,unique,foreign key) columns;

检查一下,全是YES就OK了(整个数据库级别补全)

SQL> select supplemental_log_data_min,supplemental_log_data_pk,supplemental_log_data_ui from v$database;

4、源库关闭回收站

SQL> show parameter recyclebin 
SQL> alter system set recyclebin=off scope=spfile;
SQL>shutdown immediate;
SQL>startup;
SQL> show parameter recyclebin

5、UNDO设置

alter system set undo_retention=86400;

6、创建goldengate用户并且授权

6.1 创建表空间、用户、赋予dba权限

create tablespace ogg datafile '/u01/app/oracle/oradata/orcl/ogg01.dbf' size 1024M;
create user ggate identified by ggate default tablespace ogg temporary tablespace temp;
grant connect,resource,unlimited tablespace to ggate;
grant connect,resource,dba to ggate;
grant execute on utl_file to ggate; --配置复制的DDL支持
grant select any dictionary,select any table to ggate;
grant alter any table to ggate;
grant flashback any table to ggate;
grant execute on DBMS_FLASHBACK to ggate;
grant insert any table to ggate;
grant delete any table to ggate;
grant update any table to ggate;

6.2 运行DDL同步需要的脚本(这一步因为我是DML同步,所以可以不用做,做了也没事)

$GGATE ---> /opt/software/ogg
@/opt/software/ogg/marker_setup.sql;
@/opt/software/ogg/ddl_setup.sql;
@/opt/software/ogg/role_setup.sql;
grant GGS_GGSUSER_ROLE to ggate;
@/opt/software/ogg/ddl_enable.sql;

6.3 安装性能优化包。

SQL> @?/rdbms/admin/dbmspool

二、配置源端进程组

1、管理进程mgr

1.1、配置源端./GLOBALS

GGSCI (Oracle11g.ocp.hwb) 1> edit params ./GLOBALS
--在文件中添加以下内容
GGSCHEMA ggate --指定的进行DDL复制的数据库用户
--利用默认的密钥,生成密文:
GGSCI (ogg) 4> encrypt password ggate encryptkey default
Using default key...
Encrypted password: AACAAAAAAAAAAAFAPHODADQGAJVDSHPG

1.2、 配置管理进程mgr

GGSCI (Oracle11g.ocp.hwb) 1> edit param mgr
(粘贴下面这段配置)
PORT 7809
DYNAMICPORTLIST 7820-7830
--AUTOSTART ER *
--AUTORESTART EXTRACT *,RETRIES5,WAITMINUTES 3
--PURGEOLDEXTRACTS ./dirdat/*,usecheckpoints, minkeepdays 3
--userid ggate, password AACAAAAAAAAAAAFAPHODADQGAJVDSHPG, ENCRYPTKY default
--PURGEDDLHISTORY MINKEEPDAYS 11,MAXKEEPDAYS 14
--PURGEMARKERHISTORY MINKEEPDAYS 11, MAXKEEPDAYS 14
--LAGREPORTHOURS 1
--LAGINFOMINUTES 30
--LAGCRITICALMINUTES 45

MANAGER进程参数配置说明

PORT:指定服务监听端口;这里以7839为例,默认端口为7809
DYNAMICPORTLIST:动态端口:可以制定最大256个可用端口的动态列表,当指定的端口不可用时,管理进程将会从列表中选择一个可用的端口,源端和目标段的Collector、Replicat、GGSCI进程通信也会使用这些端口;
COMMENT:注释行,也可以用--来代替;
AUTOSTART:指定在管理进程启动时自动启动哪些进程;
AUTORESTART:自动重启参数设置:本处设置表示每3分钟尝试重新启动所有EXTRACT进程,共尝试5次;
PURGEOLDEXTRACTS:定期清理trail文件设置:本处设置表示对于超过3天的trail文件进行删除。
LAGREPORT、LAGINFO、LAGCRITICAL:
定义数据延迟的预警机制:本处设置表示MGR进程每隔1小时检查EXTRACT的延迟情况,如果超过了30分钟就把延迟作为信息记录到错误日志中,如果延迟超过了45分钟,则把它作为警告写到错误日志中。

1.3、启动管理进程

GGSCI (Oracle11g.ocp.hwb) 8> start mgr

Manager started.

GGSCI (Oracle11g.ocp.hwb) 9> info all

Program Status Group Lag Time Since Chkpt

MANAGER RUNNING

2、抽取进程extnd

2.1、配置抽取进程extnd

增加EXTRAIL

GGSCI (ogg) 1> add extract extnd, tranlog, begin now
EXTRACT added.

说明:tranlog表示要抽取数据库日志;

begin now表示从当前时间点开始抽取

2.2、修改EXTRAIL参数
GGSCI (ogg) 2> edit params extnd
EXTRACT extnd
SETENV (NLS_LANG = "AMERICAN_AMERICA.UTF8")
SETENV (ORACLE_HOME = "/u01/app/oracle/product/11.2.0/db_1")
SETENV (ORACLE_SID = "orcl")
USERID ggate, PASSWORD ggate
EXTTRAIL ./dirdat/nd
DISCARDFILE ./dirdat/extnd.dsc,APPEND,MEGABYTES 5
TRANLOGOPTIONS ALTARCHIVELOGDEST /u01/app/oracle/flash_recovery_area
TRANLOGOPTIONS ALTARCHIVEDLOGFORMAT %t_%s_%r.dbf
--DDL INCLUDE ALL
--DDLOPTIONS ADDTRANDATA
FETCHOPTIONS, USESNAPSHOT, NOUSELATESTVERSION, MISSINGROW REPORT
STATOPTIONS REPORTFETCH
WARNLONGTRANS 1H, CHECKINTERVAL 5M
TABLE sender.*;

说明:查看参数db_recovery_file_dest知道归档日志路径在/u01/app/oracle/flash_recovery_area

添加该extract对应的trail文件,用来存储抽取的数据。单个文件大小设置为100MB,Megabytes:指定队列大小,本处设置表示100M

GGSCI (ogg) 3> add exttrail ./dirdat/nd, extract extnd, megabytes 100
EXTTRAIL added.

3、传输进程dpend

3.1、添加传输进程dpend,配置参数

增加PUMP进程

GGSCI (ogg) 4> add extract dpend, exttrailsource ./dirdat/nd, begin now
EXTRACT added.

3.2、修改PUMP参数

GGSCI (ogg) 1> edit params dpend
EXTRACT dpend
SETENV (NLS_LANG = "AMERICAN_AMERICA.UTF8")
passthru
RMTHOST 39.108.76.234, MGRPORT 7809,compress
RMTTRAIL ./dirdat/nd
dynamicresolution
DISCARDFILE ./dirdat/dpend.dsc,APPEND,MEGABYTES 5
TABLE sender.*;

说明:passthru表示本进程是一个传输进程data pump,无需跟数据库交互,只需要搬运数据即可;

因为data pump要传输数据到目标,所以需要配置rmthost和rmttrail指定目标主机和队列信息

3.3、添加RMTRAILS

GGSCI (ogg) 2> add rmttrail ./dirdat/nd, extract dpend, megabytes 100
RMTTRAIL added.

抽取进程和传输进程其实都是EXTRACT进程,也可以配置在一个进程完成这两个功能,但是当网络传输有问题时,这样抽取也就不能继续运行了,所以推荐分开配置为两个进程;

EXTRACT进程参数配置说明:

SETENV:配置系统环境变量
USERID/ PASSWORD:指定OGG连接数据库的用户名和密码,这里使用3.4部分中创建的数据库用户OGG;
COMMENT:注释行,也可以用--来代替;
TABLE:定义需复制的表,后面需以;结尾
TABLEEXCLUDE:定义需要排除的表,如果在TABLE参数中使用了通配符,可以使用该参数指定排除掉得表。
GETUPDATEAFTERS|IGNOREUPDATEAFTERS:
是否在队列中写入后影像,缺省复制
GETUPDATEBEFORES| IGNOREUPDATEBEFORES:
是否在队列中写入前影像,缺省不复制
GETUPDATES|IGNOREUPDATES:
是否复制UPDATE操作,缺省复制
GETDELETES|IGNOREDELETES:
是否复制DELETE操作,缺省复制
GETINSERTS|IGNOREINSERTS:
是否复制INSERT操作,缺省复制
GETTRUNCATES|IGNORETRUNDATES:
是否复制TRUNCATE操作,缺省不复制;
RMTHOST:指定目标系统及其GoldengateManager进程的端口号,还用于定义是否使用压缩进行传输,本例中的compress为压缩传输;
RMTTRAIL:指定写入到目标断的哪个队列;
EXTTRAIL:指定写入到本地的哪个队列;
SQLEXEC:在extract进程运行时首先运行一个SQL语句;
PASSTHRU:禁止extract进程与数据库交互,适用于Data Pump传输进程;
REPORT:定义自动定时报告;
STATOPTIONS:定义每次使用stat时统计数字是否需要重置;
REPORTCOUNT:报告已经处理的记录条数统计数字;
TLTRACE:打开对于数据库日志的跟踪日志;
DISCARDFILE:定义discardfile文件位置,如果处理中有记录出错会写入到此文件中;
DBOPTIONS:指定对于某种特定数据库所需要的特殊参数;
TRANLOGOPTIONS:指定在解析数据库日志时所需要的特殊参数,例如:对于裸设备,可能需要加入以下参数 rawdeviceoggset 0
WARNLONGTRANS:指定对于超过一定时间的长交易可以在gsserr.log里面写入警告信息,本处配置为每隔3分钟检查一次场交易,对于超过2小时的进行警告;

后面会分享下目的端ogg的配置和进程组配置,感兴趣的朋友可以关注下!

相关推荐

C++开发必知的内存问题及常用的解决方法-经典文章

1.内存管理功能问题由于C++语言对内存有主动控制权,内存使用灵活和效率高,但代价是不小心使用就会导致以下内存错误:omemoryoverrun:写内存越界odoublefree:同一块内...

缓存用不好,系统崩得早!10条军规让你成为缓存高手

凌晨三点,我被电话惊醒:“苏工!首页崩了!”监控显示:缓存命中率0%,数据库QPS10万+,线程阻塞2000+。根本原因竟是同事没加缓存!不会用缓存的程序员,就像不会刹车的赛车手——...

彻底搞清楚内存泄漏的原因,如何避免内存泄漏,如何定位内存泄漏

作为C/C++开发人员,内存泄漏是最容易遇到的问题之一,这是由C/C++语言的特性引起的。C/C++语言与其他语言不同,需要开发者去申请和释放内存,即需要开发者去管理内存,如果内存使用不当,就容易造成...

Java中间件-Memcached(Java中间件大全)

一、知识结构及面试题目分析缓存技术的大规模使用是互联网架构区别于传统IT技术最大的地方,是整体高并发高性能架构设计中是重中之重的关键一笔,也是互联网公司比较偏好的面试题目。按照在软件系统中所处位置...

linux内存碎片防治技术(linux内存碎片整理)

推荐视频:90分钟了解Linux内存架构,numa的优势,slab的实现,vmalloc原理剖析Linux内核内存分配与回收Linuxkernel组织管理物理内存的方式是buddysystem(伙...

Redis主从架构详解(redis主从配置详细过程)

Redis主从架构搭建Redis主节点配置创建主节点目录(/opt/redis-master),复制redis.conf到该目录下,redis.conf配置项修改#后台启动daemonizeyes...

揭开CXL内存的神秘面纱(内存c1)

摘要:现代数据中心对内存容量的高需求促进了内存扩展和分解方面的多条创新线,其中一项获得极大关注的工作是基于ComputeeXpressLink(CXL)的内存扩展。为了更好地利用CXL,研究人员建...

一文彻底弄懂 TPS RPS QPS(tps cps)

以下是关于RPS、QPS、TPS的核心区别与关联的总结,结合实际场景和优化建议:一、核心定义与区别RPS:RequestsPerSecond每秒请求数客户端到服务器的完整请求数量Web服务...

用Redis的“集合”找出你和朋友的“共同关注”

你是不是在刷抖音、微博、小红书的时候,常常会看到这样的提示:“你和XXX有共同关注的博主/朋友”?或者当你关注了一个新的明星,系统会推荐“你的朋友YYY也关注了这位明星”?这个看似简单的功能背后,其实...

WOT2016彭哲夫:科班出身开发者对运维人员的期许

“运维与开发”是老生常谈的话题,前几天和一个运维人聊天,TA说一些公司运维岗位都不公开招聘了,这让众多运维人员情何以堪?是运维的岗位真的饱和了?是找到合适的运维人才难?还是有这样那样的因素?带着这些疑...

Java程序员最常用的20%技术总结(java程序员要掌握什么)

我听说编程语言,经常使用的是其中20%的技术。在Java这门语言中,这20%包括哪些内容?找到一份Java初级程序员的工作,有哪些是必须掌握的,有哪些是可以现学现卖的?一个完整的Javaweb项目,有...

秒杀系统实战(四)| 缓存与数据库双写一致性实战

前言微笑挖坑,努力填坑。————已经拥有黑眼圈,但还没学会小猪老师时间管理学的蛮三刀同学本文是秒杀系统的第四篇,我们来讨论秒杀系统中「缓存热点数据」的问题,进一步延伸到数据库和缓存的...

头条评论精灵翻牌子(头条评论精灵翻牌子怎么弄)

关于“头条评论精灵翻牌子”功能,这通常是指平台通过算法或运营手段,将用户的优质评论随机或定向推送到更显眼的位置(如信息流顶部、独立曝光位等),以提升互动率和用户参与感。以下是详细解析和建议:一、功能理...

15个程序员们都应该知道的大模型高级提示词指令模板和示例

作为程序员你如何写大模型指令?你写的指令是不是更专业呢?下面是15个程序员使用的专业的大模型指令,如果早知道可以能节省你很多时间。这些指令可以用在chatgpt,deepseek等大模型。1.一键...

MyBatis-Plus内置的主键生成策略有大坑,要注意!

昨天小伙伴使用Mybaits-Plus开发的项目线上(集群、K8S)出现了主键重复问题,其报错如下:Mybatis-Plus启动时会通过com.baomidou.mybatisplus.core.to...

取消回复欢迎 发表评论: