Обновление MariaDB из MSSQL с использованием Linked Server приводит к ошибке в SSIS - PullRequest
1 голос
/ 06 июня 2019

Мы обновляем данные нашего онлайн-магазина, используя пакеты служб SSIS, чтобы получать данные с MS SQL Server 2016 в нашу базу данных mariadb. Мы установили соединение с подключенным сервером, используя последнюю версию 64-разрядного драйвера mariadb odbc 3.1.

В большинстве случаев работает нормально. Но время от времени выполнение пакета завершается с ошибкой:

В наборе строк использовался оптимистичный параллелизм, и значение столбца было изменено после последней выборки или повторной синхронизации содержащейся строки.

Поиск в стеке потока и других ресурсах, многие другие, похоже, решили свои проблемы, настроив драйвер odbc на

возвращать совпадающую строку вместо затронутых строк

но это не решает проблему в нашем случае.

Я пытался использовать MYSQL ODBC Driver 8.0, но я не могу настроить порт 3307, для которого мне необходимо пройти через балансировщик нагрузки.

1 Ответ

0 голосов
/ 06 июня 2019

Вы писали:

В наборе строк использовался оптимистичный параллелизм, и значение столбца было изменено после последней выборки или повторной синхронизации содержащейся строки.

Thisвсегда есть риск с оптимистичным параллелизмом (управление версиями строк в SQL Server).В некотором смысле, это похоже на тупиковую ошибку с пессимистическим параллелизмом (транзакционная изоляция).В обоих сценариях вам нужно иметь план (и код) для решения проблемы.

Это частично деловой вопрос, а частично технический вопрос.С деловой стороны, каков желаемый результат в этом случае?Какое обновление должно "выиграть"?Вы должны знать это, прежде чем делать что-либо еще.С технической стороны, настройка цикла повторных попыток с небольшим ожиданием между попытками должна сделать это.

Если вы часто сталкиваетесь с этой проблемой, вы можете вместо этого использовать изоляцию транзакций.

...