OGG投递进程报错无法open文件,无法正常投递

摘要:
OGG投递进程报错无法open文件,无法正常投递绿茶有点甜2020-11-10原文1.1现象之前有个客户遇到一个问题,OGG同步数据链路,突然有一天网络出现问题,导致OGG投递进程无法正常投递,无法写入目标端的该文件。猜测是由于网络丢包等原因导致文件损坏,无法正常open,read,write.解决方法,投递进程etrollover。本篇文档是基于这种方式测试下etrollover1.2测试OGG进程restart与seqno有什么关系?
OGG投递进程报错无法open文件,无法正常投递
绿茶有点甜2020-11-10原文

1.1现象

之前有个客户遇到一个问题,OGG同步数据链路,突然有一天网络出现问题,导致OGG投递进程无法正常投递,无法写入目标端的该文件。

猜测是由于网络丢包等原因导致文件损坏,无法正常open,read,write. 解决方法,投递进程etrollover。

本篇文档是基于这种方式测试下etrollover 【测试没有完美还原网络的问题,只是对其进行了测试】

1.2测试OGG进程restart与seqno有什么关系?

  1. 1)OGG 同步表及进程参数查看
    SQL>select*fromdd;
  2. ID CC_NAME WITTIME
  3. ----------------------------------------------------------------------
  4. 2203-JUN-2002.34.37.000000PM
  5. GGSCI (t1)4>view param exta
  6. extract exta
  7. USERID ogg,PASSWORD ogg
  8. EXTTRAIL /u01/ogg/base/dirdat/ea
  9. table YZ.DD;
  10. GGSCI (t1)5>view param dpea
  11. extract dpea
  12. rmthost 10.0.0.32,mgrport 7809,compress
  13. rmttrail /u01/ogg/base/dirdat/t1
  14. table YZ.B;
  15. table YZ.DD;
  16. GGSCI (t1)7>info exta
  17. EXTRACT EXTA LastStarted2020-11-1011:05StatusRUNNING
  18. CheckpointLag00:00:00(updated 00:00:08ago)
  19. ProcessID 10744
  20. LogReadCheckpointOracleRedoLogs
  21. 2020-11-1011:25:54Seqno353,RBA 3917824
  22. SCN 0.3276594(3276594)
  23. GGSCI (t1)8>info dpea
  24. EXTRACT DPEA LastStarted2020-11-1011:05StatusRUNNING
  25. CheckpointLag00:00:00(updated 00:00:09ago)
  26. ProcessID 10776
  27. LogReadCheckpointFile/u01/ogg/base/dirdat/ea000000067
  28. 2020-11-1011:05:01.669087RBA 1469
  29. SQL>select*fromdd;
  30. ID CC_NAME WITTIME
  31. ----------------------------------------------------------------------
  32. 2203-JUN-2002.34.37.000000PM
  33. GGSCI (t2)26>view param repa
  34. replicat repa
  35. userid ogg,password ogg
  36. assumetargetdefs
  37. HANDLECOLLISIONS
  38. discardfile /u01/ogg/base/dirrpt/repa.dsc
  39. MAP YZ.DD ,TARGET BAK_YZ.DD;
  40. GGSCI (t2)27>info repa
  41. REPLICAT REPA LastStarted2020-11-1011:20StatusRUNNING
  42. CheckpointLag00:00:00(updated 00:00:09ago)
  43. ProcessID 11023
  44. LogReadCheckpointFile/u01/ogg/base/dirdat/t1000000051
  45. 2020-11-1011:05:01.313791RBA 1563
  46. 2)目标端OGG复制进程重启,复制进程对应的trail 文件seq不变
  47. GGSCI (t2)28>stop repa
  48. GGSCI (t2)29>start repa
  49. 3)源端OGG投递进程重启,投递进程对应的trail 文件seq不变
  50. GGSCI (t1)9>stop dpea
  51. GGSCI (t1)10>start dpea
  52. GGSCI (t1)13>info dpea
  53. EXTRACT DPEA LastStarted2020-11-1011:30StatusRUNNING
  54. CheckpointLag00:00:00(updated 00:00:04ago)
  55. ProcessID 11117
  56. LogReadCheckpointFile/u01/ogg/base/dirdat/ea000000067
  57. FirstRecordRBA 1469
  58. 4)源端OGG抽取进程重启,抽取进程对应的trail 文件seq +1
  59. GGSCI (t1)15>info exta,detail
  60. EXTRACT EXTA LastStarted2020-11-1011:05StatusRUNNING
  61. CheckpointLag00:00:00(updated 00:00:09ago)
  62. ProcessID 10744
  63. LogReadCheckpointOracleRedoLogs
  64. 2020-11-1011:30:15Seqno353,RBA 3919360
  65. SCN 0.3276690(3276690)
  66. TargetExtractTrails:
  67. TrailNameSeqnoRBA MaxMB TrailType
  68. /u01/ogg/base/dirdat/ea 67146920EXTTRAIL
  69. GGSCI (t1)16>stop exta
  70. GGSCI (t1)17>start exta
  71. TargetExtractTrails:
  72. TrailNameSeqnoRBA MaxMB TrailType
  73. /u01/ogg/base/dirdat/ea 68146920EXTTRAIL
  74. 5)源端抽取进程seq +1之后,源端投递进程读取的文件seq +1,投递进程写入目标端seq 文件+1,目标端复制进程读取的seq 文件+1
  75. GGSCI (t1)19>info dpea
  76. EXTRACT DPEA LastStarted2020-11-1011:30StatusRUNNING
  77. CheckpointLag00:00:00(updated 00:00:08ago)
  78. ProcessID 11117
  79. LogReadCheckpointFile/u01/ogg/base/dirdat/ea000000068
  80. 2020-11-1011:31:58.380185RBA 1469
  81. GGSCI (t2)45>info repa
  82. REPLICAT REPA LastStarted2020-11-1011:28StatusRUNNING
  83. CheckpointLag00:00:00(updated 00:00:02ago)
  84. ProcessID 11132
  85. LogReadCheckpointFile/u01/ogg/base/dirdat/t1000000052
  86. 2020-11-1011:31:58.035041RBA 1563
  87. 6)源端{确认OGG链路处于同步状态}
  88. SQL>insert intodd values(3,'cc',sysdate);
  89. SQL>commit;
  90. GGSCI (t1)22>info dpea
  91. EXTRACT DPEA LastStarted2020-11-1011:30StatusRUNNING
  92. CheckpointLag00:00:00(updated 00:00:00ago)
  93. ProcessID 11117
  94. LogReadCheckpointFile/u01/ogg/base/dirdat/ea000000068
  95. 2020-11-1011:34:52.000000RBA 2284
  96. 目标端
  97. SQL>select*fromdd;
  98. ID CC_NAME WITTIME
  99. ----------------------------------------------------------------------
  100. 3cc 10-NOV-2011.34.50.000000AM
  101. 2203-JUN-2002.34.37.000000PM
  102. REPLICAT REPA LastStarted2020-11-1011:28StatusRUNNING
  103. CheckpointLag00:00:00(updated 00:00:04ago)
  104. ProcessID 11132
  105. LogReadCheckpointFile/u01/ogg/base/dirdat/t1000000052
  106. 2020-11-1011:34:51.656002RBA 2378

