ogg命令

==========mgr进程===========

START MGR

STOP MGR ! 强制停止

VIEW MGR

INFO MGR

STATUS MGR

修改 mgr.prm 后重载配置(不用重启 MGR)

SEND MGR REFRESH

查看当前 MGR 加载的所有参数

VIEW PARAMS MGR

VIEW REPORT MGR

查看端口监听是否生效(Linux)

netstat -lnp | grep mgr

ss -lnpt | grep 7809

查看所有进程自动重启统计

INFO ALL

VIEW PROCESSREPORTS

edit params mgr

start mgr

参数文件

##########################################################################

1. 基础监听端口(必配,固定端口,客户端连接MGR的端口)

PORT 7809

绑定本机IP,多网卡环境必加,只监听指定网卡,安全加固

LISTENADDR 192.168.1.100

本地回环监听,本地GGSCI访问兼容

LISTENADDR 127.0.0.1

动态端口范围:Extract/DataPump/Replicat自动占用此区间端口

DYNAMICPORTLIST 7810-7830

动态端口最大重试分配次数

DYNAMICPORTRETRIES 5

##########################################################################

2. 进程健康监控 + 异常自动重启(生产核心配置)

MGR扫描所有GG进程状态的间隔(单位:秒)

AUTOSTART EXTRACT *

AUTOSTART REPLICAT *

进程异常终止后自动重启

AUTORESTART EXTRACT *, RETRIES 5, WAITMINUTES 2, RESETMINUTES 60

AUTORESTART REPLICAT *, RETRIES 5, WAITMINUTES 2, RESETMINUTES 60

参数说明:

RETRIES:最大重启次数;WAITMINUTES:崩溃后等待几分钟再拉起

RESETMINUTES:累计多久无崩溃则重置重启计数器

检测进程无响应僵死(hang)判定:进程存活但长时间无日志输出判定卡死

