Не удалось выполнить задачу миграции при загрузке локального файла данных при переносе данных из RDS MySQL в базу данных Azure для MySQL с помощью Attunity Replicate MSM

Я пытаюсь перенести данные из Amazon RDS MySQL в базу данных Azure для MySQL с помощью Attunity Replicate for Microsoft Migrations (Replicate MSM).
Для этого я устанавливаю инструмент Replicate MSM на компьютере с Windows 10 локально, затем определяю и тестирую конечные точки исходной и целевой базы данных, например. RDS в качестве источника и Azure в качестве цели, установите необходимые драйверы mysql, odbc и включите двоичное ведение журнала, параметры local-infile в обеих базах данных. Но теперь, когда я запускаю задачу миграции, она создает только схему перенесенных таблиц в целевой базе данных и не выполняет команду «загрузить данные в локальный файл». Вот трассировка стека:

00014468: 2019-06-20T11:17:41 [SOURCE_UNLOAD   ]I:  Unload finished for table 'TestDb'.'Employee' (Id = 1). 2000 rows sent.  (streamcomponent.c:2892)
00014968: 2019-06-20T11:17:41 [TARGET_LOAD     ]I:  Loading table 'migrationtesting'.'Employee' with parallel threads  (odbc_endpoint_imp.c:5256)
00014968: 2019-06-20T11:17:41 [TARGET_LOAD     ]I:  Use parallel load thread pool with '3' threads  (csv_target.c:280)
00014968: 2019-06-20T11:17:42 [TARGET_LOAD     ]I:  Load finished for table 'TestDb'.'Employee' (Id = 1). 2000 rows received. 0 rows skipped. Volume transfered 904960  (streamcomponent.c:3116)
00014968: 2019-06-20T11:17:43 [TARGET_LOAD     ]E:  Failed to execute statement: 'load data local infile "C:\\Program Files\\Attunity\\ReplicateMSM\\data\\tasks\\Aws2Azure\\data_files\\1\\LOAD00000001.csv" into table `migrationtesting`.`Employee` CHARACTER SET UTF8 fields terminated by ','  enclosed by '"' lines terminated by '\n'( `id`,`name`,`gender`,`mobile`,`city` ) ;' [1022502]  (ar_odbc_stmt.c:4349)
00014968: 2019-06-20T11:17:43 [TARGET_LOAD     ]E:  RetCode: SQL_ERROR  SqlState: HY000 NativeError: 1148 Message: [MySQL][ODBC 5.3(w) Driver][mysqld-5.6.39.0]The used command is not allowed with this MySQL version [1022502]  (ar_odbc_stmt.c:4355)
00007376: 2019-06-20T11:17:43 [TASK_MANAGER    ]W:  Table 'TestDb'.'Employee' (subtask 1 thread 1) is suspended  (replicationtask.c:2050)
00014968: 2019-06-20T11:17:43 [TARGET_LOAD     ]E:  Failed to start load process for file '1' [1022502]  (csv_target.c:1350)
00007376: 2019-06-20T11:17:43 [TASK_MANAGER    ]I:  All tables are loaded. Full load only task is stopped  (replicationtask.c:2992)
00014968: 2019-06-20T11:17:43 [TARGET_LOAD     ]E:  Failed to load file '1' [1022502]  (csv_target.c:1418)
00014968: 2019-06-20T11:17:43 [TARGET_LOAD     ]E:  Failed to load data from csv file. [1022502]  (odbc_endpoint_imp.c:5331)

Согласно документам Azure:

LOAD DATA INFILE поддерживается, но параметр [LOCAL] должен быть указан и направлен на UNC-путь (хранилище Azure подключено через SMB).

Если это решение, пожалуйста, объясните, как его реализовать.

Примечание. Версия сервера MySQL для RDS и AZURE - 5.6.


person Akay Nirala    schedule 20.06.2019    source источник


Ответы (1)


Поскольку журналы ошибок предполагают, что вы используете драйвер MySQL ODBC версии 5.3, в котором функция ЗАГРУЗИТЬ ИНФИЛЬ ДАННЫХ отключена по умолчанию, чтобы включить это, нам нужно явно установить значение ENABLE_LOCAL_INFILE в 1. В Attunity Replicate для миграций Microsoft необходимо включить этот флаг для конечной точки базы данных Target, вы можете включить его, выполнив следующие действия ...

  • Откройте настройки целевой конечной точки.

  • Перейдите на вкладку Дополнительно> Внутренние параметры.

  • Добавьте ключ поиска additionalConnectionProperties и нажмите Enter. (это чувствительно к регистру, поэтому просто скопируйте / вставьте то же самое)

  • Вы можете видеть, что новый ключ был создан во внутренних параметрах, введите значение для этого вновь созданного ключа как: ENABLE_LOCAL_INFILE = 1;

  • Сохраните, а затем перезагрузите задачу.

Кредиты: официальное сообщество Attunity / служба поддержки Microsoft Migrations.

person Akay Nirala    schedule 26.06.2019