Monday, February 12, 2018

[Replication] The row was not found at the Subscriber when applying the replicated (null) command for Table '(null)' with Primary Key(s): (null)

Had this come in courtesy of one of my replication monitors (see other posts).

DESCRIPTION:   Replication-Replication Distribution Subsystem: agent my-ser-ver-here-main-Main_big-my-other-server-here-35 failed. The row was not found at the Subscriber when applying the replicated (null) command for Table '(null)' with Primary Key(s): (null)

Yes, it actually says "(null)".

What was it?  We run multi-tier replication.  That way each datacenter only gets one stream of changes, and we don't run into problems due to desktop heap (see other posts, again, on this blog).

After running a trace, we finally figured it out - the second tier had a foreign key where it shouldn't have had one.  The FKs are handled on the "front" server, the one that everything replicates from.  Because the FK was there, the rows were being deleted out of order, so it had a fit and gave us "(null)" instead of a valid name.  

Note that this is only a problem with multi-tier replication; normal repl handles it, but it somehow choked on this.  


In other news: I've been doing a lot of AWS Aurora I need to post about here, including both MySql SQL, and Powershell, but I don't have enough usable yet.  Coming Soon!