PURGEOLDEXTRACTS ./dirdat/*, USECHECKPOINTS, MINKEEPHOURS 96

PURGEOLDEXTRACTS:自动清理过期trail文件

USECHECKPOINTS:依据复制检查点清理,不会删掉复制还需要的trail(推荐)

MINKEEPHOURS:trail文件最低保留时长(小时)

PURGEOLDEXTRACTS ./dirdef/*, MINKEEPDAYS 7

PURGEOLDEXTRACTS ./dirrpt/*, MINKEEPDAYS 14

##########################################################################

3. 延迟/滞后告警阈值(同步延迟监控告警)

抽取进程抽取延迟告警(单位:分钟)

LAGREPORTHOURS 1

LAGINFOMINUTES 10

LAGWARNINGMINUTES 30

LAGCRITICALMINUTES 60

投递/复制进程延迟告警

LAGREPORTHOURS 1

LAGREPLICATLAGINFOMINUTES 10

LAGREPLICATLAGWARNINGMINUTES 30

LAGREPLICATLAGCRITICALMINUTES 60

延迟采样检测频率(秒)

LAGCHECKINTERVAL 300

##########################################################################

4. 磁盘空间水位告警(防止磁盘打满宕库)

磁盘剩余百分比告警

DISKWARNINGPERCENT 10

DISKCRITICALPERCENT 5

磁盘检测路径(GG安装目录所在磁盘)

DISKCHECKPATH /u01/ogg19c

DISKCHECKINTERVAL 300

##########################################################################

5. 日志、报告、告警配置

MGR进程日志存放路径

单文件100M轮转,最多留存6份日志,自动淘汰最旧文件

LOGFILE ./dirlog/mgr.log, MINSIZE 100M, PURGEONROLL, MAXFILES 6

VERBOSELOG

LOGALLREPORTS

记录所有进程启停、异常、端口分配事件

VERBOSELOG

自定义告警邮件推送(需配置本机sendmail/postfix)

ALERTMAIL 告警级别:INFO/WARNING/CRITICAL

ALERTMAIL CRITICAL

MAILHOST 192.168.1.20

MAILPORT 25

MAILFROM ogg_mgr@local.com

MAILTO dba@xxx.com,dev@xxx.com

MAILSUBJECT OGG MGR Critical Alert

##########################################################################

6. 操作系统权限、进程运行管控

禁止非指定用户操作GG进程(Linux)

USERID ogg

GROUPID ogg

MGR启动延时(服务器开机时,等待数据库先启动再拉起GG)

BOOTDELAY 180

单位秒:服务器开机后等待180秒再启动MGR,规避数据库未就绪GG报错

关闭MGR时,强制杀掉所有子进程(默认优雅关闭,异常时强制回收)

KILLCHILDREN

限制远程GGSCI管控权限(安全)

只允许指定IP远程连接MGR执行命令

ALLOWIPCONNECTIONS LOCAL, 192.168.1.0/24

DENYIPCONNECTIONS *

##########################################################################

7. 安全加密、网络优化(OGG 12c/19c必备)

启用GG网络传输加密

ENCRYPT ENCRYPTIONPROFILE WALLET

钱包文件路径

WALLETLOCATION ./dirwlt

TCP网络参数优化(高并发同步场景)

TCPBUFFERSIZE 65535

TCPNODELAY

TCPKEEPALIVE

TCPKEEPALIVETIME 60

TCPKEEPALIVEINTVL 10

##########################################################################

8. 队列文件、临时文件清理

PURGEOLDQUEUES ./dirq/*, MINKEEPHOURS 24

PURGEOLDTRANSLOG ./dirtmp/*, MINKEEPDAYS 3

##########################################################################

9. 高可用/集群场景配置(RAC、单机HA)

RAC环境MGR绑定VIP

LISTENADDR 192.168.1.100 VIPONLY

共享文件系统锁定(ASM共享GG目录必加)

FILELOCKTIMEOUT 120

==============数据库配置==============

创建CDB公用用户(用于进程注册和管理)

-- 创建公用用户(必须以C##开头)

CREATE USER c##ggadmin IDENTIFIED BY "YourPassword123" CONTAINER=ALL;

-- 授予基础权限

GRANT CREATE SESSION, ALTER SYSTEM, RESOURCE TO c##ggadmin CONTAINER=ALL;

-- 授予GoldenGate管理权限(关键!)

EXEC DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE('c##ggadmin', CONTAINER=>'ALL');

-- 授予必要的系统权限

GRANT SELECT ANY DICTIONARY TO c##ggadmin CONTAINER=ALL;

GRANT LOGMINING TO c##ggadmin CONTAINER=ALL;

GRANT SET CONTAINER TO c##ggadmin CONTAINER=ALL;

创建PDB本地用户(用于数据操作)

-- 切换到目标PDB

ALTER SESSION SET CONTAINER = <你的PDB名称>;

-- 创建本地用户

CREATE USER ggadmin IDENTIFIED BY "YourPassword123";

-- 授予基础权限

GRANT CREATE SESSION, RESOURCE TO ggadmin;

-- 授予GoldenGate管理权限

EXEC DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE('ggadmin');

-- 授予必要的系统权限

GRANT SELECT ANY TABLE TO ggadmin;

GRANT FLASHBACK ANY TABLE TO ggadmin;

GRANT SELECT ANY DICTIONARY TO ggadmin;

==============附加日志 ==============

GGSCI> DBLOGIN USERIDALIAS gg_pdb_alias

为PDB中的hr Schema启用schema级别的补充日志

GGSCI> ADD SCHEMATRANDATA <你的PDB名称>.hr

为hr.employees表启用补充日志

GGSCI> ADD TRANDATA hr.employees

为没有主键的表指定作为行标识的列

GGSCI> ADD TRANDATA hr.departments, COLS (dept_id, location_id), NOKEY

查看某个表的TRANDATA信息

GGSCI> INFO TRANDATA hr.employees

==============USERIDALIAS ==============

复制代码
GGSCI> ADD CREDENTIALSTORE
复制代码
GGSCI> ALTER CREDENTIALSTORE ADD USER c##ggadmin@<你的CDB服务名>, ALIAS gg_cdb_alias
复制代码
GGSCI> ALTER CREDENTIALSTORE ADD USER c##ggadmin, ALIAS gg_cdb_alias
复制代码
GGSCI> INFO CREDENTIALSTORE

DBLOGIN USERIDALIAS gg_cdb_alias

==============集成模式Extract ==============

复制代码
# 2. 使用CDB公用用户的Alias登录(用于注册)
GGSCI> DBLOGIN USERIDALIAS gg_cdb_alias

# 3. 注册Extract到指定的PDB(关键步骤!)
GGSCI> REGISTER EXTRACT ext1 DATABASE CONTAINER(<你的PDB名称>);

4. 创建集成模式Extract,从当前时间开始捕获

GGSCI> ADD EXTRACT ext1, INTEGRATED TRANLOG, BEGIN NOW;

5. 为Extract指定本地队列文件(Local Trail)

GGSCI> ADD EXTTRAIL ./dirdat/lt, EXTRACT ext1;

指定Extract抽取起始scn

ADD EXTRACT ext1, INTEGRATED TRANLOG, BEGIN CSN <SCN号>;

6. 编辑Extract的参数文件

GGSCI> EDIT PARAMS ext1

-- =============================================

-- Extract参数文件 - ext1

-- 用途:从PDB捕获数据变更

-- =============================================

-- 进程标识

EXTRACT ext1

-- 数据库连接(使用PDB本地用户的Alias)

USERIDALIAS gg_pdb_alias

-- 本地队列文件(必须与ADD EXTTRAIL路径一致)

EXTTRAIL ./dirdat/lt

-- 设置环境变量

SETENV (NLS_LANG="AMERICAN_AMERICA.AL32UTF8")

SETENV (TZ="Asia/Shanghai")

-- =============================================

-- 捕获的表定义(核心配置)

-- =============================================

-- 方式一:指定具体表(推荐,可控性强)

TABLE <你的Schema名称>.EMPLOYEES;

TABLE <你的Schema名称>.DEPARTMENTS;

TABLE <你的Schema名称>.PROJECTS;

-- 可以继续添加更多表...

-- 方式二:使用通配符批量包含(如果表很多)

-- TABLE <你的Schema名称>.*;

-- 方式三:排除某些不需要的表

-- TABLEEXCLUDE <你的Schema名称>.TEMP_*;

-- TABLEEXCLUDE <你的Schema名称>.LOG_*;

-- =============================================

-- 可选:防止数据回环(配合目标端Replicat使用)

-- =============================================

-- TRANLOGOPTIONS EXCLUDETAG <标签值>

-- =============================================

-- 集成模式性能调优参数(可选)

-- =============================================

-- TRANLOGOPTIONS INTEGRATEDPARAMS (

-- MAX_SGA_SIZE 2048,

-- MAX_RECURSIVE 50,

-- MAX_TRAN_DEPENDENCY 1000

-- )

-- =============================================

-- 日志与报告(生产环境可移除或调整)

-- =============================================

-- REPORTCOUNT EVERY 10 MINUTES, RATE

-- REPORTROLLOVER AT 02:00

-- CACHEMGR CACHESIZE 512MB

7. 查看Extract进程状态(此时应为STOPPED)

GGSCI> INFO EXTRACT ext1

8. 查看详细的配置信息

GGSCI> VIEW PARAMS ext1

9. 启动Extract进程

GGSCI> START EXTRACT ext1

10. 查看运行状态

GGSCI> INFO EXTRACT ext1, DETAIL

11. 查看报告日志

GGSCI> VIEW REPORT ext1

12. 查看延迟情况

GGSCI> LAG EXTRACT ext1

查看统计信息

GGSCI> STATS EXTRACT ext1

查看当前状态(每秒更新)

GGSCI> SEND EXTRACT ext1, STATUS

查看日志中的详细信息

GGSCI> SEND EXTRACT ext1, LOG

查看所有进程状态

GGSCI> INFO ALL

查看实时统计

GGSCI> STATS EXTRACT ext1, HOURLY

暂停Extract(维护时使用)

GGSCI> STOP EXTRACT ext1

查看日志文件

GGSCI> VIEW GGSEVT # 查看GGSCI事件日志

GGSCI> VIEW REPORT ext1 # 查看Extract报告

==============初始化数据 ==============

SQL> SELECT CURRENT_SCN FROM V$DATABASE;

CURRENT_SCN

2627102

expdp <用户名>/<密码>@<源端PDB服务名> \
DIRECTORY=<目录对象> \
DUMPFILE=init_data_%U.dmp \
LOGFILE=expdp_init.log \
SCHEMAS=<你要导出的Schema> \
FLASHBACK_SCN=2627102 \
COMPRESSION=ALL \
PARALLEL=4

cluster=no

impdp <用户名>/<密码>@<目标端PDB服务名> \

DIRECTORY=<目录对象> \

DUMPFILE=init_data_%U.dmp \

LOGFILE=impdp_init.log \

SCHEMAS=<要导入的Schema> \

REMAP_SCHEMA=<源Schema>:<目标Schema> \ # 如果Schema名不同则需要

PARALLEL=4

==============复制进程 ==============

假设复制的进程名为 rep1,消费的队列文件是目标端本地的 ./dirdat/rt

GGSCI> ADD REPLICAT rep1, INTEGRATED, EXTTRAIL ./dirdat/rt, BEGIN CSN <scn_number>

EDIT PARAMS rep1

REPLICAT R_PDB

目标RAC库ogg用户 + tns名,自行替换目标库ogg密码

USERID ogg@TGT_RAC_SCAN, PASSWORD "这里替换为目标库ogg实际密码"

两边表结构一致,使用ASSUMETARGETDEFS

ASSUMETARGETDEFS

关闭目标触发器、暂缓外键约束校验,提升同步性能

DBOPTIONS SUPPRESSTRIGGERS

DBOPTIONS DEFERREFCONST

RAC环境关闭DB写入等待

TRANLOGOPTIONS NODBWRITEWAIT

长事务告警

WARNLONGTRANS 1H, CHECKINTERVAL 3M

批量应用优化

BATCHSQL

BATCHESPERQUEUE 100

BATCHDEFERREDTHRESHOLD 10000

兼容无主键表:KEYCOLS(*) 读取源附加日志字段做行匹配

MAP BUS.*, TARGET BUS.*, KEYCOLS(*);

进入ogg家目录执行 ggsci

cd /ogg/ogg19c

./ggsci

创建复制进程,关联本地trail文件ea

ADD REPLICAT R_PDB, EXTTRAIL ./dirdat/ea

起点:从当前时间消费trail(存量数据需要先做数据初始化)

ALTER REPLICAT R_PDB, BEGIN CSN <scn_number>

VIEW PARAMS R_PDB

1. 确认MGR运行

STATUS MGR

START MGR

2. 先启动抽取

START E_PDB

3. 再启动复制

START R_PDB

查看全部进程状态

INFO ALL

STATUS ALL

查看同步延迟

LAG E_PDB

LAG R_PDB

查看进程运行报告(abend崩溃优先看这里)

VIEW REPORT E_PDB

VIEW REPORT R_PDB

实时看mgr总日志

shell tail -f /ogg/ogg19c/dirlog/mgr.log

查看trail文件是否持续写入(文件时间、大小不断变化代表抽取正常抓数据)

shell ls -lrt /ogg/ogg19c/dirdat/ea*

==============ddl配置 ==============

源端 PDB 执行 DDL 初始化(登录业务 PDB)
ALTER SESSION SET CONTAINER = pdb_prod;
-- 创建DDL跟踪表、触发器、序列
EXEC DBMS_GOLDENGATE_SETUP.CREATE_DDL_TRACKING;
-- 给PDB的ogg用户授权访问DDL对象
GRANT ALL ON GG_DDL_HIST TO ogg;
GRANT ALL ON GG_DDL_SEQ TO ogg;

目标端 RAC 库执行 DDL 初始化(任意节点执行,集群全局生效)
-- 目标库普通库,无需切换容器,直接执行
EXEC DBMS_GOLDENGATE_SETUP.CREATE_DDL_TRACKING;
GRANT ALL ON GG_DDL_HIST TO ogg;
GRANT ALL ON GG_DDL_SEQ TO ogg;

授予 OGG 用户执行 DDL 权限(目标库必须)
-- 目标RAC库执行
GRANT CREATE TABLE,ALTER TABLE,DROP TABLE,CREATE INDEX,DROP INDEX,CREATE VIEW,DROP VIEW TO ogg;

修改【抽取进程 E\_PDB.prm】开启捕获 DDL
EXTRACT E_PDB
USERID ogg@pdb_prod, PASSWORD Ogg@2026
DBOPTIONS CONTAINER pdb_prod
TRANLOGOPTIONS DBLOGREADER
TRANLOGOPTIONS EXCLUDEUSER ogg

========== DDL捕获核心配置 ==========

DDL INCLUDE ALL
DDLOPTIONS ADDTRANDATA, REPORT

ADDTRANDATA:DDL执行后自动给新建表补充主键附加日志(无主键表不会自动处理)

REPORT:抽取日志打印捕获到的DDL语句,方便排查

WARNLONGTRANS 2H, CHECKINTERVAL 5M
CACHESIZE 2G
CACHEMGR CACHESIZE 1G

EXTTRAIL ./dirdat/ea, MEGABYTES 100

TABLE抓DML,DDLTABLE抓DDL

TABLE BUS.*;
DDLTABLE BUS.*;

修改完成重载抽取参数
SEND E_PDB REFRESH

修改【复制进程 R\_PDB.prm】开启应用 DDL + DDL 过滤配置
REPLICAT R_PDB
USERID ogg@TGT_RAC_SCAN, PASSWORD "你的目标ogg密码"
ASSUMETARGETDEFS

DBOPTIONS SUPPRESSTRIGGERS
DBOPTIONS DEFERREFCONST
TRANLOGOPTIONS NODBWRITEWAIT

WARNLONGTRANS 1H, CHECKINTERVAL 3M
BATCHSQL
BATCHESPERQUEUE 100
BATCHDEFERREDTHRESHOLD 10000

========== DDL应用基础参数 ==========

DDL INCLUDE ALL
DDLOPTIONS MAPUSEGLOBALTEMP, REPORT

REPORT:打印执行的DDL日志

KEYCOLS兼容无主键表DML

MAP BUS.*, TARGET BUS.*, KEYCOLS(*);

DDL映射规则必须和MAP对应

DDLMAP BUS.*, TARGET BUS.*;

DDL 过滤写法(最常用 4 种场景,直接替换上面 DDL INCLUDE ALL)
只同步指定 DDL 类型(只同步建表、修改表、创建索引;过滤删除表、删除索引)

白名单:只放行 CREATE TABLE、ALTER TABLE、CREATE INDEX

DDL INCLUDE OBJTYPE TABLE OPTYPE CREATE
DDL INCLUDE OBJTYPE TABLE OPTYPE ALTER
DDL INCLUDE OBJTYPE INDEX OPTYPE CREATE

其余所有DDL全部过滤丢弃

DDL EXCLUDE ALL

OPTYPE 可选值:`CREATE、ALTER、DROP、TRUNCATE、RENAME`

方式 2:黑名单过滤(放行全部 DDL,唯独过滤 DROP、TRUNCATE 高危操作)【生产最常用】
DDL INCLUDE ALL

过滤删除表、清空表

DDL EXCLUDE OBJTYPE TABLE OPTYPE DROP
DDL EXCLUDE OBJTYPE TABLE OPTYPE TRUNCATE

方式 3:过滤某几张表的所有 DDL(同步 BUS 全量,唯独过滤 BUS.TMP\_、BUS.BACKUP\_开头的表 DDL)
DDL INCLUDE ALL
DDL EXCLUDE OBJNAME BUS.TMP*
DDL EXCLUDE OBJNAME BUS.BACKUP*

方式 4:只同步指定几张表的 DDL,其余表 DDL 全部丢弃
DDL EXCLUDE ALL
DDL INCLUDE OBJNAME BUS.USER_INFO
DDL INCLUDE OBJNAME BUS.ORDER

方式 5:过滤存储过程、视图、序列 DDL,只保留表相关 DDL
DDL INCLUDE OBJTYPE TABLE
DDL INCLUDE OBJTYPE INDEX
DDL EXCLUDE ALL
OBJTYPE 可选:`TABLE、INDEX、VIEW、SEQUENCE、PROCEDURE、FUNCTION`

五、DDL 过滤优先级规则

EXCLUDE > INCLUDE,书写顺序不影响,排除规则优先级更高。

停止复制进程

STOP R_PDB

重新读取参数

START R_PDB

查看DDL运行日志

VIEW REPORT R_PDB

日志中会打印:Extracted DDL、Applied DDL记录

相关推荐
其实防守也摸鱼2 小时前
Kimi K3深度测评:长文本之外的真实力
运维·开发语言·网络·人工智能·python·学习·安全
imc.112 小时前
linux EXT文件系统
linux·运维·服务器
便利店10243 小时前
快递选「挂号」还是「平邮」?传输层一次讲清
网络·网络协议·tcp/ip·传输层
夜雪一千3 小时前
UDP 协议简介
网络·网络协议·udp
封狼居胥廖3 小时前
网络编程3
网络
三言老师3 小时前
mv移动文件、重命名文件实战案例
linux·服务器·网络·centos
乱世刀疤4 小时前
Claude Code提高工作效率案例:自动化分析工作流程时效性,缩短工单流转时长
运维·自动化
AOwhisky4 小时前
云原生 DevOps 工具链从入门到实战(第二期)——Jenkins安装与基础配置——CICD核心引擎
linux·运维·ci/cd·云原生·jenkins·devops