==========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