sql >> Database >  >> RDS >> Database

Benoemde instanties gebruiken? Test uw DAC-verbinding!

Ik speelde vandaag wat rond en ontdekte dat ik geen verbinding kon maken met mijn lokale benoemde instantie met behulp van de speciale beheerdersverbinding (ook wel bekend als de DAC, maar niet die DAC):

Kan geen verbinding maken met ADMIN:PLASKETT\SQL2012.

Er is een netwerkgerelateerde of exemplaarspecifieke fout opgetreden tijdens het tot stand brengen van een verbinding met SQL Server. De server is niet gevonden of was niet toegankelijk. Controleer of de instantienaam juist is en of SQL Server is geconfigureerd om externe verbindingen toe te staan. (provider:SQL Network Interfaces, error:43 – Er is een fout opgetreden bij het verkrijgen van de dedicated administrator-verbinding (DAC)-poort. Zorg ervoor dat SQL Browser actief is, of controleer het foutenlogboek voor het poortnummer) (Microsoft SQL Server, Error:-1)

Dit is lokaal, dus natuurlijk heeft de volgende instelling op serverniveau om externe beheerdersverbindingen toe te staan ​​geen effect in dit specifieke scenario:

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

Ik ontdekte dat ik verbinding kon maken als ik traceervlag 7806 inschakelde, ook al is die traceervlag bedoeld voor SQL Server Express (zoals hier gedocumenteerd). Maar ik wist dat het probleem dieper moest zijn dan dit - Microsoft kon deze functie niet helemaal kapot hebben gemaakt, toch?

Het blijkt dat dit symptoom alleen *named*-instanties treft. Ik had het hierover met Jonathan Kehayias, die een standaardinstantie had en prima kon verbinden. Hij kon echter geen verbinding maken als hij expliciet het poortnummer opgaf, waardoor hij ontdekte dat TCP/IP was uitgeschakeld.

Hoewel dit specifiek van invloed is op benoemde instanties van Developer Edition omdat het TCP/IP-protocol standaard is uitgeschakeld, zijn er andere scenario's waarin dit nadelig kan zijn als u instanties met een naam hebt genoemd en...

  • je hebt [per ongeluk] de Developer Edition in productie genomen (ondeugend ondeugend);
  • je hebt TCP/IP op elke editie uitgeschakeld; of,
  • de SQL Server Browser-service is niet actief.

Om dit op te lossen, moet u ervoor zorgen dat TCP/IP is ingeschakeld via SQL Server Configuration Manager> Netwerkprotocollen voor en dat de SQL Server Browser Service actief is. U moet SQL Server opnieuw opstarten.

Als u nu verbinding kunt maken via de DAC en u probeert verbinding te maken binnen Management Studio, krijgt u deze foutmelding:

Deze foutmelding is goedaardig (en ik geloof dat deze afkomstig is van de IntelliSense-verbinding op de achtergrond). U kunt aan uw statusbalk zien dat u verbonden bent en u kunt controleren of uw verbinding de DAC-verbinding is door dit foutbericht te negeren en een query uit te voeren.

In ieder geval is het bevestigen dat u verbinding kunt maken via de DAC een absoluut essentiële stap in uw noodherstelplan. Als u geen verbinding kunt maken met de DAC, moet u een of beide van de volgende acties plannen tijdens uw volgende onderhoudsperiode (of eerder, als u een herstart van de service kunt betalen):

  • TCP/IP inschakelen
  • traceervlag 7806 inschakelen

Zorg er in beide gevallen voor dat de SQL Server Browser Service actief is. Zorg er ook voor dat de serverinstelling om externe verbindingen mogelijk te maken is ingeschakeld, aangezien u nooit weet waar u zich bevindt wanneer u toegang moet krijgen tot een niet-reagerende server.

Kendra Little schreef vorig jaar een mooie blogpost over de DAC. Het is leuk om rond te neuzen en te zien wat je met de DAC kunt doen, en het is heel fijn om te weten dat het er is, maar het is ook belangrijk om te weten hoe het je misschien niet kan helpen in het geval van daadwerkelijke serverproblemen.


  1. Kardinaliteitsschatting voor meerdere predikaten

  2. ERROR 1130 (HY000):Host '' mag geen verbinding maken met deze MySQL-server

  3. PostgreSQL-vensterfunctie:partitie in vergelijking

  4. Alternatieven voor LIMIT en OFFSET voor paging in Oracle