1.3模拟破坏目标端OGG应用Dump文件,如何处理

  1. 1)手工修改dump文件
  2. [ogg@t2 ~]$ vi /u01/ogg/base/dirdat/t1000000052
  3. 破坏文件
  4. 2)源端插入1条测试数据
  5. SQL>insert intodd values(4,'cc',sysdate);
  6. SQL>commit;
  7. 3OGG 复制进程Abend
  8. 2020-11-1011:36:59ERROR OGG-02171Errorreading LCR fromdata source.Status509,data source type TrailDataSource.
  9. 2020-11-1011:36:59ERROR OGG-02191Incompatiblerecord 101in/u01/ogg/base/dirdat/t1000000052,rba 2,378whengetting trail header.
  10. 2020-11-1011:36:59ERROR OGG-01668PROCESS ABENDING.
  11. 4)源端再次插入1条测试数据
  12. SQL>insert intodd values(5,'cc',sysdate);
  13. 1row created.
  14. SQL>commit;
  15. GGSCI (t1)38>info dpea
  16. EXTRACT DPEA LastStarted2020-11-1011:30StatusRUNNING
  17. CheckpointLag00:00:00(updated 00:00:03ago)
  18. ProcessID 11117
  19. LogReadCheckpointFile/u01/ogg/base/dirdat/ea000000068
  20. 2020-11-1013:25:29.000000RBA 2604
  21. 此时,对于源端投递进程来说,eaxxx68 这个队列文件中,存在两条Insert记录;
  22. 对于目标端应用进程来说,repa t1xxx52队列文件中,应用第一条记录就报错了!
  23. 投递进程重新投递eaxxx68队列文件,这个文件被我们手工人为破坏了,【实际生产运维过程中,存在网络波动包损坏等,导致源端投递进程无法写入文件,导致OGG同步链路中断】,
    原本是想模拟这个场景,但是本次模拟投递正常,应用失败。
  24. GGSCI (t1)40>info dpea
  25. EXTRACT DPEA LastStarted2020-11-1011:30StatusRUNNING
  26. CheckpointLag00:00:00(updated 00:00:03ago)
  27. ProcessID 11117
  28. LogReadCheckpointFile/u01/ogg/base/dirdat/ea000000068
  29. 2020-11-1013:25:29.000000RBA 2604
  30. GGSCI (t1)47>view param dpea
  31. extract dpea
  32. rmthost 10.0.0.32,mgrport 7809,compress
  33. rmttrail /u01/ogg/base/dirdat/t1
  34. table YZ.DD;

  35. 5如何处理???既然是dump文件损坏,源端投递进程重新再次投递一个这个seqno文件不就可行?使用etrollover前滚投递进程!
  1. GGSCI (t1)55>alter EXTRACT dpea etrollover
  2. 2020-11-1013:39:25INFO OGG-01520Rolloverperformed.Foreach affected output trail of Version10orhigher format,
    after starting the source extract,issue ALTER EXTSEQNO forthat trail's reader (either pump EXTRACT or REPLICAT) to move the reader's
    scan to the newtrail file;it will nothappen automatically.
  3. EXTRACT altered.
  4. GGSCI (t1)48>info dpea,detail
  5. EXTRACT DPEA Initialized2020-11-1011:30StatusSTOPPED
  6. CheckpointLag00:00:00(updated 00:01:07ago)
  7. LogReadCheckpointFile/u01/ogg/base/dirdat/ea000000068
  8. 2020-11-1013:25:29.000000RBA 2604
  9. TargetExtractTrails:
  10. TrailNameSeqnoRBA MaxMB TrailType
  11. /u01/ogg/base/dirdat/t1 53020RMTTRAIL
  12. ExtractSourceBeginEnd
  13. /u01/ogg/base/dirdat/ea000000068 *Initialized*2020-11-1013:25
  14. /u01/ogg/base/dirdat/ea000000068 2020-11-1011:052020-11-1013:25
  15. /u01/ogg/base/dirdat/ea000000067 2020-10-1313:242020-11-1011:05
  16. /u01/ogg/base/dirdat/ea000000066 2020-10-1313:242020-10-1313:24
  17. [ogg@t2 ~]$ ls -lrt /u01/ogg/base/dirdat/t1*
  18. GGSCI (t1)49>start dpea
  19. 可以发现什么问题?OGG extract source 里面存着2eaxxx68 seqno文件,正常情况下只会出现1条,并且endtime一致,因此相当于这个seq文件重新投递。
  20. 6)目标端再次启动复制进程
  21. GGSCI (t2)52>info repa
  22. REPLICAT REPA LastStarted2020-11-1011:28StatusABENDED
  23. CheckpointLag00:00:00(updated 01:58:17ago)
  24. LogReadCheckpointFile/u01/ogg/base/dirdat/t1000000052
  25. 2020-11-1011:34:51.656002RBA 2378

