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.