четверг, 4 апреля 2013 г.

Настройка репликации MS SQL Server через сеть Интернет


Иногда необходимо доставить данные с одного сервера MS SQL Server  к другому серверу через сеть Интернет использую репликацию, такой случай у меня  был, и ниже я описал как это было реализорвано.
Настройка репликации  MS SQL Server через Интернет мало чем отличается от настройки репликации в локальной сети, за исключением настройки сетевого оборудования.
 


Примерная схема, того, что у нас должно получиться примерно такова:


Объект 1 Сервер 1 и Объект 4 Сервер 2 - это сервера с MS SQL Server в разных сетях.
На Сервере 4 находится основная база, на которую настроена репликация транзакций.
Сервере 1 будет выполнять роль PULL подписчика.

Я еще дополнительно использую ftp для получения резервной копии и её восстановления на Сервер 1 для настройки репликации. Сервер ftp  так же запущен на сервере 2. В MS SQL Server есть возможность использовать ftp для доставки моментальных снимков при репликации, но у меня была проблема с настройкой сетевого оборудования с настройкой NAT-PT, FTP ALG, иначе не будет происходить доступ подписчика к ftp серверу.  Я решил по-простому – использовать резервные копии.
Объект 2,3 –это коммутаторы имеющие выход в Интернет с  внешним IP, на которых будут настроены сетевые правила .

Сначала настраивается сетевое оборудование, на коммутаторе 2 необходимо открыть порты TCP 20,21 для ftp и 1433 для самого MS SQL Server (при использование именованного инстанса дополнительно открыть UDP 1434 ) для пакетов от Source Сервер1 к Destination внешний IP коммутатора 3.

На коммутаторе 3 настраиваем NAT проброску TCP пакетов MS SQL Server от источника IP коммутатора 2

После настройки сетевого оборудования  проверяем доступность портов командой telnet:

telnet 85.30.240.26 1433
где сначало указывается IP нашего сервера 2,  а затем порт, через который подключаемся, в нашем случае это ms sql порты.

Если все хорошо, переходим к следующему шагу настройки репликации, если не происходит подключение через telnet, то проверяем сетевые настройки .

Следующий шаг связан с тем,  что репликация MS SQL Server возможна только между серверами   с использованием имени сервера, а не по IP.

Т.к наши сервера знают  о друг друге только по IP, чтобы они знали и  имена, то пропишем их на подписчике Сервер1 имя сервера 2, для этого открываем файл hosts  (C:\Windows\System32\drivers\etc)  и делаем привязку имени к IP добавив строку:

85.30.240.26     имя_сервера2

Где 85.30.240.26    это внешний IP коммутатора 3, но для ms sql на сервере1  это  будет сервер 2, а там наш коммутатор должен пробросить пакет до реального сервера 2.

После этого можно проверить подключение к MS SQL Server  с сервера 1 на сервер 2 через MS SQL Management Studio как по имени , так и по IP.

Еще одно важное замечание, т.к. сервера в разных подсетях и не знают о друг друге ничего, то необходимо использовать sql аутефикацию.

 После этого можно настроить саму  репликацию MS SQL Server(Инструкция есть у меня в блоге):
1)Создать распространителя на сервер 2
2)Создать публикацию. И Добавив подписчика сервер 1, сервер добавляется через sql скрипт, а не в графическом режиме.
3) И Создать подписчика на сервере 1, предварительно восстановив базу  из резервной копии  созданной на сервере 2 и скопированная из ftp сервера.

После запуска агентов репликации , репликация должна работать!

 

Комментариев нет :

Отправить комментарий