Pemecahan Masalah Masalah Koneksi Azure ILB Dalam Koneksi Failover Instance Server SQL
Saya menggunakan alat berikut ini untuk membantu saya mengatasi masalah SQL Server Failover Cluster Instance Connectivity. Terutama masalah-masalah Azure ILB Connection yang mengganggu. Saya akan mencoba memperbarui artikel ini setiap kali saya menemukan alat baru.
NETSTAT
Alat pertama adalah tes sederhana untuk memverifikasi apakah SQL Cluster IP mendengarkan pada port yang seharusnya didengarkan. Dalam hal ini, alamat IP SQL Cluster adalah 10.0.0.201. Tetapi menggunakan instance default yaitu port 1433.
Di sini adalah perintah yang akan membantu Anda dengan cepat mengidentifikasi apakah simpul aktif mendengarkan pada port itu. Dalam kasus kami di bawah ini semuanya terlihat normal.
C: Users dave.SIOS> netstat -na | temukan "1433"
TCP 10.0.0.4:49584 10.0.0.201:1433 DIDIRIKAN
TCP 10.0.0.4:49592 10.0.0.201:1433 DIDIRIKAN
TCP 10.0.0.4:49593 10.0.0.201:1433 DIDIRIKAN
TCP 10.0.0.4:49595 10.0.0.201:1433 DIDIRIKAN
TCP 10.0.0.201:1433 0.0.0.0:0 MENDENGARKAN
MAPAN
TCP 10.0.0.201:1433 10.0.0.4:49592 DIDIRIKAN
TCP 10.0.0.201:1433 10.0.0.4:49593 DIDIRIKAN
TCP 10.0.0.201:1433 10.0.0.4:49595 DIDIRIKAN
Setelah saya dapat yakin SQL mendengarkan port yang tepat, saya menggunakan PSPING untuk mencoba menyambung ke port dari jarak jauh.
PSPING
PSPing adalah bagian dari paket PSTools yang tersedia dari Microsoft. Saya biasanya mengunduh alat dan menempatkan PSPing langsung di folder System32 saya sehingga saya dapat menggunakannya kapan pun saya mau tanpa harus mengubah direktori.
Sekarang, dengan asumsi semuanya sudah dikonfigurasi dengan benar dari perspektif ILB, Cluster dan Firewall, Anda harus dapat melakukan ping ke alamat IP dan port SQL Cluster 1433 dari server pasif. Anda akan mendapatkan hasil yang ditunjukkan di bawah ini …
C: Users dave.SIOS> psping 10.0.0.201:1433
PsPing v2.01 - PsPing - ping, latency, utilitas pengukuran bandwidth
Hak Cipta (C) 2012-2014 Mark Russinovich
Sysinternals - www.sysinternals.com
TCP terhubung ke 10.0.0.201:1433:
5 iterasi (pemanasan 1) uji koneksi:
Menghubungkan ke 10.0.0.201:1433 (pemanasan): 6.99ms
Menghubungkan ke 10.0.0.201:1433: 0.78ms
Menghubungkan ke 10.0.0.201:1433: 0.96ms
Menghubungkan ke 10.0.0.201:1433: 0.68ms
Menghubungkan ke 10.0.0.201:1433: 0.89ms
Jika hal-hal tidak dikonfigurasi dengan benar, Anda dapat melihat hasil yang serupa dengan yang berikut ...
C: Users dave.SIOS> psping 10.0.0.201:1433
TCP terhubung ke 10.0.0.102:1433:
5 iterasi (pemanasan 1) uji koneksi:
Menghubungkan ke 10.0.0.102:1433 (pemanasan):
Operasi ini kembali karena batas waktu habis.
Menghubungkan ke 10.0.0.102:1433 (pemanasan):
Operasi ini kembali karena batas waktu habis.
Menghubungkan ke 10.0.0.102:1433 (pemanasan):
Operasi ini kembali karena batas waktu habis.
Menghubungkan ke 10.0.0.102:1433 (pemanasan):
Operasi ini kembali karena batas waktu habis.
Menghubungkan ke 10.0.0.102:1433 (pemanasan):
Operasi ini kembali karena batas waktu habis.
Jika PSPing menghubungkan tetapi aplikasi Anda mengalami masalah koneksi, Anda mungkin perlu menggali lebih dalam. Saya telah melihat beberapa aplikasi seperti Great Plains juga ingin membuat koneksi ke port 445. Jika aplikasi Anda tidak dapat terhubung tetapi PSPing terhubung ke 1433. Kemudian Anda mungkin perlu melakukan pelacakan jaringan dan melihat port lain apa yang sedang coba terhubung ke aplikasi Anda. Langkah terakhir Anda adalah menambahkan aturan load balancing untuk port-port itu juga.
NAMA INSTANSI
Berencana untuk menggunakan contoh bernama? Anda harus memastikan Anda mengunci layanan TCP Anda untuk menggunakan port statis. Pada saat yang sama, Anda juga harus memastikan Anda menambahkan aturan ke load balancer untuk mengalihkan UDP 1434 untuk Layanan Browser SQL. Jika tidak, Anda tidak akan dapat terhubung ke instance bernama Anda.
FIREWALL
Membuka port TCP 1433 dan 59999 harus mencakup semua langkah manual yang diperlukan. Tetapi ketika memecahkan masalah koneksi, saya biasanya mematikan Windows Firewall untuk menghilangkan firewall sebagai kemungkinan penyebab masalah. Jangan lupa. Azure juga memiliki firewall yang disebut Network Security Groups. Jika ada yang mengubah itu dari default yang dapat memblokir lalu lintas juga.
RESOLUSI NAME
Coba ping nama gugus SQL. Ini harus menyelesaikan ke alamat IP gugus SQL Server. Meskipun saya telah melihat lebih dari beberapa kesempatan, data DNS A yang terkait dengan nama jaringan Cluster SQL menghilang secara misterius dari DNS. Jika itu terjadi, lanjutkan dan baca-iklan nama SQL Custer dan alamat IP sebagai catatan A dalam DNS.
SQL KONFIGURASI MANAJER
Di SQL Configuration Manager, Anda akan melihat SQL Cluster IP Address terdaftar dan port 1433. Jika kebetulan Anda menginstal sebuah Instance Bernama, Anda tentu perlu masuk ke sini dan mengunci port ke port tertentu dan membuat aturan load balancing merefleksikan port itu. Karena batasan ILB Azure hanya pada ILB per AG, saya benar-benar tidak melihat alasan yang sah untuk menggunakan instance bernama. Buat lebih mudah untuk diri sendiri dan gunakan saja contoh default dari SQL. (Pembaruan: mulai Oktober 2016, Anda BISA memiliki beberapa alamat IP per ILB, jadi Anda BISA memiliki beberapa contoh SQL yang dipasang di kluster.)
Direproduksi dengan izin dari Clustering For Mere Mortals.