GGSCI (t2) 58> start repa
GGSCI (t2) 59> info repa
REPLICAT REPA Last Started 2020-11-10 13:35 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:10 ago)
Process ID 12727
Log Read Checkpoint File /u01/ogg/base/dirdat/t1000000052
2020-11-10 13:25:28.699520 RBA 2698
SQL> select * from dd;
ID CC_NAME WITTIME
---------- ------------------------------ ------------------------------
3 cc 10-NOV-20 11.34.50.000000 AM
2 2 03-JUN-20 02.34.37.000000 PM
4 cc 10-NOV-20 11.37.19.000000 AM
5 cc 10-NOV-20 01.25.27.000000 PM

免责声明:文章转载自《OGG投递进程报错无法open文件,无法正常投递》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇AI Accord.NET入门数据分析学习笔记4-----处理缺失数据下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

JsonCpp使用优化

JsonCpp使用优化 « 搜索技术博客-淘宝 十一 JsonCpp使用优化恨少 最近一个项目在使用JsonCpp,JsonCpp简洁易用的接口让人印象深刻。但是在实际使用过程中,我发现JsonCpp的性能却不尽如人意,所以想着方法优化下性能。 代码理解 1、JsonCpp中一切都是Value,Value用union指向自己保存的数据。Value...

实验2:Open vSwitch虚拟交换机实践

一、实验目的 能够对Open vSwitch进行基本操作; 能够通过命令行终端使用OVS命令操作Open vSwitch交换机,管理流表; 能够通过Mininet的Python代码运行OVS命令,控制网络拓扑中的Open vSwitch交换机 二、实验环境 下载虚拟机软件Oracle VisualBox 或 VMware; 在虚拟机中安装Ubuntu...

Sencha Touch开发实例:有动画效果iPad的网站首页

在51CTO的专题“Sencha Touch入门教程”中我们已对如何使用Sencha touch进行开发有了初步的认识。在本系列教程中,将学习如何使用Sencha Touch,开发一个适合在iPad上运行的网页应用,并详细讲解其中的技巧。本文的阅读对象为对Sencha Touch有一定基础的读者,如果读者不熟悉相关内容,请先查看51CTO的专题。 构图设计...

【数据分析&数据挖掘】数据合并和拼接案例

1 importpandas as pd 2 importnumpy as np 3 4 #加载数据——detail 5 detail_1 = pd.read_excel("./meal_order_detail.xlsx", sheetname=0) 6 detail_2 = pd.read_excel("./meal_order_detail.xls...

flask中路由系统

flask中的路由我们并不陌生,从一开始到现在都一直在应用 @app.route("/",methods=["GET","POST"]) 1.@app.route()装饰器中的参数 methods:当前url地址,允许访问的请求方式 @app.route("/info", methods=["GET", "POST"]) def student_info(...

redis中的hash、列表、集合操作

一、hash操作 数据结构:key:{k1:v1, k2:v2, k3:v3} 类似Python中的字典 如:info : {name: lina, age: 22, sex: F} hset key k1 v1 设置/创建(字典) hget key k1 获取key1 中 k1对应的值 批量设置获取 hmset key k2 v2 k3 v3 同时...