Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Utwórz serwer połączony między dwoma kontenerami platformy Docker z uruchomionym programem SQL Server (przykład T-SQL)

W tym artykule opisano proces tworzenia połączonego serwera z wystąpienia programu SQL Server w jednym kontenerze platformy Docker do wystąpienia programu SQL Server w innym kontenerze platformy Docker. Oba kontenery Dockera znajdują się na tym samym komputerze.

Proces jest dokładnie taki sam, jak przy tworzeniu dowolnego połączonego serwera (na przykład, nawet jeśli instancje SQL Server znajdowały się na oddzielnych komputerach i nie działały w kontenerze Docker).

Wszystkie przykłady tutaj używają języka Transact-SQL. Umożliwia to tworzenie połączonego serwera bez polegania na graficznym interfejsie użytkownika (takim jak SSMS).

Utwórz połączony serwer

Aby utworzyć połączony serwer przy użyciu T-SQL, wykonaj sp_addlinkedserver procedura składowana podczas przekazywania nazwy połączonego serwera oraz jego źródła.

Oto przykład tworzenia połączonego serwera:

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

W tym przypadku nazwa serwera połączonego to Homer i określam adres IP kontenera Docker, a następnie port TCP. Zmień nazwę serwera i adres IP/port zgodnie z wymaganiami.

Możesz znaleźć adres IP swojego kontenera Docker, uruchamiając następujący kod w oknie terminala:

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

Jeśli to nie zadziała, wypróbuj starszą metodę:

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

Zmień nazwę kontenera zgodnie z wymaganiami.

Przetestuj połączony serwer

Teraz, gdy dodałeś połączony serwer, możesz użyć sp_testlinkedserver aby to przetestować:

EXEC sp_testlinkedserver Homer;

Wynik (jeśli się powiedzie):

Commands completed successfully.

Logowanie nie powiodło się?

Jeśli pojawi się błąd „Logowanie nie powiodło się”, prawdopodobnie nie masz odpowiedniego loginu na zdalnym serwerze. Musisz mieć odpowiedni login z tymi samymi danymi uwierzytelniającymi, co na serwerze lokalnym.

Alternatywnie możesz utworzyć osobny login tylko dla połączonego serwera.

Zobacz Tworzenie serwera połączonego w programie SQL Server (przykład T-SQL), aby uzyskać więcej informacji i przykłady wykonania tego. Ten artykuł wykorzystuje te same szczegóły dotyczące połączonego serwera, co w tym artykule. Zawiera również przykład uruchamiania zapytania rozproszonego i zapytania przekazującego na połączonym serwerze po jego skonfigurowaniu.

Upuść połączony serwer

Oto przykład usunięcia połączonego serwera o nazwie „Homer” i wszystkich powiązanych loginów.

EXEC sp_dropserver 'Homer', 'droplogins';

droplogins argument jest opcjonalny, ale jeśli nie określisz tego podczas upuszczania serwera połączonego, który ma skojarzone wpisy logowania serwera zdalnego i serwera połączonego lub jest skonfigurowany jako wydawca replikacji, zostanie zwrócony komunikat o błędzie.

Zobacz Usuwanie połączonego serwera za pomocą T-SQL, aby uzyskać więcej przykładów.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Najszybszy sposób wykonywania zagnieżdżonych wstawek zbiorczych z użyciem scope_identity()?

  2. Tworzenie wbudowanej funkcji z wartościami tabelarycznymi (ITVF) w programie SQL Server

  3. Jak usunąć spacje nierozdzielające z kolumny na serwerze SQL?

  4. Jak przekonwertować wartości wierszy na kolumny z dynamiczną liczbą kolumn?

  5. Odpowiednik funkcji Sleep() w SQL Server:instrukcja WAITFOR