Relication Issue
Posted in 2024
Jaco Loots could not delete an ER replicate on two of nine servers because of a shadow replicate. Andreas Legner showed how to find it with cdr list replicate and advised running delete against a node still showing it. Deleting still failed with error 31, so Andreas suggested deleting from repdef_tab by replid, which worked. A replicate then failed to start with error 30; unresolved.
Auto-generated by Claude from the posts below — may be imperfect; read the full thread.
Topics: Stored Procedures & SPL
Good day I have run in to this issue with replication on Informix. I'm trying to delete a replicate on all the Informix production servers (9 in total). It deletes on 7 servers but on 2 servers it says it has a shadow replicate. Now i can't find the shadow replicate if i display the replicate. So i can't delete the replicate or the shadow as i can't find the name of the shadow replicate. Can anyone place help how to find the shadow replicate Regards ------------------------------ Jaco Loots ------------------------------
Hmmmm, I think a "cdr list replicates", on one of the two servers complaining, should turn up a replicate stating 'Shadow' under REPLTYPE and your to-be-deleted replicate under "PARENT_REPLICATE". Let us know how this goes. BR, Andreas ------------------------------ Andreas Legner ------------------------------
If i do that command REPLTYPE does not show. Below the output for the command if that helps DEFINED REPLICATES ATTRIBUTES ------------------------------ REPLICATE: A_per_txn_control_A1 STATE: Active ON:grp_26_ecape CONFLICT: Timestamp FREQUENCY: immediate QUEUE SIZE: 6158 PARTICIPANT: warms:dwafdba.per_txn_control OPTIONS: transaction,ris,ats,fullrow REPLID: 526359 / 0x80817 REPLMODE: PRIMARY ON:grp_26_ecape APPLY-AS: INFORMIX ON:grp_26_ecape ------------------------------ Jaco Loots
Is this your only replicate? I deliberately wrote "cdr list replicates" so you'd see all your replicates and among them the offending shadow replicate - which will be the one with the REPLTYPE line. ------------------------------ Andreas Legner ------------------------------
No i have a lot of replicates this is the problem replicates. If i do "cdr list relicates" i get no output. Ex T REPLSET PARTICIPANTS ------------------------------ ------------------------------ Jaco Loots
Oh, sorry, it's "cdr list replicate", without that 's' at its end - interesting it's starting the output, but then not listing any replicates. Short form: cdr lis rep ------------------------------ Andreas Legner ------------------------------
Thanks did get the shadows now. Now my new problem is if i try to delete a shadow its says undefined replicate ------------------------------ Jaco Loots ------------------------------
As you described the problem initially, that shadow replicate definition is present only on some of your ER nodes, and as a consequence also now the main replicate you were trying to delete. The right way of dealing with such - slightly extraordinary - situation is running the 'cdr delete replicate' commands against one of the nodes still showing the replicate (you'll probably see error number 31 - undefined replicate - in message logs for servers no longer knowing the replicates, but that's just expected and not a problem.) By 'against' I mean either on such server or connecting the cdr utility to it using the --connect option. HTH, Andreas ------------------------------ Andreas Legner ------------------------------
Thanks for the reply Yes i did run the 'cdr del replicate' command and get the error number 31 - undefined replicate. if I do 'cdr list replicate' it shows. It does it for the shadow and the main replicates. both still show when i list them but does not delete. If this makes any sense ------------------------------ Jaco Loots ------------------------------
" both still show" meaning what exactly? Can you see them in a "cdr list replicate" in the same environment where "cdr delete replicate" fails with error 31? Or are you running the "cdr list replicate" somewhere else or seeing the replicates by other means? ------------------------------ Andreas Legner ------------------------------
Yes can still see the in the same environment where the 'cdr delete replicate' fails with error 31 ------------------------------ Jaco Loots ------------------------------
So for each of these replicates you can say "cdr list repl <name>" and see the replicate, but "cdr delete repl <name>", in same command environment, then fails with "undefined repl" (31)?? Can you, please, post here "cdr list repl <name>" output for each of these replicates? ------------------------------ Andreas Legner ------------------------------
Yes. Below output for List command. dwafkwt250 {informix} $ cdr list repl sync_13139_527882_1674706048 dwafkwt250 {informix} $ cdr list repl sync_13139_527882_1674706048 DEFINED REPLICATES ATTRIBUTES ------------------------------ REPLICATE: sync_13139_527882_1674706048 STATE: ON:grp_26_ecape CONFLICT: Always Apply FREQUENCY: immediate QUEUE SIZE: 0 PARTICIPANT: :. OPTIONS: row,ris,ats,partialrow,PendingSync REPLID: 528923 / 0x8121b REPLMODE: OTHER () ON:grp_26_ecape APPLY-AS: OWNER ON:grp_26_ecape REPLTYPE: Shadow PARENT REPLICATE: A_per_reg_nps_disch_A1 dwafkwt250 {informix} $ cdr del repl sync_13139_527882_1674706048 command failed -- undefined replicate (31) dwafkwt250 {informix} $ cdr list repl sync_13139_527882_1674706048 DEFINED REPLICATES ATTRIBUTES ------------------------------ REPLICATE: sync_13139_527882_1674706048 STATE: ON:grp_26_ecape CONFLICT: Always Apply FREQUENCY: immediate QUEUE SIZE: 0 PARTICIPANT: :. OPTIONS: row,ris,ats,partialrow,PendingSync REPLID: 528923 / 0x8121b REPLMODE: OTHER () ON:grp_26_ecape APPLY-AS: OWNER ON:grp_26_ecape REPLTYPE: Shadow PARENT REPLICATE: A_per_reg_nps_disch_A1 DEFINED REPLICATES ATTRIBUTES ------------------------------ REPLICATE: A_per_reg_nps_disch_A1 STATE: Active ON:grp_26_ecape CONFLICT: Timestamp FREQUENCY: immediate QUEUE SIZE: 0 PARTICIPANT: warms:dwafdba.per_reg_nps_disch OPTIONS: transaction,ris,ats,fullrow REPLID: 527882 / 0x80e0a REPLMODE: PRIMARY ON:grp_26_ecape APPLY-AS: INFORMIX ON:grp_26_ecape ------------------------------ Jaco Loots
dwafkwt250 {informix} $ cdr list repl A_per_reg_nps_disch_A1 DEFINED REPLICATES ATTRIBUTES ------------------------------ REPLICATE: A_per_reg_nps_disch_A1 STATE: Active ON:grp_26_ecape CONFLICT: Timestamp FREQUENCY: immediate QUEUE SIZE: 0 PARTICIPANT: warms:dwafdba.per_reg_nps_disch OPTIONS: transaction,ris,ats,fullrow REPLID: 527882 / 0x80e0a REPLMODE: PRIMARY ON:grp_26_ecape APPLY-AS: INFORMIX ON:grp_26_ecape ------------------------------ Jaco Loots
Hmmm, the grp_26_ecape (local) server doesn't participate in the shadow replicate, but does in the parent replicate, but should this lead to error 31 deleting the replicate? Would have to try and simulate this situation (maybe I can slip it into something I'm trying to do anyway.) Your last resort might be a manual "delete from repdef_tab where repid = 528923;", for the shadow replicate and on all servers still showing the replicate. Once this is done, the main replicate hopefully will be droppable too (might require an ER restart). ------------------------------ Andreas Legner ------------------------------
Thanks that work and managed to delete the replicate. i have run into a other problem now. I have found a replicate that's inactive and does not want to start. says invalid replicate state change (30). i deleted the replicate and recreated it but still the same error ------------------------------ Jaco Loots ------------------------------
I'm still not able to get a inactive replicate to start. Still get invalid replicate state change (30). Any feedback would be appreciated ------------------------------ Jaco Loots ------------------------------