监控goldengate进程状态

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_42924709/article/details/85136659

分别在liunx、aix和Windows系统部署OGG监控,实现全自动准实时获取OGG进程状态、延迟时间。

总体步骤:
1、确定OGG数据库IP
2、确定服务器OGG安装路径
3、在服务器建立监控脚本文件
4、建立专用用户,建监控表存储收集的OGG进程状态
5、设置定时调度,一般5-10分钟执行一次

-----------------【Liunx、AIX系统】OGG监控部署配置----------------------------------

OGG监控步骤:

1、确定OGG数据库IP

2、在服务器确定OGG安装路径/goldengate
根据实际路径更改。
3、在服务器ORACLE用户下建监控脚本
/goldengate/data/mn_gg_status.sh,mn_gg_status.sql并授权chmod 755

4、在服务器ORACLE用户下建定时计划

5、在数据库创建用户DB_SJJHPT

6、在数据库创建监控表DB_SJJHPT.T_OGG_MN_STATUS

#各个部署OGG的服务器,创建监控脚本,采集各进程状态

##3创建监控脚本

#mn_gg_status.sh
    vi   /goldengate/data/mn_gg_status.sh 
     ##在特定路径下创建监控脚本;--根据实际环境修改存放mn_gg_status.sh的路径/gglog
    . /home/oracle/.profile;         
    ##此处需对应oracle的profile文件(AIX /HP-UX系统是.profile、LIUNX系统是.bash_profile)
    >/goldengate/data/ggsci.log             ##清空文件;--根据实际环境修改路径/gglog
    cd /goldengate             ##进入进程目录--根据实际环境修改路径/software
    ggsci <<EOF >/goldengate/data/ggsci.log         ##重新生成文件;根据实际环境修改路径/gglog
    info all
    quit
    EOF
    cat /goldengate/data/ggsci.log | grep :  | grep -v Oracle   >/gglog/data/ggsinfo.log       
    ##根据实际环境修改路径/gglog
    >/goldengate/data/mn_gg_status.sql                   
    echo "delete DB_SJJHPT.T_OGG_MN_STATUS;" >> /goldengate/data/mn_gg_status.sql       
    cat /goldengate/data/ggsinfo.log| while read line                                     
    do
    set  -- $line
    echo 
    "insert into DB_SJJHPT.T_OGG_MN_STATUS(name,status,time,program,lagtime,chkpttime) values('$3','$2',sysdate,'$1','$4','$5');" >>  /goldengate/data/mn_gg_status.sql     
    done
    echo "commit;" >> /goldengate/data/mn_gg_status.sql                                   
    sqlplus -S  "/as sysdba" @/goldengate/data/mn_gg_status.sql <<EOF                     
    exit;
    EOF

chmod 755 /goldengate/data/mn_gg_status.sh
##对监控脚本授权,根据实际环境修改路径/gglog

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

##创建文件mn_gg_status.sql

delete DB_SJJHPT.T_OGG_MN_STATUS; 
insert into DB_SJJHPT.T_OGG_MN_STATUS(name,status,time,program,lagtime,chkpttime) values('RFPFX001','RUNNING',sysdate,'REPLICAT','00:00:00','00:00:03'); 
commit; 
exit; 

 
 
  • 1
  • 2
  • 3
  • 4

##若业务库进行安全加固,"/as sysdba"这语法需要修改为

sqlplus -S system/sdfdsf @/goldengate/data/mn_gg_status.sql <<EOF

 
 
  • 1

##4对OGG监控脚本设置任务调度计划,每五分钟执行一次
##任务调度

crontab -e            

0,5,10,15,20,25,30,35,40,45,50,55 * * * * /goldengate/data/mn_gg_status.sh > /dev/null 2>&1
##根据实际环境修改监控脚本路径/gglog

  • 1
  • 2
  • 3
  • 4

##5创建DB_SJJHPT 用户

create user DB_SJJHPT identified by "**"
  default tablespace TS_QAS_DATA
  temporary tablespace TEMP
  profile DEFAULT;
grant connect to DB_SJJHPT;
grant resource to DB_SJJHPT;
grant select any dictionary to DB_SJJHPT;
grant select any table to DB_SJJHPT;
grant unlimited tablespace to DB_SJJHPT;
grant select ,delete ,insert,update on  

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

##6创建监控表

create table DB_SJJHPT.T_OGG_MN_STATUS          ##根据实际修改监控表用户
(name        varchar2(8) ,
  status      varchar2(10) ,
  time        timestamp(6),
  dbid        number(6) default '500034',          ##这个ID暂无实际作用,可以任意值
  dbname      VARCHAR2(64) default '管理系统',   ##填写需监控的库名
  serverip    VARCHAR2(32) default '150.17.x.x',    ##填写需监控的库IP
  PROGRAM   VARCHAR2(10),
  LAGTIME   VARCHAR2(20),
  CHKPTTIME VARCHAR2(20)
);

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

