sql >> Databasteknik >  >> RDS >> Database

Använder du namngivna instanser? Testa din DAC-anslutning!

När jag lekte idag upptäckte jag att jag inte kunde ansluta till min lokala namngivna instans med den dedikerade administratörsanslutningen (annan känd som DAC, men inte den DAC):

Kan inte ansluta till ADMIN:PLASKETT\SQL2012.

Ett nätverksrelaterat eller instansspecifikt fel inträffade när en anslutning till SQL Server upprättades. Servern hittades inte eller var inte tillgänglig. Kontrollera att instansnamnet är korrekt och att SQL Server är konfigurerad för att tillåta fjärranslutningar. (leverantör:SQL Network Interfaces, fel:43 – Ett fel uppstod när porten för dedikerad administratörsanslutning (DAC) skulle hämtas. Se till att SQL Browser körs, eller kontrollera felloggen för portnumret) (Microsoft SQL Server, Fel:-1)

Detta är lokalt, så naturligtvis har följande inställning på servernivå för att tillåta fjärradministratörsanslutningar ingen effekt i detta specifika scenario:

EXEC sp_configure 'remote admin connections', 1;
GO
RECONFIGURE;
GO

Jag upptäckte att jag kunde ansluta om jag aktiverade spårningsflaggan 7806, även om den spårningsflaggan är avsedd för SQL Server Express (som dokumenterats här). Men jag visste att problemet måste vara djupare än så här – Microsoft kunde inte ha brutit den här funktionen helt, eller hur?

Det visar sig att detta symptom bara påverkar *namngivna* instanser. Jag pratade om detta med Jonathan Kehayias, som hade en standardinstans och kunde ansluta bra. Han kunde dock inte ansluta om han uttryckligen angav portnumret, vilket ledde till att han upptäckte att TCP/IP var inaktiverat.

Även om detta påverkar namngivna instanser av Developer Edition specifikt eftersom TCP/IP-protokollet är inaktiverat som standard, finns det andra scenarier där detta kan skada dig om du har namngivna instanser och...

  • du har [av misstag] distribuerat Developer Edition till produktion (stygg stygg);
  • du har inaktiverat TCP/IP på valfri utgåva; eller,
  • SQL Server Browser-tjänsten körs inte.

För att lösa detta, se till att TCP/IP är aktiverat via SQL Server Configuration Manager> Nätverksprotokoll för och se till att SQL Server Browser Service körs. Du måste starta om SQL Server.

Nu, när du kan ansluta via DAC:n, om du försöker ansluta inom Management Studio, kommer du att få detta felmeddelande:

Det här felmeddelandet är godartat (och jag tror kommer från IntelliSense-anslutningen i bakgrunden). Du kan se i statusfältet att du är ansluten, och du kan verifiera att din anslutning är DAC-anslutningen genom att avvisa det här felmeddelandet och köra en fråga.

Hur som helst, att bekräfta att du kan ansluta via DAC är ett absolut nödvändigt steg i din katastrofåterställningsplan. Om du inte kan ansluta till DAC:n bör du planera för en eller båda av följande åtgärder under ditt nästa underhållsfönster (eller tidigare, om du har råd med en omstart av tjänsten):

  • aktivera TCP/IP
  • aktivera spårningsflagga 7806

I båda fallen, se till att SQL Server Browser Service körs. Se också till att serverinställningen för att aktivera fjärranslutningar är aktiverad, eftersom du aldrig vet var du kan vara när du behöver komma åt en server som inte svarar.

Kendra Little skrev ett bra blogginlägg om DAC förra året. Det är roligt att rota runt och se vad du kan göra med DAC:n, och det är verkligen trevligt att veta att den finns där, men det är också viktigt att veta hur den kanske inte kan hjälpa dig i händelse av faktiska problem med servern.


  1. Kopiera data till en annan tabell

  2. Om SQLite

  3. SQL-frågor

  4. Oracle:Uppdatering av en tabellkolumn med ROWNUM i kombination med ORDER BY-satsen