Итак, сценарий таков:
У меня есть база данных mySQL на локальном сервере, работающем под управлением Windows 2008 Server. Сервер предназначен только для пользователей нашей сети и содержит информацию о графике производства наших компаний. У меня есть та же база данных, работающая на размещенном сервере под управлением Linux, который должен быть доступен онлайн, чтобы наши клиенты могли подключиться к нему и обновить свои заказы.
То, что я хочу сделать, - это двусторонняя синхронизация двух таблиц в базе данных, чтобы заказы были текущими в обеих базах данных, и односторонняя синхронизация с нашего сервера на хост-сервер с данными в других таблицах , Внешний интерфейс базы данных написан на PHP. Я скажу, над чем я работаю до сих пор, и я был бы признателен, если бы люди могли дать мне знать, нахожусь ли я на правильном пути или лаю не на том дереве, и, надеюсь, укажут мне правильное направление.
Моя первая идея - сделать (в конце сценариев PHP, которые генерируют изменения в таблицах заказов) экспорт внесенных изменений, возможно, используя INSERT в OUTFILE WHERE account = account или что-то подобное. Это позволит сохранить размер файла небольшим, а не экспортировать всю таблицу заказов. Я зациклен на том, как (A) экспортировать это как файл SQL, а не как CSV (B), как включить информацию о том, что было удалено, а также о том, что было вставлено (C), как извлечь этот файл на другом сервере и выполните инструкцию SQL.
В настоящее время я изучаю SSH и PowerShell, но не могу сформулировать четкое представление о том, как именно это будет работать. Я также изучаю задачи cron и запланированные задачи Windows. Однако было бы лучше, если бы какие-то обновления просто происходили всякий раз, когда происходило изменение, а не в расписании, чтобы синхронизировать их в режиме реального времени, но я не могу понять это. Я бы хотел запускать запланированную задачу / cronjob хотя бы раз в несколько минут, хотя думаю, что все, что нужно сделать, это проверить, есть ли какие-либо файлы дампа, которые необходимо поместить на противоположный сервер, не обязательно синхронизировать ничего, если ничего не изменилось.
Кто-нибудь когда-нибудь делал что-то подобное? Мы говорим об одновременном изменении / добавлении / удалении от 1 (мин) до 160 строк (макс.) В таблицах. Я хотел бы услышать мысли людей об этом всем, поскольку я продолжаю исследовать свои варианты. Спасибо.
Кроме того, просто чтобы уточнить, я не уверен, является ли один из них действительно хозяином или рабом. Не всегда есть точные данные, это более свежие данные, которые должны быть в обоих.
+ 1 Подробнее Примечание
Еще одна вещь, о которой я сейчас думаю, - это добавить в конце скрипта обновления заказа на одной стороне другой скрипт config / connect, указывающий на базу данных других серверов, а затем повторно выполнить те же самые запросы, поскольку они имеют идентичную структуру. Теперь это звучит просто ... Мысли?