【翻译自mos文章】怎么检查Oracle GoldenGate(OGG)的checkpoint file 是否被locked?

本文介绍如何检查Oracle GoldenGate的checkpointfile是否被锁定,包括本地服务器和远程NFS服务器的情况。提供了命令行工具如lsof、fuser等的使用方法,并附有示例脚本用于检测锁定状态。


怎么检查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, "+< $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_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


 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值