对于Oracle GoldenGate 12c的监控,之前公司开发过自己的平台,使用python脚本定时去执行获取进程状态,并且开发了图形化的界面去查看OGG的进程拓扑图,并支持一些简单的进程添加、删除、新增表同步等操作。Oracle官方也有OGG的相关管理包,包括GoldenGate Monitor,Goldengate veridata,GoldenGate Director等。其中GoldenGate Monitor是基于Oracle Weblogic的Fusion Middleware相关产品,功能强大,可以实现对OGG的监控。由于现在已经使用EMCC12c的监控数据库,并且Oracle em 有支持监控OGG的plug-in,所以考虑使用plug-in去监控OGG,省去了单独部署一套GoldenGate Monitor的工作。
1.相关软件需求以及支持的版本
由于我这边安装的EMCC的版本为12.1.0.5.0,支持的ogg em plug-in的版本只能为12.1.0.3.0,低于此版本的或者高于此版本的plug-in全部下载下来进行了import测试,发现都不支持。 官方文档上的要求: EMCC版本要在12.1.0.4.0或者以上,我这里emcc 12c的版本是12.1.0.5.0 Goldengate monitor Jagent的版本需要在12.1.3.0.3或者以上,这里我安装的Jagent版本为12.2.1.2.0 Oracle Goldengate的版本为Oracle GoldenGate 12c (12.1.2.0.0)以上,我这里安装的版本为 12.2.0.2.2 java要求的最低版本为1.7.0_85,这里需要安装安装的版本为1.8.0_231 注:以上的版本要严格按照要求去选择,否则会出现plug-in无法部署或者jagent启动报错无法监控ogg实例的状态的情况。
2.在监控的目标端主机上部署emcc 12c的agent(此步骤略过,可以参考emcc 12c agent部署的相关文档,有agent clone或者rpm包等方式进行部署)
3.在OMS服务器上,下载GoldenGate Enterprise Manager Plug-In安装包,使用emcli进行导入
[oracle@oramoniter ~]$ emcli login -username=sysman -password=oracle123 Login successful [oracle@oramoniter ~]$ emcli sync Synchronized successfully [oracle@oramoniter ~]$ unzip V137354-01.zip [oracle@oramoniter ~]$ emcli import_update -omslocal -file=/home/oracle/12.1.0.3.0_oracle.fmw.gg_2000_0.opar
登录emcc 12c控制台,点击右上角set up=> extensibility => plug-ins进入界面,可以在Middleware目录下看见Oracle GoldenGate的监控插件:
4.把ogg em plug-in deploy到agent目标端,步骤如下图所示
5.目标端安装OGG Monitor Aagent
5.1.解压安装jdk 1.8
[oracle@rptdb ~]$ tar -xvf jdk-8u231-linux-x64.tar.gz [oracle@rptdb bin]$ /home/oracle/jdk1.8.0_231/bin/java -version java version "1.8.0_231" Java(TM) SE Runtime Environment (build 1.8.0_231-b11) Java HotSpot(TM) 64-Bit Server VM (build 25.231-b11, mixed mode)
5.2.安装Jagent
--解压OGG Monitor安装包 [oracle@rptdb ~]$ unzip fmw_12.2.1.2.0_ogg_Disk1_1of1.zip --创建安装目录 [oracle@rptdb ~]$ mkdir /u01/app/wls --调出图形界面,安装Jagent [oracle@rptdb ~]$ xhost + access control disabled, clients can connect from any host xhost: must be on local machine to enable or disable access control. [oracle@rptdb ~]$ /home/oracle/jdk1.8.0_231/bin/java -jar -Xmx1024m fmw_12.2.1.2.0_ogg.jar Launcher log file is /tmp/OraInstall2020-09-05_01-33-54PM/launcher2020-09-05_01-33-54PM.log. Extracting the installer . . . . . Done Checking if CPU speed is above 300 MHz. Actual 1995.062 MHz Passed Checking monitor: must be configured to display at least 256 colors. Actual 16777216 Passed Checking swap space: must be greater than 512 MB. Actual 8063 MB Passed Checking if this platform requires a 64-bit JVM. Actual 64 Passed (64-bit not required) Checking temp space: must be greater than 300 MB. Actual 36105 MB Passed Preparing to launch the Oracle Universal Installer from /tmp/OraInstall2020-09-05_01-33-54PM Log: /tmp/OraInstall2020-09-05_01-33-54PM/install2020-09-05_01-33-54PM.log
安装图解如下:
至此,完成了Jagent的安装。
6.创建OGG Monitor Agent Instances
[oracle@rptdb ogg_agent]$ cd /u01/app/wls/oggmon/ogg_agent [oracle@rptdb ogg_agent]$ ls -l total 36 drwxr-x---. 2 oracle oinstall 211 Sep 5 13:38 cfg_templates -rwxr-x---. 1 oracle oinstall 161 Oct 9 2016 createMonitorAgentInstance.bat -rwxr-x---. 1 oracle oinstall 152 Oct 9 2016 createMonitorAgentInstance.sh drwxr-x---. 2 oracle oinstall 4096 Sep 5 13:38 dirjar drwxr-x---. 2 oracle oinstall 24 Sep 5 13:38 dirprm_templates -rwxr-x---. 1 oracle oinstall 320 Oct 9 2016 displayMonitorAgentVersion.bat -rwxr-x---. 1 oracle oinstall 388 Oct 9 2016 displayMonitorAgentVersion.sh -rwxr-x---. 1 oracle oinstall 357 Oct 9 2016 pw_agent_util.bat -rwxr-x---. 1 oracle oinstall 1197 Oct 9 2016 pw_agent_util.sh -rwxr-x---. 1 oracle oinstall 164 Oct 9 2016 upgradeToMonitorAgent1221.bat -rwxr-x---. 1 oracle oinstall 154 Oct 9 2016 upgradeToMonitorAgent1221.sh [oracle@rptdb ogg_agent]$ ./createMonitorAgentInstance.sh Please enter absolute path of Oracle GoldenGate home directory : /u01/app/OGG12_2 Please enter absolute path of OGG Agent instance : /u01/app/wls OGG Agent instance directory already exists, do you want to overwrite the contents (yes | no) : yes Please enter unique name to replace timestamp in startMonitorAgent script (startMonitorAgentInstance_20200905134655.sh) : agent Successfully created OGG Agent instance.
7.创建 Oracle Wallet,使得EMCC Agent连接到OGG Monitor agent接收OGG实例相关的metric values
[oracle@rptdb bin]$ export JAVA_HOME=/home/oracle/jdk1.8.0_231 [oracle@rptdb bin]$ cd /u01/app/wls/bin [oracle@rptdb bin]$ ls -l total 12 -rwxr--r--. 1 oracle oinstall 392 Sep 5 13:47 displayMonitorAgentVersion.sh -rwxr--r--. 1 oracle oinstall 1201 Sep 5 13:47 pw_agent_util.sh -rwxr--r--. 1 oracle oinstall 316 Sep 5 13:47 startMonitorAgentInstance_agent.sh [oracle@rptdb bin]$ ./pw_agent_util.sh -jagentonly Please create a password for Java Agent: Please confirm password for Java Agent: Sep 05, 2020 2:06:01 PM oracle.security.jps.JpsStartup start INFO: Jps initializing. Sep 05, 2020 2:06:02 PM oracle.security.jps.JpsStartup start INFO: Jps started. Wallet is created successfully.
8.修改OGG Monitor Agent Instance配置文件,修改相关参数并配置为OEM Plug-IN模式
[oracle@rptdb ogg_agent]$ cd /u01/app/wls/cfg [oracle@rptdb cfg]$ ls -l total 60 -rw-r--r--. 1 oracle oinstall 8537 Sep 5 13:47 Config.properties -rw-r--r--. 1 oracle oinstall 3526 Sep 5 13:47 MPMetadataSchema.xsd -rw-r--r--. 1 oracle oinstall 1483 Sep 5 13:47 jps-config-jse.xml -rw-r--r--. 1 oracle oinstall 1284 Sep 5 13:47 logging-config.xml -rw-r--r--. 1 oracle oinstall 13791 Sep 5 13:47 mpmetadata-em.xml -rw-r--r--. 1 oracle oinstall 4623 Sep 5 13:47 mpmetadata-new.xml -rw-r--r--. 1 oracle oinstall 12138 Sep 5 13:47 mpmetadata.xml [oracle@rptdb cfg]$ vim Config.properties
需要修改下面部份:
#################################################################### ## jagent.host: Host name of the machine where jAgent is running ### ## Note: This host name has to be reachable from Monitor Server ### #################################################################### jagent.host=rptdb #################################################################### ## jagent.username: jAgent username ### ## It can be any name. This jAgent username will be passed to ### ## Monitor Server during jAgent registration. ### #################################################################### jagent.username=oggagent #################################################################### ## jagent.rmi.port ### ## RMI Port which EM Agent will use to connect to JAgent ### ## RMI Port will only be used if agent.type.enabled=OEM ### #################################################################### jagent.rmi.port=5559 #################################################################### ## agent.type.enabled : Choose either OEM or OGGMON ### ## Choosing OGGMON will allow JAgent to register to ### ## Monitor Server and JMX RMI connector will not be enabled. ### ## Choosing OEM will enable JMX RMI connector which will be used ### ## by EM Agent to connect to JAgent and JAgent will not register ### ## to Monitor Server. ### #################################################################### agent.type.enabled=OEM ################## Start SSL Properties ############################ #################################################################### ## jagent SSL Enabled property ### #################################################################### jagent.ssl=false
9.启动Oracle GoldenGate和Oracle GoldenGate agent
9.1.登录ogg,编辑GLOBAL文件:
[oracle@rptdb bin]$ cd /u01/app/OGG12_2/ [oracle@rptdb OGG12_2]$ ./ggsci Oracle GoldenGate Command Interpreter for Oracle Version 12.2.0.2.2 OGGCORE_12.2.0.2.0_PLATFORMS_170630.0419_FBO Linux, x64, 64bit (optimized), Oracle 11g on Jun 30 2017 14:42:26 Operating system character set identified as US-ASCII. Copyright (C) 1995, 2017, Oracle and/or its affiliates. All rights reserved. GGSCI (rptdb) 1> edit params GLOBALS --添加: ENABLEMONITORING
9.2.创建datastore
GGSCI (rptdb) 2> CREATE DATASTORE 2020-09-05T06:16:29Z WARNING OGG-01932 Datastore already exists. GGSCI (rptdb) 3> DELETE DATASTORE Are you sure you want to delete the datastore? Y 2020-09-05T06:16:41Z WARNING OGG-06310 The DELETE DATASTORE command requires that all Oracle GoldenGate processes are stopped, including Manager. GGSCI (rptdb) 4> stop mgr Manager process is required by other GGS processes. Are you sure you want to stop it (y/n)?y Sending STOP request to MANAGER ... Request processed. Manager stopped. GGSCI (rptdb) 5> DELETE DATASTORE Are you sure you want to delete the datastore? Y 2020-09-05T06:17:11Z INFO OGG-06492 Datastore deleted GGSCI (rptdb) 6> CREATE DATASTORE Profile 'Trace' added. 2020-09-05T06:17:17Z INFO OGG-06489 Datastore created GGSCI (rptdb) 7> START MGR Manager started.
9.3.重新执行ggsci登录,查看Jagent状态
[oracle@rptdb OGG12_2]$ ./ggsci Oracle GoldenGate Command Interpreter for Oracle Version 12.2.0.2.2 OGGCORE_12.2.0.2.0_PLATFORMS_170630.0419_FBO Linux, x64, 64bit (optimized), Oracle 11g on Jun 30 2017 14:42:26 Operating system character set identified as US-ASCII. Copyright (C) 1995, 2017, Oracle and/or its affiliates. All rights reserved. GGSCI (rptdb) 1> info all Program Status Group Lag at Chkpt Time Since Chkpt MANAGER RUNNING JAGENT STOPPED
9.4.编辑Jagent参数配置文件,修改java路径
GGSCI (rptdb) 3> edit params JAGENT COMMAND java -Dconfig.dir=/u01/app/wls/cfg -Djava.util.logging.config.class=oracle.core.ojdl.logging.LoggingConfiguration -Doracle.core.ojdl.logging.config.file=/u01/app/wls/cfg/logging-config.xml -Doracle.core.ojdl.logging.componentId=JAGENT -jar -Xms512m -Xmx1024m /u01/app/wls/oggmon/ogg_agent/dirjar/jagent.jar
--把COMMAND后面的java替换成/home/oracle/jdk1.8.0_231/bin/java,否则会使用Centos 7默认的openjdk,启动Jagent会报错,保存退出
COMMAND /home/oracle/jdk1.8.0_231/bin/java -Dconfig.dir=/u01/app/wls/cfg -Djava.util.logging.config.class=oracle.core.ojdl.logging.LoggingConfiguration -Doracle.core.ojdl.logging.config.file=/u01/app/wls/cfg/logging-config.xml -Doracle.core.ojdl.logging.componentId=JAGENT -jar -Xms512m -Xmx1024m /u01/app/wls/oggmon/ogg_agent/dirjar/jagent.jar
9.5.启动Jagent
GGSCI (rptdb) 5> start Jagent Sending START request to MANAGER ... GGCMD JAGENT starting GGSCI (rptdb) 6> info all Program Status Group Lag at Chkpt Time Since Chkpt MANAGER RUNNING JAGENT RUNNING
9.6.查看Jagent状态,确认无报错
GGSCI (rptdb) 7> view report JAGENT *********************************************************************** Oracle GoldenGate Command Tool for Oracle Version 12.2.0.2.2 OGGCORE_12.2.0.2.0_PLATFORMS_170630.0419 Linux, x64, 64bit (optimized) on Jun 30 2017 11:27:55 Copyright (C) 1995, 2017, Oracle and/or its affiliates. All rights reserved. Starting at 2020-09-05 14:25:05 *********************************************************************** Operating System Version: Linux Version #1 SMP Tue Aug 22 21:09:27 UTC 2017, Release 3.10.0-693.el7.x86_64 Node: rptdb Machine: x86_64 soft limit hard limit Address Space Size : unlimited unlimited Heap Size : unlimited unlimited File Size : unlimited unlimited CPU Time : unlimited unlimited Process id: 21115 Parameters... COMMAND /home/oracle/jdk1.8.0_231/bin/java -Dconfig.dir=/u01/app/wls/cfg -Djava.util.logging.config.class=oracle.core.ojdl.logging.LoggingConfiguration -Doracle.core.ojdl.logging.config.file=/u01/app/wls/cfg/lo gging-config.xml -Doracle.core.ojdl.logging.componentId=JAGENT -jar -Xms512m -Xmx1024m /u01/app/wls/oggmon/ogg_agent/dirjar/jagent.jar Program is '/home/oracle/jdk1.8.0_231/bin/java', arguments are '-Dconfig.dir=/u01/app/wls/cfg -Djava.util.logging.config.class=oracle.core.ojdl.logging.LoggingConfiguration -Doracle.core.ojdl.logging.config.fil e=/u01/app/wls/cfg/logging-config.xml -Doracle.core.ojdl.logging.componentId=JAGENT -jar -Xms512m -Xmx1024m /u01/app/wls/oggmon/ogg_agent/dirjar/jagent.jar' *********************************************************************** ** Run Time Messages ** *********************************************************************** 2020-09-05 14:25:05 INFO OGG-00978 GGCMD JAGENT is running. 2020-09-05 14:25:05 INFO OGG-01927 Child process started, process ID 21121, command line '/home/oracle/jdk1.8.0_231/bin/java -Dconfig.dir=/u01/app/wls/cfg -Djava.util.logging.config.class=oracle.core.ojdl. logging.LoggingConfiguration -Doracle.core.ojdl.logging.config.file=/u01/app/wls/cfg/logging-config.xml -Doracle.core.ojdl.logging.componentId=JAGENT -jar -Xms512m -Xmx1024m /u01/app/wls/oggmon/ogg_agent/dirjar /jagent.jar'.
10.登录EMCC 12C控制台,添加此主机上的OGG实例到监控
10.1.配置discovery modules,勾选GoldenGateDiscovery,并配置相关参数
注:这里的账号就是GoldenGate Monitor agent实例创建后配置文件里的agent用户名称,密码为创建Oracle Wallet时设置的密码。该用户和密码做为em agent连接到ogg monitor agent收集接受相关OGG实例状态信息的身份验证。
10.2.开始搜索该目标主机上的OGG实例
10.3.把搜索到的结果进行提升操作,提升完成后,登录Target => GoldenGate标签页,可以查看到已经成功添加此OGG实例的监控
到这里,Oracle GoldenGate Enterprise Manager Plug-In监控就已经部署完成了。部署的过程中遇到了许多坑,查了Google和Mos上面一些文章和案例,结合自己对EMCC的使用经验,最终顺利解决了遇到的问题。在这里分享一下自己的部署过程,希望可以给大家提供一些参考。
