首页 > 系统相关 >OGG 抽取进程注册时报OGG-08221 ORA-00001错误总结

OGG 抽取进程注册时报OGG-08221 ORA-00001错误总结

时间:2024-03-22 10:55:05浏览次数:23  
标签:10 logmnr system 08221 session 00001 OGG where delete

OGG部署时,抽取进程(Extract)注册到数据库时遇到下面错误:

REGISTER EXTRACT ***** DATABASE

ERROR OGG-08221 Cannot register or unregister EXTRACT because of the following SQL error: OCI Error ORA (status = 1-ORA-00001: unique constraint (SYSTEM.LOGMNR_SESSION_UK1) violated

关于这个错误,Oracle官方文档Unable To Register OGG Extract (Doc ID 2861271.1)[1]有相关的介绍和分析,如下所示:

SYMPTOMS

Unable to register OGG extract
GGSCI 5> register extract database container ()
ERROR OGG-08221 Cannot register or unregister EXTRACT because of the following SQL error: OCI Error ORA (status = 1-ORA-00001: unique constraint (SYSTEM.LOGMNR_SESSION_UK1) violated
ORA-06512: at "SYS.DBMS_CAPTURE_ADM_INTERNAL", line 617
ORA-06512: at "SYS.DBMS_CAPTURE_ADM_INTERNAL", line 249
ORA-06512: at "SYS.DBMS_CAPTURE_ADM_INTERNAL", line 589
ORA-06512: at "SYS.DBMS_CAPTURE_ADM_IVK", line 177
ORA-06512: at "SYS.DBMS_CAPTURE_ADM", line 179


CAUSE

possible clean up required on queue or CAPTURE, APPLY process related to
clean up required for the session created for in logminer tables

SOLUTION

sqlplus c##ggs_owner/
delete from system.logmnr_spill$ where session# = 10;
delete from system.logmnr_age_spill$ where session# = 10;
delete from system.logmnr_log$ where session# = 10;
delete from system.logmnr_restart_ckpt$ where session# = 10;
delete from system.logmnr_restart_ckpt_txinfo$ where session# = 10;
delete from system.logmnr_filter$ where session# = 10;
delete from system.logmnr_parameter$ where session# = 10;
delete from system.logmnr_global$ where session# = 10;
delete from system.logmnr_session$ where session# = 10;
commit;
Then register again

官方文档解释,抽取进程REGISTER到数据库出现失败的可能原因有下面两个:

  • 1:可能是因为进程相关的CAPTURE、APPLY的队列没有清理干净
  • 2:需要清理干净进程创建的与logmnr相关的会话。

千万不要直接拷贝官方文档的SQL语句,你首先需要通过下面SQL找出logmnr相关的会话ID信息

SET LINESIZE 720;
COL SESSION_NAME FOR A16
COL GLOBAL_DB_NAME FOR A12
SELECT SESSION#,CLIENT#,SESSION_NAME,DB_ID,GLOBAL_DB_NAME FROM SYSTEM.LOGMNR_SESSION$;

然后用具体的会话ID替换上面的会话10后,执行SQL语句,然后就可以重新注册抽取进程了。

sqlplus c##ggs_owner/ --用实际的ogg用户替换当前用
delete from system.logmnr_spill$ where session# = xxx;
delete from system.logmnr_age_spill$ where session# = xxx;
delete from system.logmnr_log$ where session# = xxx;
delete from system.logmnr_restart_ckpt$ where session# = xxx;
delete from system.logmnr_restart_ckpt_txinfo$ where session# = xxx;
delete from system.logmnr_filter$ where session# = xxx;
delete from system.logmnr_parameter$ where session# = xxx;
delete from system.logmnr_global$ where session# = xxx;
delete from system.logmnr_session$ where session# = xxx;
commit;

参考资料

[1]

1: https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=390982163154682&id=2861271.1&_afrWindowMode=0&_adf.ctrl-state=dq53pb6ig_80

标签:10,logmnr,system,08221,session,00001,OGG,where,delete
From: https://www.cnblogs.com/kerrycode/p/18088799

相关文章

  • Debezium vs OGG vs Tapdata:如何实时同步 Oracle 数据到 Kafka 消息队列?
    随着信息时代的蓬勃发展,企业对实时数据处理的需求逐渐成为推动业务创新和发展的重要驱动力。在这个快速变化的环境中,许多企业选择将Oracle数据库同步到Kafka,以满足日益增长的实时数据处理需求。本文将深入探讨这一趋势的背后原因,并通过一个真实的客户案例来强调实时性在业务场......
  • python 异常捕获、断言(assert 、finally) 与日志(loguru.logger)
    异常捕获常见的异常类型代码执行顺序从上到下依次运行的,如果出错了,后面的代码不会出错。--所以要对异常做处理。常见的异常的类型,不需要记;平时写代码的时候经常会报错,积累常见错误,排查问题。常见异常的报错的类型:NameError,IndexError,KeyError,ValueError,ZeroDivisionE......
  • 如何设置ORACLE数据库的OGG日志
    若要使用OGG,ORACLE必须开启归档模式,可以理解为设置ORACLE的REDOLOG落地,这样才能让OGG拿到所需的日志信息.1.查询数据库是否处于归档模式,如果处于归档模式,则返回结果ARCHIVELOG   SQL>selectlog_modefromv$database;2.如果不处于归档模式,则要开......
  • 不通过 Host 将 Serilog 转换成 ILogger
    安装SerilogpublicstaticclassLoggerExtension{publicstaticILogger<T>CreateLogger<T>(){varlogPath="log.txt";conststringoutputTemplate="[{Timestamp:yyyy-MM-ddHH:mm:ss}{Level:u3}]{Message:......
  • LoggerMessageAttribute 高性能的日志记录
    .NET6引入了LoggerMessageAttribute类型。使用时,它会以source-generators的方式生成高性能的日志记录API。source-generators可在编译代码时,可以提供其他源代码作为编译的输入。LoggerMessageAttribute依赖于ILogger接口和LoggerMessage.Define功能。在partial日......
  • phosphor-logging
    输出packages:phosphor-logging-devphosphor-logging-basephosphor-rsyslog-configphosphor-logging-dev提供日志APIphosphor-logging支持的error信息需要在phosphor-dbus-interfaces中预定义phosphor-logging会搜索变量YAML_DIR目录下所有.yaml文件将.errors.yaml结尾......
  • OpenTelemetry Logging 思维导图,收藏
    Log是最常用、最自然的监控数据类型之一,具有以下的优点:日志的内容比指标更加丰富,可以提供更多的细节信息,帮助开发人员和运维人员更好地理解应用程序的运行状况,通过日志几乎可以重现、还原系统的完整工作过程。日志的格式灵活,可以方便的记录多样化的事件,包括错误、异常和警告等......
  • mysqldump: Error: Binlogging on server not active
    1.问题今天在备份数据库时遇到问题,提示二进制日志尚未开启,无法使用--master-data=2选项2.解决启用二进制日志记录,打开MySQL配置文件(通常是my.cnf或my.ini),添加以下选项即可。保存并重新启动MySQL服务器#开启二进制日志binloglog-bin=mysql-bin#开启Binlog一般只需......
  • Python日志logging模块
    Python日志logging模块logging---Python的日志记录工具—Python3.12.2文档Pythonlogging模块的基本使用、进阶使用详解_python中logging模块详解-CSDN博客logging模块架构日志级别默认的级别是“WARNING“,意味着只会追踪该级别及以上的事件。级别何时使用......
  • logger & journalctl,LINUX日志管理
    简介:有时候写一些linux系统脚本,外加定时任务,总是希望能看到日志,所以就有了各种骚操作。一:自己写自己写入指定日志,并进行容量管理。#日志文件LOG_FILE=./log/log-$(date'+%Y-%m-%d').txtpath=./logcheck_logs(){if[!-d$path];thenmkdir$pathfi......