Problemen met Azure SQL Edge-implementaties oplossen
Belangrijk
Azure SQL Edge wordt op 30 september 2025 buiten gebruik gesteld. Zie de kennisgeving buitengebruikstelling voor meer informatie en migratieopties.
Notitie
Azure SQL Edge biedt geen ondersteuning meer voor het ARM64-platform.
Dit artikel bevat informatie over mogelijke fouten bij het implementeren en gebruiken van Azure SQL Edge-containers en biedt technieken voor probleemoplossing om deze problemen op te lossen.
Azure SQL Edge ondersteunt twee implementatiemodellen:
Verbonden implementatie via Azure IoT Edge: Azure SQL Edge kan worden geïmplementeerd als een module voor Azure IoT Edge. Zie Azure SQL Edge implementeren voor meer informatie.
Niet-verbonden implementatie: Azure SQL Edge-containerinstallatiekopieën kunnen worden opgehaald uit Docker-hub en worden geïmplementeerd als een zelfstandige container of in een Kubernetes-cluster. Zie Azure SQL Edge implementeren met Docker en Een Azure SQL Edge-container implementeren in Kubernetes voor meer informatie.
Problemen met IoT Edge-apparaten en -implementaties oplossen
Als er een fout optreedt tijdens het implementeren van SQL Edge via Azure IoT Edge, controleert u of de iotedge
service juist is geconfigureerd en wordt uitgevoerd. De volgende documenten kunnen nuttig zijn bij het oplossen van problemen met betrekking tot Azure IoT Edge:
- Veelvoorkomende problemen en oplossingen voor Azure IoT Edge.
- Problemen met uw IoT Edge-apparaat oplossen
Docker-opdrachtfouten
Als er fouten optreden voor docker
opdrachten, controleert u of de Docker-service wordt uitgevoerd en probeert u uit te voeren met verhoogde machtigingen.
In Linux krijgt u bijvoorbeeld mogelijk de volgende fout bij het uitvoeren docker
van opdrachten:
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
Als u deze fout in Linux krijgt, voert u dezelfde opdrachten uit als voorafgegaan door sudo
. Als dit mislukt, controleert u of de Docker-service wordt uitgevoerd en start u deze indien nodig.
sudo systemctl status docker
sudo systemctl start docker
Controleer in Windows of u PowerShell of de opdrachtprompt als beheerder start.
Opstartfouten voor Azure SQL Edge-containers
Als de SQL Edge-container niet kan worden uitgevoerd, voert u de volgende tests uit:
Als u Azure IoT Edge gebruikt, controleert u of de module-installatiekopieën zijn gedownload en of de omgevingsvariabelen en opties voor het maken van containers correct zijn opgegeven in het modulemanifest.
Als u docker- of Kubernetes-implementatie gebruikt, controleert u of de
docker run
opdracht juist is gevormd. Zie Azure SQL Edge implementeren met Docker en Een Azure SQL Edge-container implementeren in Kubernetes voor meer informatie.Als er een foutbericht wordt weergegeven,
failed to create endpoint CONTAINER_NAME on network bridge. Error starting proxy: listen tcp 0.0.0.0:1433 bind: address already in use.
probeert u de containerpoort 1433 toe te wijzen aan een poort die al in gebruik is. Dit kan gebeuren als u SQL Edge lokaal uitvoert op de hostcomputer. Het kan ook gebeuren als u twee SQL Edge-containers start en beide probeert toe te wijzen aan dezelfde hostpoort. Als dit gebeurt, gebruikt u de parameter om de-p
containerpoort 1433 toe te wijzen aan een andere hostpoort. Voorbeeld:sudo docker run --cap-add SYS_PTRACE -e 'ACCEPT_EULA=1' -e 'MSSQL_SA_PASSWORD=<password>' -p 1433:1433 --name azuresqledge -d mcr.microsoft.com/azure-sql-edge-developer.
Als er een fout optreedt, bijvoorbeeld
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.30tdout=1&tail=all: dial unix /var/run/docker.sock: connect: permission denied
bij het starten van een container, voegt u uw gebruiker toe aan de docker-groep in Ubuntu. Meld u vervolgens af en weer aan, omdat deze wijziging van invloed is op nieuwe sessies.usermod -aG docker $USER
Controleer of er foutberichten van de container zijn.
docker logs e69e056c702d
Als u containerbeheersoftware gebruikt, moet u ervoor zorgen dat deze containerprocessen ondersteunt die als hoofdmap worden uitgevoerd. Het sqlservr-proces in de container wordt uitgevoerd als root.
Standaard worden Azure SQL Edge-containers uitgevoerd als een niet-hoofdgebruiker met de naam
mssql
. Als u koppelpunten of gegevensvolumes gebruikt om gegevens vast te houden, moet u ervoor zorgen dat demssql
gebruiker over de juiste machtigingen op het volume beschikt. Zie Uitvoeren als niet-hoofdgebruiker en persistente gegevens voor meer informatie.Als uw SQL Edge Docker-container direct na het starten wordt afgesloten, controleert u de Docker-logboeken. Als u PowerShell in Windows gebruikt met de
docker run
opdracht, gebruikt u dubbele aanhalingstekens in plaats van enkele aanhalingstekens. Gebruik met PowerShell Core enkele aanhalingstekens.Bekijk de SQL Edge-foutenlogboeken.
SQL Edge-verbindingsfouten
Als u geen verbinding kunt maken met het SQL Edge-exemplaar dat in uw container wordt uitgevoerd, voert u de volgende tests uit:
Zorg ervoor dat uw SQL Edge-container wordt uitgevoerd door de
STATUS
kolom van dedocker ps -a
uitvoer te bekijken. Als dat niet het gaat, kuntdocker start <Container ID>
u deze starten.Als u bent toegewezen aan een niet-standaardhostpoort (niet 1433), moet u ervoor zorgen dat u de poort opgeeft in uw verbindingsreeks. U kunt de poorttoewijzing zien in de
PORTS
kolom van dedocker ps -a
uitvoer. Zie Verbinding maken en query's uitvoeren op Azure SQL Edge voor meer informatie over het maken van verbinding met Azure SQL Edge.Als u SQL Edge eerder hebt geïmplementeerd met een toegewezen gegevensvolume of gegevensvolumecontainer en nu de bestaande toegewezen gegevensvolume- of gegevensvolumecontainer gebruikt, negeert SQL Edge de waarde van
MSSQL_SA_PASSWORD
de omgevingsvariabele. In plaats daarvan wordt het eerder geconfigureerde SA-gebruikerswachtwoord gebruikt. Dit gebeurt omdat SQL Edge de bestaandemaster
databasesbestanden opnieuw gebruikt in de toegewezen volume- of gegevensvolumecontainer. Als u dit probleem krijgt, kunt u de volgende opties gebruiken:- Maak verbinding met het eerder gebruikte wachtwoord als het nog steeds beschikbaar is.
- Configureer SQL Edge voor het gebruik van een ander toegewezen volume of een andere gegevensvolumecontainer.
- Verwijder de bestaande
master
databasebestanden (master.mdf
enmastlog.mdf
) uit de toegewezen volume- of gegevensvolumecontainer.
Bekijk de SQL Edge-foutenlogboeken.
Sql Edge-installatie- en foutlogboeken
Sql Edge-foutenlogboeken zijn standaard aanwezig in de /var/opt/mssql/log
map in de container en kunnen op een van de volgende manieren worden geopend:
Als u een hostmap
/var/opt/mssql
hebt gekoppeld toen u de container maakte, kunt u in plaats daarvan zoeken in delog
submap op het toegewezen pad op de host.Door een interactieve opdrachtprompt te gebruiken om verbinding te maken met de container. Als de container niet wordt uitgevoerd, start u eerst de container. Gebruik vervolgens een interactieve opdrachtprompt om de logboeken te inspecteren. U kunt de container-id ophalen door de opdracht
docker ps
uit te voeren.docker start <ContainerID> docker exec -it <ContainerID> "/bin/bash"
Voer vanuit de bash-sessie in uw container de volgende opdrachten uit:
cd /var/opt/mssql/log cat errorlog
Als de SQL Edge-container actief is en u verbinding kunt maken met het exemplaar met behulp van clienthulpprogramma's, kunt u de opgeslagen procedure
sp_readerrorlog
gebruiken om de inhoud van het SQL Edge-foutenlogboek te lezen.
Opdrachten uitvoeren in een container
Als u een actieve container hebt, kunt u opdrachten in de container uitvoeren vanuit een hostterminal.
Voer de container-id uit om de container-id op te halen:
docker ps -a
Ga als volgende te werk om een bash-terminal te starten in de container:
docker exec -it <Container ID> /bin/bash
U kunt nu opdrachten uitvoeren alsof u ze uitvoert in de terminal in de container. Wanneer u klaar bent, typt exit
u . Hierdoor wordt de interactieve opdrachtsessie afgesloten, maar de container blijft actief.
Uitgebreide logboekregistratie inschakelen
Als het standaardlogboekniveau voor de streaming-engine onvoldoende informatie biedt, kan logboekregistratie voor foutopsporing voor de streaming-engine worden ingeschakeld in SQL Edge. Als u logboekregistratie voor foutopsporing wilt inschakelen, voegt u de RuntimeLogLevel=debug
omgevingsvariabele toe aan uw SQL Edge-implementatie. Nadat u logboekregistratie voor foutopsporing hebt ingeschakeld, probeert u het probleem te reproduceren en controleert u de logboeken op relevante berichten of uitzonderingen.
Notitie
De optie Uitgebreide logboekregistratie mag alleen worden gebruikt voor probleemoplossing en niet voor normale productieworkloads.