Невозможно подключиться к On Premise Sql Server из Azure Sql db

У меня есть две базы данных сервера SQL:

  • На месте: см. Изображение ниже. У нас есть static IPсвязан с этим сервером для удаленного доступа с других машин разработки. Машина deployed in Location A и является accessible from Location B or C которые geographically separated,

НОТА

Для подключения с использованием SSMS, из Location B or C мы используем IP Address/UserName/Password, Neither instance name необходимо nor FQDN, Только IP.

  • В Azure. Другая база данных находится в Azure. Хостинг в качестве службы там. Нет ВМ. Он перенесен из одной из наших локальных баз данных, которые ранее были доступны из #1. Мы планируем перевести всю нашу базу данных в лазурь, но на данный момент нам нужна перекрестная связь в течение нескольких месяцев, пока мы полностью не перейдем.

проблема

Мы используем связанный сервер в наших запросах, и они терпят неудачу, так как Azure не поддерживает связанные серверы. Таким образом, для доступа к данным из базы данных Azure мы используем External / Table и источники данных, но все же это вызывает у меня проблемы с подключением.

ошибка

Msg 46823, Level 16, State 1, Line 1 Error retrieving data from XXX.XXX.157.236.TableBackup. The underlying error message received was: 'A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)'.

Пожалуйста, помогите мне решить эту проблему.

БОЛЬШЕ ОБНОВЛЕНИЯ

Я использую внешние таблицы для соединения Sql Azure с моим локальным сервером. Смотрите код ниже:

--CREATE MASTER KEY ENCRYPTION BY PASSWORD = '##########';
--Needs to be username and password to access SQL database
CREATE DATABASE SCOPED CREDENTIAL SqlUsercred WITH IDENTITY = '####user', SECRET = '########';


CREATE EXTERNAL DATA SOURCE Remote1801
WITH 
( 
    TYPE=RDBMS, 
    LOCATION='XXX.XXX.157.236', 
    DATABASE_NAME='TableBackup', 
    CREDENTIAL= SqlUsercred
); 







CREATE EXTERNAL TABLE oeordhExt(
    [Entity] [varchar](14) NOT NULL,
    [ordnumber] [char](22) NOT NULL,
    [SHIPTO] [char](6) NOT NULL,
    [SHPNAME] [char](60) NOT NULL,
    [SHPADDR1] [char](60) NOT NULL,
    [SHPADDR2] [char](60) NOT NULL,
    [SHPADDR3] [char](60) NOT NULL,
    [SHPADDR4] [char](60) NOT NULL,
    [SHPCITY] [char](30) NOT NULL,
    [SHPSTATE] [char](30) NOT NULL,
    [SHPZIP] [char](20) NOT NULL,
    [SHPCOUNTRY] [char](30) NOT NULL,
    [SHPPHONE] [char](30) NOT NULL,
    [SHPFAX] [char](30) NOT NULL,
    [SHPCONTACT] [char](60) NOT NULL
)    
WITH
(
  DATA_SOURCE = Remote1801,
  SCHEMA_NAME = 'dbo', --schema name of remote table
  OBJECT_NAME = 'oeordh' --table name of remote table
);

select * from         oeordhExt

`

РЕЗУЛЬТАТ

Сообщение 46823, уровень 16, состояние 1, строка 53 Ошибка получения данных из 180.150.157.236.TableBackup. Основное полученное сообщение об ошибке было следующим: "При установлении соединения с SQL Server произошла ошибка сети или конкретного экземпляра. Сервер не найден или не был доступен. Убедитесь, что имя экземпляра указано правильно и что SQL Server настроен для разрешения удаленных подключений. (поставщик: поставщик именованных каналов, ошибка: 40 - не удалось открыть соединение с SQL Server)'.

1 ответ

Я предлагаю постепенно перенести базы данных с локального SQL Server на SQL Azure, но сохранить исходные базы данных локально и синхронизировать их с Azure с помощью SQL Data Sync, как описано здесь. После этого вы сможете получить доступ к своим базам данных на месте, если вам нужно без задержки связанного сервера, или вы можете получить доступ к ним в SQL Azure, если хотите.

В качестве альтернативы вы можете использовать репликацию, как описано здесь.

Надеюсь это поможет.

С Уважением,

Альберто Морильо

Другие вопросы по тегам