视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
【翻译自mos文章】怎么检查OracleGoldenGate(OGG)的checkpoin
2020-11-09 07:55:20 责编:小采
文档


怎么检查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 129 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, "+< $f") || die "cannot open file\n";
print "status 1: file is opened, but not locked yet\n";
flock(MYFILE, LOCK_EX) || die "cannot flock file\n";

print "status 2: file is opened/locked, but not seeked yet\n";
seek (MYFILE, 0, 2) || die "seek failed \n";
print "status 3: file is opened/locked/seeked sucessfully, sleeping for 20 sec\n";
sleep(20);
close (MYFILE);
print "status 4: closed file\n"; 


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

使用例子:

(1) when the file is locked
mugato:/mnt/shared/Public/Support/oracle/v111114_2_linux_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_linux_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

下载本文
显示全文
专题