|
Синхронизация таблиц на разных серверах MySql
|
|||
---|---|---|---|
#18+
Извиняюсь за задержку с отчетом! Хотелось, прежде чем выкладывать сюда, хоть приблизительно сделать так, как изначально задумал. Итак, по порядку: Мои мысли совпали с Близнец1980, оптимальный вариант синхронизации таблиц между двумя разными БД – при помощи конструкций “SELECT * INTO OUTFILE” и “LOAD DATA LOCAL INFILE”. Если с первой конструкцией проблем нет, то со второй пришлось помучиться. Насколько понял, запуск этой команды запрещен дефолтными настройками коннектора (в моем случае это {MySQL ODBC 8.0 ANSI Driver}). Нашел пост , из которого узнал, что в моём коннекторе имеет место параметр ENABLE_LOCAL_INFILE , который по умолчанию =0. После того, как добавил в строку подключения “ENABLE_LOCAL_INFILE=1”, все заработало. Вот как выглядит мой финальный код процедуры синхронизации баз, пока без обработчика ошибок: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28.
Я еще раз благодарю всех, кто откликнулся и поддержал меня в решении моей проблемы ) Таким образом, у меня нарисовалась такая картинка, в центре которой стоит мой неизменный и лошарский Excel: ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2019, 16:28 |
|
Синхронизация таблиц на разных серверах MySql
|
|||
---|---|---|---|
#18+
Вопросы по дальнейшей оптимизации процедуры: 1. Логично было бы не “тупо” синхронизировать предложенный набор таблиц, а сначала проверять их на предмет наличия расхождений (по размеру, разумеется). Есть ли в Sql команды, возвращающие размер или какую-то контрольную сумму отдельной таблицы? Если есть, можно было бы построить такую проверку: Код: vbnet 1. 2. 3. 4. 5. 6. 7.
Т. о. в переменной “Синхро” соберутся все таблицы, которые нужно синхронизировать. 2. Вопрос к формату файла передачи данных.. Близнец1980и да, пришлось немного поиграться с форматом файла Попробовал выгружать таблицы в файл ".dat", размер тот же, что и "txt". Чем лучше ".dat"? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2019, 16:40 |
|
Синхронизация таблиц на разных серверах MySql
|
|||
---|---|---|---|
#18+
tinkandrТаким образом, у меня нарисовалась такая картинка, в центре которой стоит мой неизменный и лошарский Excel:Я бы убрал связь "Заказы и т.п.", чтобы образовалась центральная учетная система, которая у вас называется "Локальная БД". И кстати, куда делась 1С, которая упоминалась в начальном топике, и которая чаще всего и играет роль центральной учетной системы, с которой синхронизируются все остальные ? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2019, 17:06 |
|
Синхронизация таблиц на разных серверах MySql
|
|||
---|---|---|---|
#18+
tinkandrЛогично было бы не “тупо” синхронизировать предложенный набор таблиц, а сначала проверять их на предмет наличия расхожденийЗачем что-то проверять? У вас такие большие объемы? Если количество товаров не превышает миллиона, то проще и надежнее переписывать таблицы целиком. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2019, 17:07 |
|
Синхронизация таблиц на разных серверах MySql
|
|||
---|---|---|---|
#18+
miksoftЯ бы убрал связь "Заказы и т.п.", чтобы образовалась центральная учетная система Вы будете смеяться, но, "центральная учетная система" и вообще, центр вселенной у меня это "лошарский Эксель" )) miksoftЗачем что-то проверять? У вас такие большие объемы? Нет, не очень большие. Я только начинаю. Но, как подумаю, что из 10 таблиц к обновлению данных по товарам, будут обновляться и те, в которых изменений нет, сердце кровью обливается... ) miksoftИ кстати, куда делась 1С Да, блин... я думал забыли все уже... ) Ну, ладно, как-то так у меня: ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2019, 17:33 |
|
|
start [/forum/topic.php?fid=47&gotonew=1&tid=1828993]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
66ms |
get topic data: |
8ms |
get first new msg: |
6ms |
get forum data: |
1ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
others: | 9ms |
total: | 154ms |
0 / 0 |