В настоящее время я веду переговоры с администратором баз данных и специалистами по ИТ-безопасности в моей компании, и мне сказали, что единственный способ надежно связать нашу главную базу данных (MSSQL за брандмауэром) с нашими веб-приложениями - это создать файл резервной копии, FTP файл на веб-сервер и запустите сценарий (-ы) для восстановления этого импортированного файла резервной копии в базу данных, размещенную за пределами брандмауэра (а затем импортируйте данные в MYSQL). Мне трудно поверить, что это лучшее решение. В идеале я хотел бы иметь двустороннюю прямую связь между главным сервером MSSQL и базой данных MySQL, которая обслуживает веб-приложения, и синхронизировать эти базы данных. Может ли кто-нибудь указать мне на такое решение, или правда, что нам нужно полагаться на FTP, чтобы пройти через брандмауэр?
Спасибо!
Это похоже на кошмар.
Зачем пытаться синхронизировать две базы данных? Нет ничего плохого в том, что веб-приложения с выходом в Интернет напрямую обращаются к серверу базы данных. Я не специалист по сетям, но думаю, что типичная установка работает следующим образом:
Определенно есть и другие конфигурации, но я немного знаком с этой.
Просто убедитесь, что соблюдены обычные меры предосторожности:
Как вы знаете, импорт файлов с разделителями табуляцией в MySQL - самая простая часть. Получение данных MSSQL, экспортированных в формат, совместимый с MySQL, - совсем другая проблема. Если у вас есть правильные файлы с разделителями табуляции, вы можете импортировать их следующим образом:
TRUNCATE TABLE App;
LOAD DATA LOCAL INFILE 'App.tab' INTO TABLE App LINES TERMINATED BY '\r\n';
Чтобы получить данные из MSSQL, вам необходимо:
Все это можно реализовать в сценариях с использованием командного файла и mysql.exe в удаленном режиме. Пример удаленного режима здесь (но этот пример является экспортом, а не импортом, как то, что вам нужно):
mysqldump --databases myDB -v -h zzzzzzs9c49.us-east-1.rds.amazonaws.com -u
user -P 3306 -p > rdsexport.sql
Кроме того, может быть, взгляните на это на всякий случай, если это сработает: SymmetricDS