Наш вариант использования - это база данных, отвечающая за учетные записи, сеансы, лицензии и т. Д. - ее необходимо опрашивать при запуске клиента, поэтому высокая надежность имеет решающее значение. Таким образом, мы хотели бы выполнить репликацию на разных серверах в физически отдельных сетях на случай, если весь центр обработки данных выйдет из строя. Я успешно настроил принудительную подписку на другой сервер в той же сети, так что в целом это работает. Сейчас мне нужно наладить работу с подключением к серверам за пределами сети.
Репликация не работает напрямую между сетями. Microsoft предлагает репликацию через VPN или через Интернет. Последнее кажется мне неэффективным (и они говорят: «Примечание. Веб-синхронизация предназначена для синхронизации данных с портативными компьютерами, портативными устройствами и другими клиентами. Веб-синхронизация не предназначена для приложений большого объема сервер-сервер»).
Первый, VPN, будет работать, но я по-прежнему считаю излишне сложным решением (не говоря уже о дополнительном потенциале проблем с безопасностью) постоянно запускать VPN-соединение. Я бы предпочел просто запустить SSH-туннель. Тем не менее, я не могу найти ни одной статьи, объясняющей, как это сделать, и не о MySQL.
У меня есть сервер SSH, настроенный на подписчике, и я использовал PuTTY для создания туннеля от <publisher>:1434
к <subscriber>:1433
. Однако я не могу заставить SQL Server Management Studio подключаться таким образом (я не уверен, что он поддерживает синтаксис порта :
). Я также установил псевдоним для <publisher>
диспетчера конфигурации SQL Server с @@servername
из <subscriber>
, указывающим на localhost:1434
. Подключение к этому тоже не работает.
Я использовал опцию принудительной подписки, поэтому я считаю, что издателю необходимо подключиться к подписчику, а не наоборот.
Оба сервера используют экземпляр по умолчанию и работают под управлением SQL Server 2005 SP 2 на Windows Server 2003 SP 2. SSH-сервер на подписчике - freeSSHd 1.2.1.
Это вообще возможно? Есть ли другой способ использовать SSH, чтобы притвориться, что машина существует в той же сети? Или мне нужно использовать VPN?