Ситуация:
1. Есть сервер Linux, на нем поднят Apache + MySQL. Через веб предоставляется некоторая общедоступная информация, которая тянется из MySQL.
2. Есть сервер Windows2K AS, сокрытый за DMZ, на котором работает MS SQL и промышленная БД, из которой и должны порциями подливаться данные в MySQL.
Внимание, вопрос:
Каким образом оптимальнее (читай, безопаснее-производительнее-надежнее (именно в таком приоритете)) организовать "переходник" MS SQL -> MySQL? Помогите определиться принципиально.
Собственные мыслишки таковы:
ВАРИАНТ 1 (пока предпочтительный).
1. Пишем подобие мааленького портмаппера, который будет висеть на сокете фаервола и перенаправлять запросы КЛИЕНТА на целевой сервер БД. Ну, возможно, еще его можно нагрузить функцией выставления флагов о том, что информация обновилась.
2. Пишем КЛИЕНТА, который будет просто по рассписанию (либо по сигналу с портмаппера) обращаться к портмапперу и через него получать результаты запроса к БД. Он же будет заниматься подливкой данных в БД MySQL.
Преимущества варианта, котороые вижу:
а) Нет открытого порта SQL сервера на фаерволе (SQL сервер, напомню, ЗА двумя фаерволами: один "внешний", который смотрит в Сеть и в DMZ, другой - "внутренний", входит в состав DMZ и одним глазом глядит в LAN).
б) Нет прямого обращения к пром. БД, что следует из а). Упомянутый портмаппер заточен только на прием сформированных определенным образом запросов. И работает он только с SQL сервером и ни с чем иным.
в) публичная БД MySQL существует независимо и тянет из нее данные уже либо cgi, либо че-нить другое. И потерять ее не жалко и кто стырит не забогатеет B).
Недостатки:
г) Главный и, ИМХО, единственный - необходимость писанины. Опыт разработки сетевых приложений под WinSock имеется, а вот под Linux - нету. Изучение доков, эксперименты - на все нужно время.
ВАРИАНТ 2 (практически, не применимый (см. недостатки)).
1. На "внутреннем" фаерволе открываем порт SQL сервера
2. На SQL сервере делаем спец. юзера с минимумом привилегий, под которым и будет ходить КЛИЕНТ.
3. Пишем КЛИЕНТА, который напрямую будет тягать данные из SQL сервера и писать их в БД MySQL.
Преимущества:
а) Меньше времени на реализацию.
б) Отпадает необходимость в доп. звене - портмаппере. А, как грится, меньше звеньев - меньше потенциальных проблем в работе.
Недостатки: необходимость открывать порт (да еще какой!) на важном, с т.з. ресурсов, сервере. Хоть и скрыт он за DMZ, от этого не особо легче.
Заранее спасибо