Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Buat Server Tertaut Antara Dua Kontainer Docker yang menjalankan SQL Server (Contoh T-SQL)

Artikel ini membahas proses pembuatan server tertaut dari contoh SQL Server di satu wadah Docker, ke contoh SQL Server di wadah Docker lain. Kedua kontainer Docker berada di mesin yang sama.

Prosesnya persis sama dengan yang akan Anda gunakan untuk membuat server tertaut (misalnya, bahkan jika instance SQL Server berada di mesin terpisah dan tidak berjalan di wadah Docker).

Semua contoh di sini menggunakan Transact-SQL. Ini memungkinkan Anda untuk membuat server tertaut tanpa bergantung pada antarmuka pengguna grafis (seperti SSMS).

Buat Server Tertaut

Untuk membuat server tertaut menggunakan T-SQL, jalankan sp_addlinkedserver prosedur tersimpan sambil meneruskan nama server tertaut serta sumbernya.

Berikut ini contoh membuat server tertaut:

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

Dalam hal ini, nama server yang ditautkan adalah Homer dan saya menentukan alamat IP wadah Docker, diikuti oleh port TCP. Ubah nama server dan alamat IP/port sesuai kebutuhan.

Anda dapat menemukan alamat IP wadah Docker Anda dengan menjalankan kode berikut di jendela terminal:

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

Jika tidak berhasil, coba metode yang lebih lama:

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

Ubah nama penampung sesuai kebutuhan.

Uji Server Tertaut

Sekarang setelah Anda menambahkan server tertaut, Anda dapat menggunakan sp_testlinkedserver untuk mengujinya:

EXEC sp_testlinkedserver Homer;

Hasil (jika berhasil):

Commands completed successfully.

Gagal Masuk?

Jika Anda mendapatkan kesalahan “Login failed”, kemungkinan Anda tidak memiliki login yang sesuai di server jarak jauh. Anda harus memiliki login yang sesuai dengan kredensial yang sama dengan yang ada di server lokal.

Atau, Anda dapat membuat login terpisah hanya untuk server tertaut.

Lihat Membuat Server Tertaut di SQL Server (Contoh T-SQL) untuk detail selengkapnya dan contoh melakukannya. Artikel itu menggunakan detail yang sama untuk server tertaut seperti yang ada di artikel ini. Ini juga memiliki contoh menjalankan kueri terdistribusi dan kueri pass-through di server tertaut setelah dikonfigurasi.

Meninggalkan Server Tertaut

Berikut ini contoh penghapusan server tertaut yang disebut “Homer” dan semua login terkait.

EXEC sp_dropserver 'Homer', 'droplogins';

droplogins argumen bersifat opsional, tetapi jika Anda tidak menentukan ini saat menjatuhkan server tertaut yang memiliki entri login server jarak jauh dan tertaut terkait, atau dikonfigurasi sebagai penerbit replikasi, pesan kesalahan akan ditampilkan.

Lihat Menghapus Server Tertaut menggunakan T-SQL untuk contoh lainnya.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Membuat Not Null Constraint pada Kolom di Tabel SQL Server - Tutorial SQL Server / T-SQL Part 51

  2. Keunggulan Kinerja SQL Server 2016 Enterprise Edition

  3. Tidak dapat menemukan kolom dbo atau fungsi yang ditentukan pengguna atau dbo agregat.Splitfn, atau namanya ambigu

  4. Gunakan APP_NAME() untuk Mendapatkan Nama Aplikasi dari Sesi Saat Ini di SQL Server

  5. Cara membuat server tertaut untuk SQL Server 2008 di mana kami memiliki database dari tahun 2000 dan 2005