-----------------【Windows系统】OGG监控部署配置----------------------------

OGG监控步骤:

1、确定OGG数据库IP

2、在服务器确定OGG安装路径/goldengate

3、在服务器建监控脚本gg_mn_status.bat/mn_gg_status.sql/infoall.oby/insert.bat共4个文件

4、在服务器建定时计划

5、在数据库创建DB_SJJHPT用户

6、在数据库创建监控表DB_SJJHPT.T_OGG_MN_STATUS

##3.1在各个部署OGG的服务器,创建监控脚本,采集各进程状态
##创建文件 #gg_mn_status.bat#

 rem 不显示命令行本身
@echo off

rem 清空ggsci.log文件,注意所有文件的路径,根据实际选择
echo off >D:\software\gglog\ggsci.log

rem 进入D盘
cd D:
rem 进入ggs
cd D:\software\ggs

rem 命令执行的所有结果全部追加到ggsci.log文件
ggsci paramfile D:\software\gglog\infoall.oby >D:\software\gglog\ggsci.log

rem 把ggsci.log的档案内容输入ggsinfo.log这个档案里
rem copy ggsci.log ggsinfo.log
echo off >D:\software\gglog\ggsinfo.log
echo off >D:\software\gglog\ggsinfo_temp.log
D:
cd D:\software\gglog
@findstr /v “Oracle” “ggsci.log”>>ggsinfo_temp.log
findstr “[:]” ggsinfo_temp.log>>ggsinfo.log

rem 清空mn_gg_status.sql脚本
echo off >D:\software\gglog\mn_gg_status.sql

rem 删除表数据
echo delete DB_SJJHPT.T_OGG_MN_STATUS; >> D:\software\gglog\mn_gg_status.sql

rem 按行读取ggsinfo.log文件内容,调用insert.bat拼凑insert语句,写入mn_gg_status.sql文件,注意insert.bat的路径
setlocal enabledelayedexpansion
for /f “delims=” %%i in (ggsinfo.log) do (
set /a b+=1
echo %%i
call D:\software\gglog\insert.bat %%i
)

rem 提交
echo commit; >> D:\software\gglog\mn_gg_status.sql
rem 退出
echo exit; >> D:\software\gglog\mn_gg_status.sql

rem 执行mn_gg_status.sql文件,注意登陆数据库的用户名、密码、SID
sqlplus “/ as sysdba” @D:\software\gglog\mn_gg_status.sql

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45

##3.2创建文件 #mn_gg_status.sql#

delete DB_SJJHPT.T_OGG_MN_STATUS; 
insert into DB_SJJHPT.T_OGG_MN_STATUS(name,status,time,program,lagtime,chkpttime) values('RFPFX001','RUNNING',sysdate,'REPLICAT','00:00:00','00:00:03'); 
commit; 
exit; 

 
 
  • 1
  • 2
  • 3
  • 4

##3.3创建文件 #infoall.oby#

info all

 
 
  • 1

##3.4创建文件 #insert.bat#

@echo off
rem 注意mn_gg_status.sql的路径
echo insert into DB_SJJHPT.T_OGG_MN_STATUS(name,status,time,program,lagtime,chkpttime) values('%3','%2',sysdate,'%1','%4','%5'); >>  D:\software\gglog\mn_gg_status.sql

 
 
  • 1
  • 2
  • 3

#4在Windows#设置定时调度计划
开始-任务计划程序
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
##5创建DB_SJJHPT 用户

create user DB_SJJHPT identified by "**"
  default tablespace TS_QAS_DATA
  temporary tablespace TEMP
  profile DEFAULT;
grant connect to DB_SJJHPT;
grant resource to DB_SJJHPT;
grant select any dictionary to DB_SJJHPT;
grant select any table to DB_SJJHPT;
grant unlimited tablespace to DB_SJJHPT;
grant select ,delete ,insert,update on  

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

##6创建监控表

create table DB_SJJHPT.T_OGG_MN_STATUS          ##根据实际修改监控表用户
(name        varchar2(8) ,
  status      varchar2(10) ,
  time        timestamp(6),
  dbid        number(6) default '500034',          ##这个ID暂无实际作用,可以任意值
  dbname      VARCHAR2(64) default '管理系统',   ##填写需监控的库名
  serverip    VARCHAR2(32) default '150.17.x.x',    ##填写需监控的库IP
  PROGRAM   VARCHAR2(10),
  LAGTIME   VARCHAR2(20),
  CHKPTTIME VARCHAR2(20)
);

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
                                </div>
            <link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-095d4a0b23.css" rel="stylesheet">
                </div>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值