@Emix

Как ускорить перенос данных из MSSQL в MySQL?

Из базы данных MSSQL делается дамп таблиц в .CSV и на другом сервере загружается в MySQL, последнее время таблицы стали очень тяжелыми и такая загрузка тянется час.

Проблема что в момент импорта MYSQL сильно нагружается и гооврит клиентам mysql server has gone away
  • Вопрос задан
  • 134 просмотра
Решения вопроса 2
@Stalinko
PHP'шник и фрилансер до мозга костей
1. Размазать нагрузку по времени. Переносить данные чаще меньшими порциями, чтобы не нагружать основную БД на час.

2. Построить архитектуру мастер-реплика. Писать только в мастер. Читать только из реплики. Тогда у пользователей реплики не будет проблем "mysql server has gone away".

3. При переносе запись происходит в те же таблицы, из которых читают пользователи? Возможно стоит писать в какие-то временные таблицы и после завершения подменять их. Чтобы не блокировать основные таблицы.

Ну и собственно - что вообще побудило построить такую странную архитектуру, где надо переносить большой объём данных из одной БД в другую не регулярной основе?
Ответ написан
daemonhk
@daemonhk
ПсиХоПат
Heidi SQL - справляется с большими базами, хотя... Если они у вас сотни гигов, то не знаю))
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
toxa82
@toxa82
mysql server has gone away это ошибка когда у вас запустился скрипт, вы подключились к БД, потом долгое время её не используете (например распаршиваете файл и подготавливаете данные), и по истечении времени (wait_timeout) БД закрывает коннект, а вы пытаетесь с ней работать. Тут несколько вариантов решения, или проверять соединение и переподключаться при обрыве, или увеличивать время в настройке wait_timeout.
Ответ написан
firedragon
@firedragon
Senior .NET developer
Выбросьте этап экспорта.
Настройте репликацию, с помощью вот этой утилиты.
Тогда у вас будет передаваться не вся база а только изменения
https://www.symmetricds.org/doc/3.12/html/tutorial...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы