Windows 安装 OGGMA For MSSQL 避坑指南
大家好,这里是公众号 DBA学习之路,分享一些学习数据库路上的知识和经验。

@TOC
前言
这两天折腾 Windows 安装 OGGMA 21.19 MSSQL,因为 OGGMA 官方文档主要面向 Linux/Unix 环境,在 Windows 平台部署时遇到了两个问题,在网上没有搜索到解决方案,新版 MOS 也是摆设,好在最后问题顺利解决了。
本文记录一下问题发生以及解决的过程,希望本次排错经历能为在 Windows 平台部署 OGG 的同仁提供参考,避免因环境差异而踩坑。
问题记录
问题一
OGGMA 第一次安装失败,删除所有文件重新安装,已经删除所有注册表已经服务。
第二次安装到这一步报错:

经查询百度,提示都是 Linux 版本,需要删除 inventory 文件 /u01/app/oraInventory/ContentsXML/inventory.xml 中的记录:
1 | <HOME NAME="OraHome1" LOC=".../ogg" TYPE="O" IDX="3"/> |
但是我这台是 Windows,而且是 MSSQL,不知道 inventory 文件在哪里,最后在注册表找到了这个位置:
1 | 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE |

找到 C:\Program Files\Oracle\Inventory\ContentsXML 目录下的 inventory 文件:

编辑文件找到这一行删掉即可:

结束安装进程,重新执行安装:

问题解决。
问题二
执行 bat 脚本报错:
1 | ----------------------------------------------------- |
但是服务是成功创建的:

不过无法启动:

可以看到服务对应的执行文件是 C:\ogg\oggma\bin\OracleGoldenGate.cmd:

查看文件内容:
1 | @echo off |
可以看到这个批处理脚本是用于启动 ServiceManager.exe,为什么会启动失败,手动执行试试:
1 | C:\ogg\oggma\bin>cd C:\ogg\oggma\bin |


deploymentRegistry.dat 这个文件的实际位置是 C:\ogg\ogginst\sm\etc\conf:

为什么会被识别到 C:\ogg\oggma\etc\conf/ 目录下呢?
难道跟我配置的 OGG_HOME 有关?

删掉之后再次执行,靠,还真是,好了!

看来还是习惯作怪,Linux 安装的习惯拿到 Windows 上了,导致问题发生!
再次手动启动服务,成功运行:

问题解决!
写在最后
这两个问题解决后,其他的就没什么问题了,oggca 的配置方式参考 Linux 即可。
