Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server - Linux
In dit artikel wordt beschreven hoe u problemen met SQL Server kunt oplossen die worden uitgevoerd op Linux of in een Linux-container. Wanneer u problemen met SQL Server op Linux oplost, moet u eraan denken om de ondersteunde functies en bekende beperkingen te bekijken:
- Releaseopmerkingen voor SQL Server 2022 op Linux
- Opmerkingen bij de release voor SQL Server 2019 voor Linux
- releaseopmerkingen voor SQL Server 2017 op Linux
Zie de SQL Server op Linux FAQvoor antwoorden op veelgestelde vragen.
Verbindingsfouten oplossen
Als u problemen ondervindt bij het verbinden met uw Linux SQL Server-exemplaar, zijn er een paar dingen die u moet controleren.
Als u geen lokale verbinding kunt maken met
localhost, probeer dan het IP-adres 127.0.0.1 te gebruiken. Het is mogelijk dat ditlocalhostniet goed is toegewezen aan dit adres.Controleer of de servernaam of het IP-adres bereikbaar is vanaf uw clientcomputer.
Als u het IP-adres van uw Ubuntu-computer wilt vinden, kunt u de
ifconfigopdracht uitvoeren zoals in het volgende voorbeeld:sudo ifconfig eth0 | grep 'inet addr'Voor Red Hat kunt u de
ip addropdracht gebruiken zoals in het volgende voorbeeld:sudo ip addr show eth0 | grep "inet"Aanbeveling
Een uitzondering op deze techniek heeft betrekking op Azure-VM's. Voor Azure-VM's zoekt u het openbare IP-adres voor de VM in de Azure Portal.
Controleer indien van toepassing of u de SQL Server-poort (standaard 1433) op de firewall hebt geopend.
Controleer voor Azure-VM's of u een netwerkbeveiligingsgroepsregel hebt voor de standaardpoort van SQL Server.
Controleer of de gebruikersnaam en het wachtwoord geen typefouten, extra spaties of onjuiste hoofdletters bevatten.
Probeer het protocol en poortnummer expliciet in te stellen met de servernaam, zoals in het volgende voorbeeld:
tcp:servername,1433.Problemen met de netwerkverbinding kunnen ook verbindingsfouten en time-outs veroorzaken. Nadat u uw verbindingsgegevens en netwerkverbinding hebt gecontroleerd, probeert u de verbinding opnieuw.
De SQL Server-service beheren
In de volgende sectie ziet u hoe u de uitvoering van SQL Server Linux-containers beheert. Zie SQL Server-services starten, stoppen en opnieuw opstarten op Linux voor het beheren van services voor Linux.
De uitvoering van de SQL Server Linux-container beheren
U kunt de status en container-id van de laatst gemaakte SQL Server Linux-container ophalen door de volgende opdracht uit te voeren (de id staat onder de CONTAINER ID kolom):
sudo docker ps -l
U kunt de SQL Server-service naar behoefte stoppen of opnieuw opstarten met behulp van de volgende opdrachten:
sudo docker stop <container ID>
sudo docker restart <container ID>
Aanbeveling
Zie Problemen met SQL Server Docker-containers oplossen voor meer tips voor het oplossen van problemen met Linux-containers.
Toegang tot de logbestanden
De SQL Server Database Engine registreert logboeken bij het /var/opt/mssql/log/errorlog bestand in zowel de Linux- als de containerinstallaties. U moet in de superuser-modus zijn om door deze map te bladeren.
Het installatieprogramma logt hier in: /var/opt/mssql/setup-<time stamp representing time of install> U kunt door de errorlog bestanden bladeren met elke UTF-16-compatibele tool zoals vim of cat als volgt:
sudo cat errorlog
Als u wilt, kunt u de bestanden ook converteren naar UTF-8 om ze min ofmeer te lezen met het volgende commando:
sudo iconv -f UTF-16LE -t UTF-8 <errorlog> -o <output errorlog file>
Uitgebreide gebeurtenissen
Uitgebreide gebeurtenissen kunnen worden opgevraagd via een SQL-opdracht. Zie uitgebreide evenementen voor meer informatie.
Crashrapporten
Zoek naar dumps in de logmap in Linux. Controleer onder de /var/opt/mssql/log directory op Linux Core-dumps (.tar.gz2 extensie) of SQL-minidumps (.mdmp extensie).
Ga bijvoorbeeld als volgt te werk om kerndumps weer te geven:
sudo ls /var/opt/mssql/log | grep .tar.gz2
Gebruik dit script voor SQL-dumps:
sudo ls /var/opt/mssql/log | grep .mdmp
Start SQL Server in minimale configuratie of in modus voor één gebruiker
Start SQL Server in minimale configuratiemodus
Deze modus is handig als de instelling van een configuratiewaarde (bijvoorbeeld het overbelasten van geheugen) voorkomt dat de server wordt opgestart.
sudo -u mssql /opt/mssql/bin/sqlservr -f
SQL Server starten in de modus voor één gebruiker
Soms moet u een exemplaar van SQL Server starten in de modus voor één gebruiker met behulp van de opstartoptie -m. Zie opstartparameters voor meer informatie. U kunt bijvoorbeeld serverconfiguratieopties wijzigen of een beschadigde master-database of een andere systeemdatabase herstellen.
Gebruik bijvoorbeeld het volgende script om SQL Server te starten in de modus voor één gebruiker:
sudo -u mssql /opt/mssql/bin/sqlservr -m
Met dit script wordt SQL Server gestart in de modus voor één gebruiker met sqlcmd:
sudo -u mssql /opt/mssql/bin/sqlservr -m sqlcmd
U moet SQL Server altijd op Linux starten met de mssql gebruiker om toekomstige opstartproblemen te voorkomen. Bijvoorbeeld: sudo -u mssql /opt/mssql/bin/sqlservr [STARTUP OPTIONS]
Als u per ongeluk SQL Server start met een andere gebruiker, moet u het eigendom van SQL Server-databasebestanden terugzetten naar de mssql gebruiker voordat u SQL Server start met systemd. Als u bijvoorbeeld het eigendom van alle databasebestanden wilt wijzigen onder /var/opt/mssql naar de gebruiker, voert u mssql de volgende opdracht uit:
chown -R mssql:mssql /var/opt/mssql/
Systeemdatabases herbouwen
Als laatste redmiddel kunt u ervoor kiezen om de en databases terug te bouwen naar de mastermodel standaardversies.
Waarschuwing
Dit proces is gevaarlijk, omdat u alle SQL Server-systeemgegevens die u hebt geconfigureerd, kunt verwijderen, inclusief informatie over uw gebruikersdatabases (maar niet de gebruikersdatabases zelf).
U moet de gebruikersdatabases daarna aan de instantie koppelen. Het verwijdert ook andere informatie die is opgeslagen in de systeemdatabases, waaronder:
- informatie over de hoofdsleutel van de database (DMK)
- alle certificaten die zijn geladen in
master - het wachtwoord voor het
saaccount - werkgerelateerde informatie van
msdb - Database Mail-informatie van
msdb -
sp_configureOpties
U kunt geen gebruikersdatabases die zijn versleuteld met transparante gegevensversleuteling (TDE) opnieuw koppelen, tenzij er ook een back-up van uw certificaten en privésleutels is gemaakt.
Gebruik deze stappen alleen als u de implicaties begrijpt.
SQL Server Database Engine stoppen
sudo systemctl stop mssql-serverVoer sqlservr uit met de
force-setupparametersudo -u mssql /opt/mssql/bin/sqlservr --force-setupU moet SQL Server altijd op Linux starten met de
mssqlgebruiker om toekomstige opstartproblemen te voorkomen.Nadat u het bericht "Herstel is voltooid" ziet, drukt u op Ctrl+C. Hierdoor wordt SQL Server afgesloten.
Configureer het
sawachtwoord opnieuw.sudo /opt/mssql/bin/mssql-conf set-sa-passwordWaarschuwing
Uw wachtwoord moet voldoen aan het standaard SQL Server-wachtwoordbeleid . Standaard moet het wachtwoord ten minste acht tekens lang zijn en tekens bevatten uit drie van de volgende vier sets: hoofdletters, kleine letters, basis-10 cijfers en symbolen. Wachtwoorden mogen maximaal 128 tekens lang zijn. Gebruik wachtwoorden die zo lang en complex mogelijk zijn.
Start SQL Server en configureer de server opnieuw, inclusief het herstellen of opnieuw koppelen van gebruikersdatabases.
sudo systemctl start mssql-server
Prestaties verbeteren
Er zijn veel factoren die van invloed zijn op de prestaties, waaronder databaseontwerp, hardware en workloadvereisten. Als u de prestaties wilt verbeteren, begint u met het doornemen van de aanbevolen procedures in het artikel Best practices voor prestaties en configuratierichtlijnen voor SQL Server op Linux. Bekijk vervolgens enkele van de beschikbare hulpprogramma's voor het oplossen van prestatieproblemen.
- Prestaties controleren via de Query Store
- Systeemdynamische beheerweergaven
- Prestatiedashboard in SQL Server Management Studio
Veelvoorkomende problemen
U kunt geen verbinding maken met uw externe SQL Server-exemplaar.
Zie de sectie voor probleemoplossing van het artikel Verbinding maken met SQL Server op Linux.
U krijgt de foutmelding te zien:
ERROR: Hostname must be 15 characters or less.Dit is een bekend probleem dat optreedt wanneer de naam van de computer die het SQL Server-pakket probeert te installeren, langer is dan 15 tekens. Er zijn momenteel geen andere oplossingen dan het wijzigen van de naam van de machine. U kunt dit doen door zowel als
/etc/hostnamete/etc/hostsbewerken, de hostnaam te wijzigen, elk bestand op te slaan en de computer opnieuw op te starten.Het wachtwoord van de systeembeheerder (
sa) moet opnieuw worden ingesteld, waardoor de SQL Server-service tijdelijk wordt stopgezet.Als u het
sawachtwoord bent vergeten of om een andere reden opnieuw moet instellen, volgt u deze stappen.Meld u aan bij de hostterminal, voer de volgende opdrachten uit en volg de aanwijzingen om het
sawachtwoord opnieuw in te stellen:sudo systemctl stop mssql-server sudo /opt/mssql/bin/mssql-conf setupWaarschuwing
Uw wachtwoord moet voldoen aan het standaard SQL Server-wachtwoordbeleid . Standaard moet het wachtwoord ten minste acht tekens lang zijn en tekens bevatten uit drie van de volgende vier sets: hoofdletters, kleine letters, basis-10 cijfers en symbolen. Wachtwoorden mogen maximaal 128 tekens lang zijn. Gebruik wachtwoorden die zo lang en complex mogelijk zijn.
Speciale tekens in wachtwoorden kunnen fouten of inlogfouten veroorzaken.
Als u enkele tekens in het SQL Server-wachtwoord gebruikt, moet u deze mogelijk escapen met een backslash wanneer u ze gebruikt op de Linux-opdrachtregel. U moet bijvoorbeeld het dollarteken (
$) escapen wanneer u het gebruikt in een terminal-opdracht/shell-script:Werkt:
sudo sqlcmd -S myserver -U sa -P Test$$Werkt wel:
sqlcmd -S myserver -U sa -P Test\$\$
Verwante inhoud
Hulp krijgen
- Ideeën voor SQL: Hebt u suggesties voor het verbeteren van SQL Server?
- Microsoft Q & A (SQL Server)
- DBA Stack Exchange (tag sql-server): Vragen stellen over SQL Server
- Stack Overflow (tag sql-server): antwoorden op vragen over SQL-ontwikkeling
- Licentievoorwaarden en -informatie voor Microsoft SQL Server
- Ondersteuningsopties voor zakelijke gebruikers
- Aanvullende hulp en feedback voor SQL Server
Bijdragen aan SQL-documentatie
Wist u dat u zelf SQL-inhoud kunt bewerken? Door dit te doen helpt u niet alleen onze documentatie te verbeteren, maar krijgt u ook erkenning als bijdrager aan de pagina.
Zie Microsoft Learn-documentatie bewerken voor meer informatie.