欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

【翻译自mos文章】怎么检查Oracle GoldenGate(OGG)的checkpoin

程序员文章站 2022-05-12 09:46:08
...

怎么检查Oracle GoldenGate(OGG)的checkpoint file 是否被locked? 参考原文: How to check if the check point file is locked? (Doc ID 1480118.1) 适用于: Oracle GoldenGate - Version 11.1.1.1.1 and later Information in this document applies t


怎么检查Oracle GoldenGate(OGG)的checkpoint file 是否被locked?

参考原文:
How to check if the check point file is locked? (Doc ID 1480118.1)

适用于:
Oracle GoldenGate - Version 11.1.1.1.1 and later
Information in this document applies to any platform.

目标:
GoldenGate 使用 file lock 来确定 进程(抽取进程,传输进程,应用进程)是否在running
有时候,我们呢会看到进程(extract or replicat) 正在running,但是该进程确实没有running,并且该进程的检查点文件(checkpoint file)处于被锁定的状态。MOS文章 1314220.1 描述了解决这个问题的方法

本文描述了确认 checkpoint file 是否被locked的方法。

解决方案:

1. checkpoint file被本server上的一个进程lock:

(1) lsof

[oracle@localhost dirchk]$ lsof E1.cpe
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
extract 19025 oracle 16uW REG 253,0 53248 419123 E1.cpe


(2) fuser

[oracle@localhost dirchk]$ fuser E1.cpe
E1.cpe: 19025


[oracle@localhost dirchk]$ ps -ef|grep 19025
oracle 19025 7443 2 18:14 ? 00:00:01 /app/goldengate/source/extract PARAMFILE /app/goldengate/source/dirprm/e1.prm REPORTFILE /app/goldengate/source/dirrpt/E1.rpt PROCESSID E1 USESUBDIRS
oracle 19035 19025 1 18:14 ? 00:00:01 oracleorcl (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle 19041 19025 2 18:14 ? 00:00:01 oracleorcl (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle 19058 18929 0 18:15 pts/0 00:00:00 grep 19025


2.checkpoint file 在nfs server端,并且 lock 也是在nfs server端,可以用如下的perl脚本来检查:

----------------

#!/usr/bin/perl

use Fcntl ':flock'; # import LOCK+* constants

my $f = $ARGV[0];
open (MYFILE, "+


-----------------

使用例子:

(1) when the file is locked
mugato:/mnt/shared/Public/Support/oracle/v111114_2_linux64_ora11g/dirchk> ./tt.pl E1.cpe
status 1: file is opened, but not locked yet


(2) when the file is not locked
mugato:/mnt/shared/Public/Support/oracle/v111114_2_linux64_ora11g/dirchk> ./tt.pl E1.cpe
status 1: file is opened, but not locked yet
status 2: file is opened/locked, but not seeked yet
status 3: file is opened/locked/seeked sucessfully, sleeping for 20 sec
status 4: closed file

Note: the script is only tested on Solaris 10, and it may need to be modified on other platform