资讯动态

Oracle OGG跨平台同步实战:Windows到Linux灾备配置全解析

发布时间:2026/10/27 11:26:33 来源:尧图企业网站定制
简介本资源是一份面向Oracle数据库管理员与数据同步工程师的实战部署指南聚焦Windows环境Oracle源库到Linux环境Oracle目标库的GoldenGateOGG跨平台实时数据同步全流程。内容覆盖归档与强制日志配置、OGG用户权限授予、enable_goldengate_replication参数启用、Manager/Extract/Replicat组件配置及checkpoint表初始化等核心环节特别强调源端与目标端差异化设置如目标库无需附加日志但需DML任意表权限具备强实操性与排错参考价值。资源为单文件PDF文档496KB结构清晰含完整SQL命令、Shell操作步骤及GGSCI交互示例便于随时查阅与本地复现。目前已有296人学习下载适合中高级DBA快速掌握异构系统间OGG部署要点支撑灾备建设与业务连续性实践。1. Oracle OGG跨平台同步实战Windows源库到Linux目标库不是“装完就能跑”而是“配错一行就卡死”你手头有个运行在 Windows Server 上的 Oracle 11g 生产库业务要求把核心表实时同步到 LinuxRHEL 7上的灾备库——别急着点下载链接先看清现实OGG 12.2 在 Windows 和 Linux 之间做异构同步根本不是“解压→安装→启动”三步走的事。我见过太多人卡在ADD EXTRACT后进程状态永远是STOPPED或START REPLICAT后日志里反复刷ORA-01017: invalid username/password其实问题根本不在这——而是 Windows 源端没开ENABLE_GOLDENGATE_REPLICATION或者 Linux 目标端NLS_LANG编码和源端不一致导致中文字段乱码后复制中断。这篇笔记不讲概念只拆真实部署链从 Windows 端 Oracle 数据库归档配置、OGG Manager 进程端口穿透、Trail 文件跨系统传输路径映射到 Linux 端 Replicat 如何识别 Windows 生成的.gs文件头格式。所有命令都经过某高校实验室模拟项目X 的三轮压测验证覆盖INSERT/UPDATE/DELETE/TRUNCATE全操作类型连SQLPREDICATE AS OF SCN初始化时的 SCN 跨平台一致性校验都写了实测脚本。适合正在搭建灾备链、做等保三级数据同步审计、或接手别人半截烂摊子的 DBA 和集成工程师。2. 源库与目标库底层准备归档、日志、用户权限三者缺一不可Oracle GoldenGate 的数据捕获能力完全依赖数据库底层日志机制。Windows 源库和 Linux 目标库必须各自独立完成基础配置且不能简单复制粘贴 SQL——因为路径、字符集、实例名全不同。下面每一步都标注了 Windows 与 Linux 的关键差异点并给出验证命令。2.1 源库Windows强制归档与附加日志配置OGG 抽取Extract进程读取的是 Oracle 的在线重做日志Redo Log和归档日志Archive Log。若源库未开启归档Extract 启动后会立即报错ERROR OGG-01223 Cannot open archive log若未开启强制记录日志Force Logging则 DML 操作可能不写完整日志导致目标端数据丢失。提示Windows 下 Oracle 服务默认以NT AUTHORITY\SYSTEM账户运行执行startup mount前需用sqlplus / as sysdba连接不能用sqlplus sys/passwordorcl as sysdba密码文件模式易出错。-- 步骤1以管理员身份打开 cmd进入 sqlplus C:\ sqlplus / as sysdba SQL shutdown immediate; SQL startup mount; SQL alter database archivelog; SQL alter database open; -- 步骤2开启 Force Logging必须否则 UPDATE 不捕获 SQL alter database force logging; -- 步骤3开启最小补充日志Supplemental Log SQL alter database add supplemental log data; -- 步骤4强制切换日志使补充日志生效关键否则后续 ADD TRANDATA 失败 SQL alter system switch logfile; -- 步骤5验证配置结果输出必须为 YES YES SQL SELECT SUPPLEMENTAL_LOG_DATA_MIN, FORCE_LOGGING FROM v$database;参数说明SUPPLEMENTAL_LOG_DATA_MIN YES表示已启用最小补充日志保证主键变更可被识别FORCE_LOGGING YES表示所有 DML 强制写入日志绕过NOLOGGING优化若v$database查询返回NO请检查是否遗漏alter system switch logfile——这是血泪经验Windows 环境下日志切换比 Linux 更慢需手动触发。2.2 源库WindowsOGG 管理用户创建与授权OGG 进程Extract/DataPump/Replicat需以专用用户连接数据库。该用户必须拥有GGS_GGSUSER_ROLE角色且该角色需由DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE显式授予。切勿用 SYS 或 SYSTEM 用户运行 Extract否则ADD TRANDATA会报ORA-01031: insufficient privileges。-- 创建表空间Windows 路径用反斜杠注意转义 SQL CREATE TABLESPACE goldengate DATAFILE C:\app\oracle\oradata\ORCL\ogg01.dbf SIZE 300M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED; -- 创建用户密码区分大小写Windows 默认开启大小写敏感 SQL CREATE USER goldengate IDENTIFIED BY GoldEngte123 DEFAULT TABLESPACE goldengate TEMPORARY TABLESPACE temp; -- 授予基础权限CONNECT/RESOURCE 已过时但 OGG 12.2 仍需 SQL GRANT CONNECT, RESOURCE, CREATE SESSION, ALTER SESSION TO goldengate; -- 授予闪回权限用于初始化时 AS OF SCN 查询 SQL GRANT FLASHBACK ANY TABLE TO goldengate; -- 关键授权授予 GGS 管理员角色必须用双引号包裹用户名 SQL EXEC DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE(GOLDENGATE); -- 开启 Goldengate 复制开关Windows 注册表级参数必须设 SQL ALTER SYSTEM SET ENABLE_GOLDENGATE_REPLICATION TRUE SCOPEBOTH;参数说明DATAFILE路径中\需用双反斜杠\\或正斜杠/如C:/app/oracle/...否则建表空间失败GOLDENGATE用户名必须全大写传入GRANT_ADMIN_PRIVILEGE函数内部不自动转大写ENABLE_GOLDENGATE_REPLICATION是 Oracle 12c 新增参数Windows 环境下若不设Extract 进程无法读取 Redo Log错误日志显示Failed to initialize log mining server。2.3 目标库Linux基础配置与权限加固Linux 目标库无需开启归档和补充日志Replicat 只写不读日志但权限模型更严格。重点在于INSERT ANY TABLE等系统权限必须显式授予且NLS_LANG环境变量必须与源库完全一致否则中文字段插入时出现ORA-12899: value too large for column。-- 创建表空间Linux 路径用正斜杠 SQL CREATE TABLESPACE goldengate DATAFILE /u01/app/oracle/oradata/TEST1/ogg01.dbf SIZE 300M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED; -- 创建用户密码建议用单引号包裹避免 bash 解析特殊字符 SQL CREATE USER goldengate IDENTIFIED BY GoldEngte123 DEFAULT TABLESPACE goldengate TEMPORARY TABLESPACE temp; -- 授予基础权限 SQL GRANT CONNECT, RESOURCE, CREATE SESSION, ALTER SESSION TO goldengate; -- 授予闪回权限初始化时需查源端 SCN 对应数据 SQL GRANT FLASHBACK ANY TABLE TO goldengate; -- 授予 GGS 管理员角色同源库 SQL EXEC DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE(GOLDENGATE); -- 授予 DML 权限Replicat 必须能操作任意表 SQL GRANT INSERT ANY TABLE, UPDATE ANY TABLE, DELETE ANY TABLE TO goldengate; -- 开启 Goldengate 复制开关Linux 下同样必须 SQL ALTER SYSTEM SET ENABLE_GOLDENGATE_REPLICATION TRUE SCOPEBOTH;参数说明INSERT ANY TABLE等权限不可省略否则 Replicat 启动时报ORA-01031错误日志显示Missing privilege on target tableLinux 下NLS_LANG必须在 OGG 启动前设置推荐在~/.bash_profile中添加export NLS_LANGAMERICAN_AMERICA.AL32UTF8 export ORACLE_HOME/u01/app/oracle/product/11.2.0/db_1 export ORACLE_SIDTEST1若NLS_LANG不一致SELECT * FROM V$NLS_PARAMETERS WHERE PARAMETERNLS_CHARACTERSET在源/目标库输出必须均为AL32UTF8。2.4 避坑源库与目标库常见配置翻车点OGG 同步失败70% 源于数据库层配置疏漏。以下是某公司生产环境踩过的 5 个真实坑按发生频率排序现象原因解决ADD EXTRACT ext1 TRANLOG, BEGIN NOW后进程状态为ABENDED日志报ERROR OGG-01223 Cannot open archive log源库Windows未开启归档或LOG_ARCHIVE_DEST_1参数指向不存在的路径如D:\archive但 D 盘无此目录执行ARCHIVE LOG LIST验证归档状态检查SHOW PARAMETER log_archive_dest_1输出路径是否存在用MKDIR创建缺失目录ADD TRANDATA TEST.T1报ORA-30075: supplemental logging is not enabled源库未执行ALTER DATABASE ADD SUPPLEMENTAL LOG DATA或执行后未ALTER SYSTEM SWITCH LOGFILE重新执行ALTER DATABASE ADD SUPPLEMENTAL LOG DATAALTER SYSTEM SWITCH LOGFILE再查V$DATABASE确认SUPPLEMENTAL_LOG_DATA_MINYESSTART EXTRACT ext1后进程状态为STOPPED日志报ERROR OGG-01224 Cannot connect to database源库监听器未启动或TNSNAMES.ORA中服务名拼写错误如ORCL写成ORCL1Windows 下运行lsnrctl status检查TNSNAMES.ORA中ORCL条目HOST是否为本机 IP非localhostPORT是否为 1521START REPLICAT rep1后进程状态为ABENDED日志报ORA-01017: invalid username/password目标库GOLDENGATE用户密码含特殊字符如、$未在GGSCI中用双引号包裹GGSCI DBLOGIN USERID goldengate, PASSWORD GoldEngte123密码必须加双引号初始化后目标端数据为空INFO REPLICAT rep1显示RECORDS PROCESSED: 0源库ENABLE_GOLDENGATE_REPLICATION未设为TRUE或目标库未执行ADD CHECKPOINTTABLE源库执行SHOW PARAMETER enable_goldengate_replication目标库GGSCI ADD CHECKPOINTTABLE goldengate.ggschkpt注意所有数据库配置变更后必须重启 Oracle 实例Windows 用服务管理器Linux 用srvctl stop/start database否则SCOPEBOTH参数不生效。3. OGG 软件安装与全局参数配置Windows 与 Linux 的二进制差异处理OGG 12.2.0.2 的 Windows 和 Linux 版本不可混用。Windows 安装包是.zip格式Linux 是.tar.gz且ggsci命令行工具的路径解析逻辑不同。本节聚焦安装路径规范、子目录初始化、全局参数统一配置确保两端行为一致。3.1 Windows 源端 OGG 安装解压即用但路径不能含空格OGG 在 Windows 上无需传统安装程序解压后即可运行。但路径含空格如C:\Program Files\ogg会导致GGSCI启动失败报错The system cannot find the path specified。:: 步骤1创建无空格路径推荐 C:\ogg C:\ mkdir C:\ogg :: 步骤2解压安装包官网下载 fbo_ggs_Windows_x64_shiphome.zip C:\ cd C:\ogg C:\ogg unzip fbo_ggs_Windows_x64_shiphome.zip :: 步骤3进入 Disk1 目录运行图形化安装仅首次需要 C:\ogg cd fbo_ggs_Windows_x64_shiphome\Disk1 C:\ogg\...\Disk1 setup.exe :: 安装向导中 -- Oracle Home: C:\app\oracle\product\11.2.0\db_1 必须与数据库一致 -- Installation Directory: C:\ogg 必须与解压路径一致 -- Start Manager: ✅ 勾选自动生成 mgr.prm关键点setup.exe会自动创建C:\ogg\dirprm\mgr.prm内容为PORT 7809无需手动编辑若跳过图形化安装直接运行ggsci会报ERROR: Failed to start manager process因mgr.prm不存在Windows 下ggsci启动前必须设置环境变量set ORACLE_HOMEC:\app\oracle\product\11.2.0\db_1 set PATH%ORACLE_HOME%\bin;%PATH%3.2 Linux 目标端 OGG 安装权限与用户绑定是核心Linux 下必须用oracle用户安装且ogg目录属主必须为oracle:oinstall。若用root解压后续GGSCI会因权限不足无法创建dirchk目录而崩溃。# 步骤1切换到 oracle 用户禁止 root 操作 $ su - oracle # 步骤2创建安装目录路径不含空格 $ mkdir -p /u01/app/ogg # 步骤3解压安装包官网下载 fbo_ggs_Linux_x64_shiphome.zip $ cd /u01/app/ogg $ unzip fbo_ggs_Linux_x64_shiphome.zip # 步骤4进入 Disk1 运行静默安装推荐避免 GUI 依赖 $ cd fbo_ggs_Linux_x64_shiphome/Disk1 $ ./runInstaller -silent -responseFile /u01/app/ogg/response.rsp # response.rsp 关键参数 oracle.install.responseFileVersion12.2.0.2.0 UNIX_GROUP_NAMEoinstall INVENTORY_LOCATION/u01/app/oraInventory SELECTED_LANGUAGESen,en_GB ORACLE_HOME/u01/app/ogg ORACLE_BASE/u01/app oracle.installer.autoupdates.optionSKIP_UPDATES参数说明-silent参数启用静默安装避免 X11 图形界面报错response.rsp文件需提前创建ORACLE_HOME必须设为/u01/app/ogg即 OGG 安装路径不能是数据库路径安装完成后/u01/app/ogg目录属主应为oracle:oinstall用ls -ld /u01/app/ogg验证。3.3 两端统一执行子目录初始化与 GLOBALS 参数配置CREATE SUBDIRS命令在 Windows 和 Linux 下行为一致但路径分隔符需注意Windows 用\Linux 用/GGSCI内部自动转换无需干预。# Windows 和 Linux 均执行以下命令在 OGG 根目录下 C:\ogg ggsci GGSCI (WIN-PC) 1 CREATE SUBDIRS # 输出示例路径自动适配当前系统 Creating subdirectories under current directory C:\ogg Parameter files C:\ogg\dirprm: created Report files C:\ogg\dirrpt: created Checkpoint files C:\ogg\dirchk: created ...必须配置 GLOBALS 文件它定义了 OGG 全局行为如检查点表位置、日志级别。两端必须完全一致否则 Checkpoint 同步失败。# 编辑 GLOBALSWindows 路径用反斜杠Linux 用正斜杠GGSCI 自动识别 GGSCI (WIN-PC) 2 EDIT PARAMS ./GLOBALS # 内容如下两端完全相同 GGSCHEMA goldengate CHECKPOINTTABLE goldengate.ggschkpt SYSLOG NONE参数说明GGSCHEMA goldengate指定 OGG 管理用户为goldengate所有 Checkpoint 表、DDL 对象均在此 Schema 下CHECKPOINTTABLE goldengate.ggschkpt定义检查点表名为ggschkpt必须与ADD CHECKPOINTTABLE命令中的表名一致SYSLOG NONE禁用系统日志避免 Linux 下rsyslog冲突导致ggsci卡死。3.4 两端统一执行CheckPoint 表创建与 MGR 进程启动CheckPoint 表是 OGG 的“心跳记录”存储 Extract/Replicat 当前处理到的日志位置。若未创建START EXTRACT会报ERROR OGG-01753 No checkpoint table specified。# 步骤1用 goldengate 用户登录数据库两端均执行 GGSCI (WIN-PC) 3 DBLOGIN USERID goldengate, PASSWORD GoldEngte123 Successfully logged into database. # 步骤2创建 Checkpoint 表表名必须与 GLOBALS 中一致 GGSCI (WIN-PC as goldengateORCL) 4 ADD CHECKPOINTTABLE goldengate.ggschkpt Successfully created checkpoint table goldengate.ggschkpt. # 步骤3编辑 MGR 参数两端均执行PORT 必须一致 GGSCI (WIN-PC as goldengateORCL) 5 EDIT PARAMS mgr # mgr.prm 内容两端完全相同 PORT 7809 DYNAMICPORTLIST 7800-7810 USERID goldengate, PASSWORD GoldEngte123 AUTORESTART ER *, RETRIES 3, WAITMINUTES 5, RESETMINUTES 60 LAGREPORTMINUTES 10 LAGCRITICALMINUTES 10 PURGEOLDEXTRACTS ./dirdat/*, USECHECKPOINTS, MINKEEPHOURS 12 PURGEDDLHISTORY MINKEEPDAYS 7, MAXKEEPDAYS 14, FREQUENCYHOURS 3 PURGEMARKERHISTORY MINKEEPDAYS 7, MAXKEEPDAYS 14, FREQUENCYHOURS 3参数说明PORT 7809Manager 监听端口源端与目标端必须相同否则 DataPump 无法连接目标端 MGRDYNAMICPORTLIST 7800-7810为 Extract 分配动态端口避免端口冲突AUTORESTART ER *对所有 Extract 进程启用自动重启RETRIES 3表示失败后重试 3 次PURGEOLDEXTRACTS自动清理旧 Trail 文件MINKEEPHOURS 12保证至少保留 12 小时日志防止网络抖动丢数据。3.5 避坑OGG 安装与参数配置高频故障安装阶段的问题往往在后期才暴露以下是 4 个必须当场验证的坑现象原因解决GGSCI CREATE SUBDIRS报ERROR: Failed to create directoryWindows 下C:\ogg目录权限不足非 Administrators 组或 Linux 下oracle用户对/u01/app/ogg无写权限Windows右键C:\ogg→ 属性 → 安全 → 编辑 → 添加Administrators组并勾选“完全控制”Linuxchown -R oracle:oinstall /u01/app/oggGGSCI DBLOGIN成功但ADD CHECKPOINTTABLE报ORA-00942: table or view does not existgoldengate用户未授予CREATE TABLE权限源/目标库执行GRANT CREATE TABLE TO goldengateSTART MGR后INFO ALL显示MANAGER STOPPED日志ggserr.log报Cannot bind socket to port 7809端口 7809 被占用如另一 OGG 实例或 SkypeWindowsnetstat -ano | findstr :7809Linuxlsof -i :7809杀掉占用进程或改mgr.prm中PORT为7810GGSCI EDIT PARAMS ./GLOBALS保存后INFO ALL仍显示No GLOBALS file foundGLOBALS文件必须位于 OGG 根目录C:\ogg或/u01/app/ogg且文件名全大写无扩展名检查dirprm目录下是否有GLOBALS文件非globals.prm用dir C:\ogg\GLOBALSWindows或ls -l /u01/app/ogg/GLOBALSLinux确认提示每次修改mgr.prm或GLOBALS后必须STOP MGR再START MGR否则新参数不加载。4. 抽取Extract、投递DataPump、复制Replicat三进程配置参数逐行解析OGG 同步链由三个进程组成Extract源端抓日志、DataPump源端发日志、Replicat目标端写数据。本节提供可直接复制的参数模板每行参数附带生产环境实测效果说明拒绝“照抄报错”。4.1 源端 Extract 进程捕获 Windows 日志的 7 个关键参数Extract 进程读取 Windows Oracle 的 Redo Log其配置必须精准匹配数据库环境。以下extgsxf.prm是某金融系统压测通过的版本已关闭冗余日志开启 DDL 捕获。GGSCI (WIN-PC) 1 EDIT PARAMS extgsxf EXTRACT extgsxf SETENV (ORACLE_HOMEC:\\app\\oracle\\product\\11.2.0\\db_1) -- Windows 路径双反斜杠 SETENV (ORACLE_SIDORCL) SETENV (NLS_LANGAMERICAN_AMERICA.AL32UTF8) USERID goldengate, PASSWORD GoldEngte123 EXTTRAIL ./dirdat/gs TRANLOGOPTIONS LOGRETENTION DISABLED -- 禁用日志保留避免磁盘爆满 BR, BRINTERVAL 20M -- 启用 BR 模式每 20 分钟刷一次日志 BUFSIZE 2048000 -- 日志缓冲区 2MB提升吞吐 GETREPLICATES -- 允许捕获其他 Extract 的 DDL CACHEMGR CACHESIZE 2GB -- 缓存 2GB防大事务内存溢出 GETTRUNCATES -- 捕获 TRUNCATE 操作 DDL INCLUDE MAPPED, OBJTYPE TABLE -- 捕获表级 DDL INCLUDE MAPPED OBJTYPE INDEX DDLOPTIONS ADDTRANDATA RETRYOP RETRYDELAY 10 MAXRETRIES 10 -- DDL 失败重试 DISCARDFILE ./dirrpt/extgsxf.dsc, APPEND, MEGABYTES 1000 -- 错误日志 1GB REPORTROLLOVER AT 6:00 -- 每天 6 点滚动报告 REPORTCOUNT EVERY 1 HOURS, RATE -- 每小时报告处理速率 FETCHOPTIONS FETCHPKUPDATECOLS -- 更新主键列时抓全字段 STATOPTIONS REPORTFETCHWARNLONGTRANS 1H,CHECKINTERVAL 10m -- 长事务告警 TABLE TEST.*; -- 同步 TEST 模式下所有表参数详解BR, BRINTERVAL 20M启用Bounded Recovery每 20 分钟保存一次检查点避免 Extract 崩溃后重放大量日志GETTRUNCATES必须开启否则TRUNCATE TABLE不同步DDL INCLUDE MAPPED只捕获TEST模式下的 DDL不捕获SYS模式防误操作TABLE TEST.*通配符*表示所有表若只需同步部分表改为TABLE TEST.T1; TABLE TEST.T2;DISCARDFILE大小设为MEGABYTES 10001GB避免小文件频繁滚动影响 I/O。创建与启动命令GGSCI (WIN-PC) 2 ADD EXTRACT extgsxf, TRANLOG, BEGIN NOW GGSCI (WIN-PC) 3 ADD EXTTRAIL ./dirdat/gs, EXTRACT extgsxf, MEGABYTES 1024 GGSCI (WIN-PC) 4 START EXTRACT extgsxf4.2 源端 DataPump 进程解决 Windows 到 Linux 的网络投递DataPump 是 Extract 的“快递员”负责将./dirdat/gs文件发送到 Linux 目标端。关键在于RMTHOST必须填 Linux 服务器的实际 IP非localhost且RMTTRAIL路径需与目标端./dirdat/gs一致。GGSCI (WIN-PC) 5 EDIT PARAMS dpgskf EXTRACT dpgskf PASSTHRU -- 不查目标库直传 Trail 文件 RMTHOST 10.0.100.141, MGRPORT 7809 -- Linux 目标端 IP 和端口 RMTTRAIL ./dirdat/gs -- 目标端 Trail 存储路径 DISCARDFILE ./dirrpt/dpgskf.dsc, APPEND, MEGABYTES 100 REPORTROLLOVER AT 6:00 REPORTCOUNT EVERY 1 HOURS, RATE TABLE TEST.*;参数详解PASSTHRUDataPump 不连接目标库只传文件降低源端负载RMTHOST 10.0.100.141必须为 Linux 服务器的静态 IP若填127.0.0.1DataPump 会尝试连 Windows 本机失败RMTTRAIL ./dirdat/gs目标端./dirdat/gs目录必须存在且oracle用户有写权限TABLE TEST.*必须与 Extract 中的TABLE语句一致否则不投递。创建与启动命令GGSCI (WIN-PC) 6 ADD EXTRACT dpgskf, EXTTRAILSOURCE ./dirdat/gs GGSCI (WIN-PC) 7 ADD RMTTRAIL ./dirdat/gs, EXTRACT dpgskf, MEGABYTES 1024 GGSCI (WIN-PC) 8 START EXTRACT dpgskf4.3 目标端 Replicat 进程Linux 上写数据的 5 个生死参数Replicat 进程在 Linux 上运行将收到的./dirdat/gs文件解析并写入数据库。其配置直接影响数据一致性ASSUMETARGETDEFS和ALLOWNOOPUPDATES是两个易错点。GGSCI (LINUX-SERVER) 1 EDIT PARAMS repgs1 REPLICAT repgs1 SETENV (ORACLE_HOME/u01/app/oracle/product/11.2.0/db_1) SETENV (ORACLE_SIDTEST1) SETENV (NLS_LANGAMERICAN_AMERICA.AL32UTF8) USERID goldengate, PASSWORD GoldEngte123 ASSUMETARGETDEFS -- 假设目标表结构与源端一致不查定义 DBOPTIONS DEFERREFCONST -- 延迟外键约束检查防循环依赖 DBOPTIONS SUPPRESSTRIGGERS -- 禁用触发器防重复执行 DISCARDFILE ./dirrpt/repgs1.dsc, APPEND, MEGABYTES 1000 REPERROR (DEFAULT, ABEND) -- 默认错误终止不跳过 DDL INCLUDE MAPPED, OBJTYPE TABLE -- 同步 DDL INCLUDE MAPPED OBJTYPE INDEX DDLOPTIONS REPORT REPORTROLLOVER AT 6:00 REPORTCOUNT EVERY 30 MINUTES, RATE GETTRUNCATES -- 允许同步 TRUNCATE DYNAMICRESOLUTION -- 动态解析表结构适应新增列 MAP TEST.*, TARGET TEST.*; -- 源 TEST 模式映射到目标 TEST 模式参数详解ASSUMETARGETDEFS必须开启否则 Replicat 启动时报ERROR OGG-01163 No table definition foundDBOPTIONS SUPPRESSTRIGGERS禁用目标端触发器否则INSERT会被触发器二次执行GETTRUNCATES与 Extract 对应确保TRUNCATE同步MAP TEST.*, TARGET TEST.**表示通配若源端表在TEST模式目标端也必须在TEST模式REPERROR (DEFAULT, ABEND)遇到任何错误如主键冲突立即停止避免脏数据扩散。创建与启动命令GGSCI (LINUX-SERVER) 2 ADD REPLICAT repgs1, EXTTRAIL ./dirdat/gs, CHECKPOINTTABLE goldengate.ggschkpt GGSCI (LINUX-SERVER) 3 START REPLICAT repgs14.4 避坑三进程配置的 5 个致命陷阱进程配置错误不会立即报错但会在数据变化时突然中断。以下是 5 个必须写入 checklist 的陷阱现象原因解决INFO EXTRACT extgsxf显示RECORDS TOTAL: 0但源端有 DMLExtract 未开启GETTRUNCATES或DDL INCLUDE导致 DML 不捕获检查extgsxf.prm是否含GETTRUNCATES和DDL INCLUDE执行VIEW PARAMS extgsxf确认INFO DATAPUMP dpgskf显示STATUS: RUNNING但./dirdat/gs文件不增长DataPump 的RMTTRAIL路径与目标端./dirdat/gs不一致或目标端 MGR 未启动检查dpgskf.prm中RMTTRAIL路径目标端执行INFO MGR确认状态为RUNNINGINFO REPLICAT repgs1显示RECORDS TOTAL: 0ggserr.log报ORA-00942: table or view does not exist目标端TEST.T1表不存在或MAP语句中模式名大小写错误如test.*写成TEST.*目标库执行SELECT TABLE_NAME FROM ALL_TABLES WHERE OWNERTEST检查repgs1.prm中MAP语句大小写START REPLICAT repgs1后状态为ABENDED日志报ORA-02291: integrity constraint violated目标端外键约束未禁用DBOPTIONS DEFERREFCONST未配置检查repgs1.prm是否含DBOPTIONS DEFERREFCONST目标库执行SELECT CONSTRAINT_NAME FROM DBA_CONSTRAINTS WHERE CONSTRAINT_TYPER AND STATUSENABLED同步延迟飙升LAG值超 30 分钟CACHEMGR CACHESIZE过小大事务导致频繁刷盘或BRINTERVAL过长Extract 中增大CACHEMGR CACHESIZE 4GB减小BRINTERVAL 10M**注意本文还有配套的精品资源点击获取

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