Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Създайте свързан сървър между два Docker контейнера, работещи с SQL Server (пример за T-SQL)

Тази статия разглежда процеса на създаване на свързан сървър от екземпляр на SQL Server в един Docker контейнер до екземпляр на SQL Server в друг Docker контейнер. И двата Docker контейнера са на една и съща машина.

Процесът е точно същият, който бихте използвали за създаване на всеки свързан сървър (например, дори ако екземплярите на SQL Server са на отделни машини и не работят в Docker контейнер).

Всички примери тук използват Transact-SQL. Това ви позволява да създадете свързания сървър, без да разчитате на графичен потребителски интерфейс (като SSMS).

Създайте свързания сървър

За да създадете свързан сървър с помощта на T-SQL, изпълнете sp_addlinkedserver съхранена процедура, докато предава името на свързания сървър, както и неговия източник.

Ето пример за създаване на свързан сървър:

EXEC sp_addlinkedserver 
    @server=N'Homer', 
    @srvproduct=N'', 
    @provider=N'MSOLEDBSQL', 
    @datasrc=N'172.17.0.2,1433';

В този случай името на свързания сървър е Homer и аз посочвам IP адреса на Docker контейнера, последван от TCP порта. Променете името на сървъра и IP адреса/порта според нуждите.

Можете да намерите IP адреса на вашия Docker контейнер, като изпълните следния код в прозорец на терминала:

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' Homer

Ако това не работи, опитайте по-стария метод:

docker inspect -f"{{.NetworkSettings.IPAddress}}" Homer

Променете името на контейнера според изискванията.

Тествайте свързания сървър

След като сте добавили свързания сървър, можете да използвате sp_testlinkedserver за да го тествате:

EXEC sp_testlinkedserver Homer;

Резултат (ако е успешен):

Commands completed successfully.

Неуспешно влизане?

Ако получите грешка „Неуспешно влизане“, има вероятност да нямате съответното влизане на отдалечения сървър. Ще трябва да имате съответно вход със същите идентификационни данни като този на локалния сървър.

Като алтернатива можете да създадете отделно влизане само за свързания сървър.

Вижте Създаване на свързан сървър в SQL Server (пример за T-SQL) за повече подробности и примери за това. Тази статия използва същите подробности за свързания сървър като тези в тази статия. Той също така има пример за изпълнение на разпределена заявка и заявка за преминаване на свързания сървър, след като е конфигуриран.

Изхвърлете свързан сървър

Ето пример за премахване на свързания сървър, наречен „Homer“, и всички свързани данни за влизане.

EXEC sp_dropserver 'Homer', 'droplogins';

droplogins аргументът не е задължителен, но ако не посочите това, когато махнете свързан сървър, който има свързани записи за влизане в отдалечен и свързан сървър или е конфигуриран като издател на репликация, се връща съобщение за грешка.

Вижте Премахване на свързан сървър с T-SQL за повече примери.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как SCHEMA_ID() работи в SQL Server

  2. Комбинирайте множество резултати в подзаявка в една стойност, разделена със запетая

  3. SQL – Преобразуването на тип данни varchar в тип данни за дата и час води до стойност извън диапазона

  4. Как да конвертирате празни пространства в нулеви стойности, като използвате SQL Server?

  5. ПОКАЗВАНЕ НА ВСИЧКИ данни за дати между две дати; ако не съществува ред за определена дата, покажете нула във всички колони