Azure SQL Edge configureren
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.
Azure SQL Edge ondersteunt configuratie via een van de volgende twee opties:
- Omgevingsvariabelen
- Een bestand mssql.conf in de map /var/opt/mssql
Notitie
Als u omgevingsvariabelen instelt, worden de instellingen die in het mssql.conf
bestand zijn opgegeven, overschreven.
Configureren met behulp van omgevingsvariabelen
Azure SQL Edge maakt verschillende omgevingsvariabelen beschikbaar die kunnen worden gebruikt om de SQL Edge-container te configureren. Deze omgevingsvariabelen zijn een subset van de variabelen die beschikbaar zijn voor SQL Server in Linux. Zie Omgevingsvariabelen voor meer informatie over SQL Server in Linux-omgevingsvariabelen.
De volgende nieuwe omgevingsvariabelen zijn toegevoegd aan Azure SQL Edge.
Omgevingsvariabele | Beschrijving | Waarden |
---|---|---|
PlanId | Hiermee geeft u de Azure SQL Edge-SKU op die moet worden gebruikt tijdens de initialisatie. Deze omgevingsvariabele is alleen vereist bij het implementeren van Azure SQL Edge met behulp van Azure IoT Edge. | asde-developer-on-iot-edge of asde-premium-on-iot-edge |
MSSQL_TELEMETRY_ENABLED | Het verzamelen van gebruiks- en diagnostische gegevens in- of uitschakelen. | TRUE of FALSE |
MSSQL_TELEMETRY_DIR | Hiermee stelt u de doelmap in voor de auditbestanden voor het verzamelen van gebruiks- en diagnostische gegevens. | Maplocatie in SQL Edge-container. Deze map kan worden toegewezen aan een hostvolume met behulp van koppelpunten of gegevensvolumes. |
MSSQL_PACKAGE | Hiermee geeft u de locatie van het dacpac- of bacpac-pakket dat moet worden geïmplementeerd. | Map, bestand of SAS-URL met de dacpac- of bacpac-pakketten. Zie SQL Database DACPAC- en BACPAC-pakketten implementeren in SQL Edge voor meer informatie. |
De volgende omgevingsvariabele van SQL Server in Linux wordt niet ondersteund voor Azure SQL Edge. Indien gedefinieerd, wordt deze omgevingsvariabele genegeerd tijdens de initialisatie van de container.
Omgevingsvariabele | Beschrijving |
---|---|
MSSQL_ENABLE_HADR | Schakel beschikbaarheidsgroep in. Is bijvoorbeeld 1 ingeschakeld en 0 is uitgeschakeld. |
Belangrijk
De MSSQL_PID omgevingsvariabele voor SQL Edge accepteert alleen Premium en Developer als geldige waarden. Azure SQL Edge biedt geen ondersteuning voor initialisatie met behulp van een productcode.
De omgevingsvariabelen opgeven
Geef omgevingsvariabelen op voor SQL Edge wanneer u de service implementeert via Azure Portal. U kunt ze toevoegen in de sectie Omgevingsvariabelen van de module-implementatie of als onderdeel van de opties voor het maken van containers.
Voeg waarden toe in omgevingsvariabelen.
Voeg waarden toe in Opties voor het maken van containers.
Notitie
In de niet-verbonden implementatiemodus kunnen omgevingsvariabelen worden opgegeven met behulp van of -e
--env
de --env-file
optie van de docker run
opdracht.
Configureren met behulp van een mssql.conf
bestand
Azure SQL Edge bevat niet het configuratiehulpprogramma mssql-conf, zoals SQL Server in Linux. U moet het bestand mssql.conf handmatig configureren en dit in het permanente opslagstation plaatsen dat is toegewezen aan de map /var/opt/mssql/ in de SQL Edge-module. Wanneer u SQL Edge implementeert via Azure IoT Hub, wordt deze toewijzing opgegeven als de optie Koppelen in de opties voor het maken van containers.
{
"Mounts": [
{
"Type": "volume",
"Source": "sqlvolume",
"Target": "/var/opt/mssql"
}
]
}
De volgende nieuwe mssql.conf-opties zijn toegevoegd voor Azure SQL Edge.
Optie | Omschrijving |
---|---|
customerfeedback | Kies of SQL Server feedback naar Microsoft verzendt. Zie Het verzamelen van gebruiks- en diagnostische gegevens uitschakelen voor meer informatie |
userrequestedlocalauditdirectory | Hiermee stelt u de doelmap in voor de auditbestanden voor het verzamelen van gebruiks- en diagnostische gegevens. Zie Lokale controle van het verzamelen van gebruiks- en diagnostische gegevens voor meer informatie |
De volgende mssql.conf-opties zijn niet van toepassing op SQL Edge:
Optie | Omschrijving |
---|---|
Feedback | Kies of SQL Server feedback naar Microsoft verzendt. |
Database-e-mailprofiel | Stel het standaarddatabase-e-mailprofiel in voor SQL Server in Linux. |
Hoge beschikbaarheid | Beschikbaarheidsgroepen inschakelen. |
Microsoft Distributed Transaction Coordinator | MSDTC configureren en problemen oplossen in Linux. Aanvullende configuratieopties voor gedistribueerde transacties worden niet ondersteund voor SQL Edge. Zie MSDTC configureren voor meer informatie over deze aanvullende configuratieopties. |
ML Services-EULA's | Accepteer R- en Python-EULA's voor Azure Machine Learning-pakketten. Alleen van toepassing op SQL Server 2019. |
uitgaandenetworkaccess | Schakel uitgaande netwerktoegang in voor Machine Learning Services R-, Python- en Java-extensies. |
Het volgende voorbeeldbestand mssql.conf werkt voor SQL Edge. Zie de indeling mssql.conf voor meer informatie over de indeling voor een mssql.conf
bestand.
[EULA]
accepteula = Y
[coredump]
captureminiandfull = true
coredumptype = full
[filelocation]
defaultbackupdir = /var/opt/mssql/backup/
defaultdatadir = /var/opt/mssql/data/
defaultdumpdir = /var/opt/mssql/data/
defaultlogdir = /var/opt/mssql/log/
[language]
lcid = 1033
[memory]
memorylimitmb = 6144
[sqlagent]
errorlogfile = /var/opt/mssql/log/sqlagentlog.log
errorlogginglevel = 7
[traceflag]
traceflag0 = 3604
traceflag1 = 3605
traceflag2 = 1204
Azure SQL Edge uitvoeren als niet-hoofdgebruiker
Standaard worden de Azure SQL Edge-containers uitgevoerd met een niet-hoofdgebruiker/-groep. Wanneer deze wordt geïmplementeerd via de Azure IoT Hub (of met behulp van docker run
), tenzij er een andere gebruiker/groep is opgegeven, worden SQL Edge-containers gestart als de mssql-gebruiker (niet-hoofdgebruiker). Als u tijdens de implementatie een andere niet-hoofdgebruiker wilt opgeven, voegt u het *"User": "<name|uid>[:<group|gid>]"*
sleutel-waardepaar toe onder opties voor het maken van containers. In het volgende voorbeeld is SQL Edge geconfigureerd om te starten als de gebruiker *IoTAdmin*
.
{
..
..
..
"User": "IoTAdmin",
"Env": [
"MSSQL_AGENT_ENABLED=TRUE",
"ClientTransportType=AMQP_TCP_Only",
"MSSQL_PID=Premium"
]
}
Als u de niet-hoofdgebruiker toegang wilt geven tot DB-bestanden die zich op gekoppelde volumes bevinden, moet u ervoor zorgen dat de gebruiker/groep waaronder u de container uitvoert, lees- en schrijfmachtigingen heeft voor de permanente bestandsopslag. In het volgende voorbeeld stellen we de niet-hoofdgebruiker in met user_id
10001
als eigenaar van de bestanden.
chown -R 10001:0 <database file dir>
Upgrade van eerdere CTP-releases
Eerdere CTP's van Azure SQL Edge zijn geconfigureerd om te worden uitgevoerd als de hoofdgebruikers. De volgende opties zijn beschikbaar bij het upgraden van eerdere CTP's.
Blijf de hoofdgebruiker gebruiken: als u de hoofdgebruiker wilt blijven gebruiken, voegt u het
*"User": "0:0"*
sleutel-waardepaar toe onder opties voor het maken van containers.Gebruik de standaard mssql-gebruiker : als u de standaard mssql-gebruiker wilt gebruiken, voert u de volgende stappen uit:
Voeg een gebruiker toe met de naam
mssql
op de Docker-host. In het onderstaande voorbeeld voegen we een gebruiker mssql toe met id 10001. Deze gebruiker wordt ook toegevoegd aan de hoofdgroep.sudo useradd -M -s /bin/bash -u 10001 -g 0 mssql
Wijzig de machtiging voor het map-/koppelvolume waarin het databasebestand zich bevindt
sudo chgrp -R 0 /var/lib/docker/volumes/kafka_sqldata/ sudo chmod -R g=u /var/lib/docker/volumes/kafka_sqldata/
Een ander niet-hoofdgebruikersaccount gebruiken : als u een ander niet-hoofdgebruikersaccount wilt gebruiken
- Werk de opties voor het maken van containers bij om sleutel-waardepaar op
*"User": "user_name | user_id*
te geven onder opties voor het maken van containers. Vervang user_name of user_id door een werkelijke user_name of user_id van uw Docker-host. - Wijzig de machtigingen voor het map-/koppelvolume.
- Werk de opties voor het maken van containers bij om sleutel-waardepaar op
Uw gegevens behouden
Uw Azure SQL Edge-configuratiewijzigingen en databasebestanden blijven behouden in de container, zelfs als u de container opnieuw opstart met docker stop
en docker start
. Als u de container echter docker rm
verwijdert, wordt alles in de container verwijderd, inclusief Azure SQL Edge en uw databases. In de volgende sectie wordt uitgelegd hoe u gegevensvolumes gebruikt om uw databasebestanden te behouden, zelfs als de bijbehorende containers worden verwijderd.
Belangrijk
Voor Azure SQL Edge is het essentieel dat u inzicht krijgt in gegevenspersistentie in Docker. Naast de discussie in deze sectie raadpleegt u de documentatie van Docker over het beheren van gegevens in Docker-containers.
Een hostmap koppelen als gegevensvolume
De eerste optie is het koppelen van een map op uw host als een gegevensvolume in uw container. Gebruik hiervoor de docker run
opdracht met de -v <host directory>:/var/opt/mssql
vlag. Hierdoor kunnen de gegevens worden hersteld tussen containeruitvoeringen.
docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' -p 1433:1433 -v <host directory>/data:/var/opt/mssql/data -v <host directory>/log:/var/opt/mssql/log -v <host directory>/secrets:/var/opt/mssql/secrets -d mcr.microsoft.com/azure-sql-edge
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -p 1433:1433 -v <host directory>/data:/var/opt/mssql/data -v <host directory>/log:/var/opt/mssql/log -v <host directory>/secrets:/var/opt/mssql/secrets -d mcr.microsoft.com/azure-sql-edge
Met deze techniek kunt u ook de bestanden op de host buiten Docker delen en weergeven.
Belangrijk
Hostvolumetoewijzing voor Docker in Windows biedt momenteel geen ondersteuning voor het toewijzen van de volledige /var/opt/mssql
map. U kunt echter een submap toewijzen, bijvoorbeeld /var/opt/mssql/data
aan uw hostcomputer.
Belangrijk
Hostvolumetoewijzing voor Docker in macOS met de Azure SQL Edge-installatiekopie wordt momenteel niet ondersteund. Gebruik in plaats daarvan gegevensvolumecontainers. Deze beperking is specifiek voor de /var/opt/mssql
map. Lezen vanuit een gekoppelde map werkt prima. U kunt bijvoorbeeld een hostmap koppelen met behulp van -v
macOS en een back-up herstellen vanuit een .bak
bestand dat zich op de host bevindt.
Gegevensvolumecontainers gebruiken
De tweede optie is het gebruik van een gegevensvolumecontainer. U kunt een gegevensvolumecontainer maken door een volumenaam op te geven in plaats van een hostmap met de -v
parameter. In het volgende voorbeeld wordt een gedeeld gegevensvolume gemaakt met de naam sqlvolume.
docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' -p 1433:1433 -v sqlvolume:/var/opt/mssql -d mcr.microsoft.com/azure-sql-edge
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -p 1433:1433 -v sqlvolume:/var/opt/mssql -d mcr.microsoft.com/azure-sql-edge
Notitie
Deze techniek voor het impliciet maken van een gegevensvolume in de run-opdracht werkt niet met oudere versies van Docker. In dat geval gebruikt u de expliciete stappen die worden beschreven in de Docker-documentatie, het maken en koppelen van een gegevensvolumecontainer.
Zelfs als u deze container stopt en verwijdert, blijft het gegevensvolume behouden. U kunt deze weergeven met de docker volume ls
opdracht.
docker volume ls
Als u vervolgens een andere container met dezelfde volumenaam maakt, gebruikt de nieuwe container dezelfde Azure SQL Edge-gegevens in het volume.
Gebruik de docker volume rm
opdracht om een gegevensvolumecontainer te verwijderen.
Waarschuwing
Als u de gegevensvolumecontainer verwijdert, worden alle Azure SQL Edge-gegevens in de container definitief verwijderd.