一.原理概述
1.1.框架说明:
Goldengate实例可以通过Monitor对mgr,ext,rep,dp进程进行监控,监控原理为:被监控进程周期性更新监控点(比如:status,lag,checkpoint等)。MGR进程则将这些监控信息通过Monitor的agent将信息发送出去到Monitor Server。一个Monitor Server可以最多监控20个OGG实例,每个OGG实例最多可以有50个进程。内部涉及到的网络应用部署在tomcat上的。整个Monitor架构如下图描述:
Oracle goldengate:每个Monitor Server通过JMX(Java Management Extentions)与GG实例的mgr进行通信,MGR进程则负责将监控信息发送到server;Oracle Goldengate Agent:安装在OGG实例所在主机,11.1.1.1版本agent嵌入在MGR进程中(与基于C的subagent交互),11.2.1之后Agent为独立的Java Agent;Monitor Server:Monitor Server对多个ogg实例进行监控,主要功能为:1).维护监控信息并与浏览器交互;2).负责对用户,历史信息,监控触发时间进行管理;Monitor Repository:存放监控信息,用户信息等相关资料的一个数据库;
二.Monitor Server安装OGG Monitor预置了一部分用于自动配置策略和自动发现数据库的规则,主要包含:发现方案、局部方案、发现数据库
自动发现OGG框架:启动ogg进程的时候,agent会自动将这些信息注册到Monitor server用于生成整个OGG框架的流程,通过浏览器登录后将可以看到这些流程。所谓的流程:即在单向复制的过程中,发现进程可以自动发现从源端的抓取及trail到目标端的replicat,进而形成一个完整的流程;如果过是双向复制则为源端到目标端-->目标端到源端的流程。
发现局部框架(partial solutions):所谓局部框架就是只注册了整个OGG框架中的一部分流程到Monitor Server中去。比如:Replicat进程配置了但是没有启动,则无法注册到Server,此时在用户界面里面可能就只能在TREE VIEW中看到一部分信息但是在完整框架列表将无法看到。因为无法在框架列表中看到局部框架,但是我们可以通过在用户界面创建视图实现查看局部框架的目的。
发现数据库:在发现进程注册发现OGG框架的时候可以自动发现数据库,取决于数据库类型、安装位置、注册数据库的进程;它会通过实例名,管理端口,主机名来判定是不是同一个数据库。如果同一个数据库的不同schema被不同mgr进程管理的进程抓取,则会显示成两个数据库。如果是被同一个mgr管理的进程所抓取则形成一个数据库图标。
2.1.系统需求:
2.2.安装Monitor ServerMonitor Server:操作系统平台:硬件需求:网络接口需要(5501:关闭, 5500:HTTP, 5505:HTTPS, 5502:JMX Server)、1.5GB内存(如果安装时无法分配1GB内存将安装失败,足够多进程需要监控则建议2GB);存储空间:取决于监控的实例数量和进程数量及历史信息保留时间长度。数据库空间至少200M软件需求:需要数据库:Mysql 5.0/5.1,SQL SERVER2005/2008, Oracle 10g/11g,测试可以使用内嵌Derby数据库,生产不建议使用内嵌库;其他信息:主机名(写入hosts); repository数据库必须运行着; 数据库用户用权限读写repository; 邮件服务器信息; SNMP; 如果使用HTTPS则需要导入jks秘钥库(通过java keytool生成);
软件下载:http://edelivery.oracle.com下载,位于11.1.1版本的OGG管理包中,11.2中没有SQL> create tablespace monitor datafile size 200m autoextend on maxsize 1024M;SQL> create user monitor identified by monitor1 default tablespace monitor temporary tablespace temp quota unlimited on monitor;SQL> grant connect to monitor;SQL> grant resource to monitor;
软件安装:
运行安装包;欢迎界面下一步;选择安装位置;是否添加到开始菜单(仅WIN)选择数据库, 配置OK后想要更换数据库需要重新配置;配置数据库(仅针对非内嵌数据库), ORACLE: 主机名,端口,实例名; MySQL: 主机名,端口,库名; SQLSERVER: 主机名,端口,库名(只能是dbo)指定数据库用户;指定Monitor超级用户(master:master1);添加到服务(仅WIN);配置端口, 至少要配置1个(如果默认的不可用可以修改);配置证书(如果要配置HTTPS则需要);配置JMX Server:(主机名/IP,Agent连接到Monitor Server的用户名和密码:jmxuser:jmxuser1,端口可以默认的或者自定的);配置SMTP:(邮件服务器主机,端口,用户名密码及发件人地址);配置SNMP:确认所有配置;完成安装;注:如果使用命令行安装,只需要在执行安装包后面增加参数 -c
2.3.Monitor配置
基础要求:1).OGG版本高于11.1.1.1.1;2).JAVA版本1.6以上;
配置环境变量:11.2版本 OGG需要设置的变量export JAVA_HOME=<JAVA_INSTALL_DEST>export PATH=$JAVA_HOME/jre/bin:$JAVA_HOME/bin/server:$PATH
11.1.1版本OGG需要额外配置的环境变量:Linux/Solars变量:LD_LIBRARY_PATH配置为libjvm.so文件路径,64位Solaris要配置为:JAVA_HOME/jre/lib/sparcv9/serverAIX变量:LIBPATH,指定ppc64及j9vm所在位置,$JAVA_HOME/jre/lib/ppc64:$JAVA_HOME/jre/lib/ppc64/j9vm:$LIBPATHHPUX变量:SHLIB_PATH,指定libjvm.s1 (HPUX PARISC) or libjvm.so(HPUX Itanium)
OGG相关路径(在OGG安装目录下有部分文件和Monitor有关系):
cfg:安装时创建的用于存放配置agent相关的XML配置文件;dirjar:安装时创建的用于支持agent运行jar包;dirprm:安装时创建的用于存放OGG进程参数文件的目录,其中jagent.prm文件为agent的参数文件;dirwlt:配置wallet的时候创建的用于存放用于配置Monitor的密码的目录;dirdb:在GGSCI执行create datastore语句时创建berkely数据库(OGG11.2.1以后)用于保存监控信息时自动创建,dirchk:安装时创建的用于存放检查点文件的路径,monitor运行时会自动创建agent.cpm文件在此路径
配置准备工作:
确认OGG版本为11.1.1.1.1之后版本:<gg_home>/ggsci -v检查JAVA版本:java -verison打开Monitor(在GGSCI执行, 需要重启):EDIT param ./GLOBALS建议直接在此时停掉所有OGG进程11.1.1.1.1版本写入参数:ENABLEMONITORAGENT11.2.1之后版本写入参数:ENABLEMONITORING(只能是这个参数,老版本的应该删掉)配置OGG实例;创建Oracle Wallet;启动OGG实例;
配置OGG实例:
设定<GG_HOME>/cfg/Config.properties文件中的参数
参数 默认值 推荐值 含义 备注 jagent.host localhost <主机名/IP> Jagent运行主机 统一使用主机名或IP jagent.jmx.port 5555 未被占用口 Jagent端JMX的端口 最好使用默认端口 interval.regular 60 60 Jagent收集监控信息常规周期,秒 interval.quick 30 30 Jagent收集监控信息快速周期,秒 monitor.host localhost <主机名/IP> Monitor Server运行主机 值需要与Monitor Server端的monitor.properties文件中monitor.jmx.server.host一致 monitor.jmx.port 5502 预置端口 JMX服务在JMX Server所对应的端口 安装Server时指定的值 monitor.jmx.username cmroot 自定义 JMX用户名 Monitor Server安装过程中指定的JMX用户名 jagent.username root 自定义 agent用户名 可以随便指定,主要用于agent注册时发送到Server端 reg.retry.interval 10 10 Jagent重新连接到Server的时间间隔,秒 instance.query.initial.interval 5 30 如果MGR进程启动后,此时间内没有ext,rep进程启动则agent也会去注册到Server incremental.registration.quiet.interval 5 15 新进程配置后agent会增量注册到Server,此时间为配置接口后到注册前的等待时间 maximum.message.retrieval 500 500 jagent启动时从cagent获取的最大信息数量 mgr.host localhost 注释掉 mgr运行主机 如果jagent和mgr进程运行在同一个主机则无需配置 mgr.port 7089 注释掉 mgr运行端口 如果jagent和mgr进程运行在同一个主机则无需配置 jagent.rmi.port 5559 5559 RMI运行端口 仅针对agent type是OEM的时候,EM agent连接到Jagent的端口 agent.type.enabled OGGMON OGGMON/OEM 监控类型 status.polling.interval 5 5 集新状态信息的时间周期,秒 根据需求设置 message.polling.interval 5 5 message收集周期,秒 配置Oracle Wallet:
Oracle Wallet主要用于存储密码,我们可以通过安装OGG的时候自带的pw_agent_util.bat/pw_agent_util.sh工具文件创建Oracle wallet并保存两个我们需要的密码。注意,创建的时候必须是安装OGG的操作系统用户进行。
1).命令行进入ogg安装目录(WIN也是用命令行);2).执行:pw_agent_util.sh -create
3).如果wallet已经存在:则参考3.3中的相关动作4).创建好后会提示输入Agent的JMX密码,在注册的时候会发送到Monitor Server;5).输入Monitor Server的JMX的密码,此密码在安装Monitor Server的时候指定
启动OGG实例:
11.1.1.1.1之前的OGG的agent是嵌入在MGR里面的,可以通过重启MGR实现打开agent的办法;11.2.1之后的版本agent独立出来了,打开方法如下:
1).进入GGSCI命令行2).启动mgr进程;3).执行create datastore4).执行start jagent
三.Monitor Server管理
3.1.启动与停止:
1).可以通过Monitor安装目录下的bin子目录中的monitor.bat/monitor.sh脚本启动或者停止Monitor服务启动:./monitor.sh start停止:./monitor.sh stop2).可以通过网页界面进行启动停止:
http://host_name:http_port/monitor/
3.2.调整Monitor Server
修改密码:我们可以通过Monitor提供的工具(<Monitor_Home>/bin/pw_server_util.bat/sh)来调整Monitor的相关密码:
Shell> ./pw_server_util.sh -{updateJPA | updateJMX | updateSMTP}
updateJPA changes the databaseconnection passwordupdateJMX changes the Oracle GoldenGateMonitor Server’s JMX passwordupdateSMTP changes the SMTP e-mail password注:修改密码时什么都不输入则意味着不修改,修改密码后需要重启Monitor调整Monitor的内存:
调整Monitor内存之前先要停掉Monitor Server,调整Monitor的内存方式同样取决于是否将Monitor Server配置成服务。
没有配置成服务:
1).打开<Monitor_Home>/bin/monitor.sh(或bat文件)2).修改:JAVA_OPTS=-Xms512m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m
参数 说明 -Xms 最小分配的内存 -Xmx 最大可分配的内存 PermSize 常驻内存堆大小,用于存放常用类 MaxPermSize 最大的内存堆大小
已配置成服务:1).打开<Monitor_Home>/bin/monitor-service.bat(官方文档说是<Monitor_Home>/tomcat/bin/monitor-service.bat)2).调整rem Set extra parameters中的--JvmMx 1024 和PermSize 参数中的值。达到调整内存的目的。3).卸载现有服务:monitor.bat uninstall4).重新安装服务:monitor.bat install5).重新启动Monitor Server
调整session Timeout周期:1)编辑<Monitor_Home>/webapp/WEB-INF/web.xml2).调整session-timeout节点中的值,单位为分钟,如果 不希望过期,则设置为0或-13).重启Monitor服务
3.3.管理GoldenGate Agent:
修改Agent密码:因为wallet配置后可能需要修改密码,所以可以通过OGG中的pw_agent_util.sh工具来更新密码,步骤如下:1).进入到OGG的安装目录;2).执行: ./pw_agent_util.sh -[updateAgentJMX | updateServerJMX]
updateJAgentMX changes the agent’s JMX password.3).重启agent: 11.1.1.1版本重启MGR实现、 11.2.1之后版本通过重启jagent实现
updateServerJMX changes Oracle GoldenGate Monitor Server’s JMX password.
修改JAGENT内存:1).在GGSCI中执行:edit param jagent2).按照需求修改:java -jar - Xms64m - Xmx512m dirjar/jagent.jar
3.4.配置ALERTS
以下操作,配置完都需要重启Monitor Server
配置邮件alerts此功能可以通过邮件将定义好的一些警告信息发送出来,要使用此功能需要在安装Monitor Server的过程中配置SMTP。如果在安装过程中没有配置,则需要在安装过后修改<Monitor_Home>/cfg/monitor.properties中的相关参数实现:
monitor.smtp.alerts.enabled=truemonitor.smtp.from=<发件地址>monitor.smtp.host=<邮件服务器地址>monitor.smtp.port=<端口>monitor.smtp.secure={true | false}<是否需要认证>monitor.smtp.user=<用户名>密码需要通过: ./pw_server_util.sh -updateSMTP
配置CLI alerts
配置过程中没有打开则需要调整<Monitor_Home>/cfg/monitor.properties中的相关参数实现:
monitor.cli.alerts.enabled=true
详细配置方式参见官方文档
配置SNMP Alerts
启停用Alerts
修改<Monitor_Home>/cfg/monitor.properties中的相关参数实现
monitor.smtp.alerts.enabled=falsemonitor.cli.alerts.enabled=falsemonitor.snmp.alerts.enabaled=false