【翻译自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


 

内容概要:本文介绍了一个针对电力系统连锁故障传播路径的N-k多阶段双层优化及故障场景筛选模型,该模型基于混合整数线性规划(MILP)方法构建,旨在全面评估电力系统在遭受多重故障时的脆弱性与恢复能力。通过引入故障传播路径的概念,模型能够动态模拟故障在电网中的逐级扩散过程,并结合多阶段优化策略,实现对关键故障场景的有效识别与优先排序。整个框架不仅考虑了初始故障元件的选取,还涵盖了后续因潮流转移引发的级联跳闸行为,从而提升了风险评估的准确性与时效性。该研究已在Matlab平台上完成代码实现,具备良好的可复现性和工程应用价值,适用于提升现代电网的安全防御水平。; 适合人群:电力系统、能源安全及相关领域的科研人员、高校研究生以及从事电网规划与运行管理的工程技术人员。; 使用场景及目标:①用于电力系统安全评估中识别最危险的N-k故障组合;②支撑电网应急预案制定与薄弱环节改造;③作为学术研究中关于级联故障建模与优化求解的教学与验证工具;④服务于智能电网背景下抵御蓄意攻击或极端事件的风险防控决策。; 阅读建议:建议读者结合Matlab代码深入理解模型的数学 formulation 与求解流程,重点关注目标函数设计、约束条件构建及双层优化结构的实现逻辑,同时可通过调整系统参数和故障设定进行仿真对比分析,以掌握不同因素对连锁故障演化的影响规律。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值