Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hello, so I have a replication that is kind of propagating a large field content from a row to the consecutive ones, and we don't knwo why. It i hapenning in more than one table
Any ideas?
Source:
Destination:
Source:
Destination:
Hi @kritostar
Please open a support case, so that our technical support team can assist you with some working sessions if required.
Thanks
Naren
So, none of the two options seemed to work. Put as much as special characters I found, they are getting replaced on the destination, but still long rows are been mixed on other rows
Ok, thanks! I have just created one
Hi @kritostar
Is the source MySQL with 8.0.30 ODBC driver?
Then it's bug on the driver and is documented:
Due to an issue with MySQL ODBC Driver 8.0.30, empty TEXT columns may not be replicated correctly during Full Load. For example, if one table row contains a TEXT column with a value and the same column in the next row contains an empty value (but not NULL), both rows will display the value of the first row on the target.
https://bugs.mysql.com/bug.php?id=108431
Workaround would be downgrade the driver to 8.0.26.
Thank you,
Thanks! I am 99% sure this is the problem, I will ask to downgrade the drive and if it works, I'll accept the solution.
Sounds good, please update how it goes.
Thank you,
So, we cannot downgrade the driver because we fix another issue with an updated one.
How can I add a global rule to replace an empty text field with any other char like '-' ?
Please add the table level transformation on the column and set it to
ifnull($ColumnName,'-')
or
CASE $ColumnName WHEN null Then '-' Else $ColumnName END
But I doubt if it will work or not depending on how driver treats the data but give it a try.
Thank you,
>>> How can I add a global rule to replace an empty text field with any other char like '-' ?
It'll be too late for that. If I understand the driver issue correctly then is it the driver which adds the repeated text chunks so Replicate does not get an empty field to replace. Replicate does not have an option to 'remember' and detect 'same as last time'.
>> cannot downgrade the driver because we fix another issue with an updated one
Is that other issue visible with Replicate or elsewhere and if with Replicate in this task (or other tasks processing table wit this issue?) . Maybe you can add a specify a specific (older) MySQL driver Replicate or specific (newer) one to the other application? You could perhaps have multiple endpoints to the same DB, using different drivers through some connection setting possibly "additionalConnectionProperties" ? Not sure if/how this would work exactly for MySQL. If this is a Linux server then perhaps some magic in /etc/odbcinst.ini ?
Hein.