Azure SQL Edge configureren
Azure SQL Edge ondersteunt configuratie via een van de volgende twee opties:
- Omgevingsvariabelen
- Een mssql.conf-bestand in de map /var/opt/mssql
Notitie
Het instellen van omgevingsvariabelen overschrijven de instellingen die zijn opgegeven in het bestand mssql.conf.
Configureren met behulp van omgevingsvariabelen
Azure SQL Edge biedt verschillende omgevingsvariabelen die kunnen worden gebruikt voor het configureren van de SQL Edge-container. Deze omgevingsvariabelen zijn een subset van de variabelen die beschikbaar zijn voor SQL Server on Linux. Zie Omgevingsvariabelen SQL Server on Linux meer informatie over het maken van omgevingsvariabelen.
De volgende nieuwe omgevingsvariabelen zijn toegevoegd aan Azure SQL Edge.
| Omgevingsvariabele | Description | 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 voor de auditbestanden voor het verzamelen van gebruiks- en diagnostische gegevens in. | Maplocatie in SQL Edge-container. Deze map kan aan een hostvolume worden toegevoegd met behulp van bevestigingspunten of gegevensvolumes. |
| MSSQL_PACKAGE | Hiermee geeft u de locatie op van het dacpac- of bacpac-pakket dat moet worden geïmplementeerd. | Map, bestand of SAS-URL met de dacpac- of bacpac-pakketten. Zie Deploy SQL Database DACPAC and BACPAC packages in SQL Edge voor meer informatie. |
De volgende SQL Server on Linux wordt niet ondersteund voor Azure SQL Edge. Indien gedefinieerd, wordt deze omgevingsvariabele genegeerd tijdens de initialisatie van de container.
| Omgevingsvariabele | Description |
|---|---|
| MSSQL_ENABLE_HADR | Schakel beschikbaarheidsgroep in. 1 is bijvoorbeeld 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 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 containeropties maken.
Voeg waarden toe in Omgevingsvariabelen.

Voeg waarden toe in Opties voor container maken.

Notitie
In de niet-verbonden implementatiemodus kunnen omgevingsvariabelen worden opgegeven met behulp van de -e of of de optie van de opdracht --env --env-file docker run .
Configureren met behulp van een mssql.conf bestand
Azure SQL Edge bevat niet het configuratieprogramma mssql-conf, zoals SQL Server on Linux doet. U moet het bestand mssql.conf handmatig configureren en in het permanente opslagstation plaatsen dat is toewijst aan de map /var/opt/mssql/ in de SQL Edge-module. Wanneer u een edge-SQL implementeert vanuit Azure Marketplace, wordt deze toewijzing opgegeven als de optie Koppelen in 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 | Beschrijving |
|---|---|
| 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 voor de auditbestanden voor het verzamelen van gebruiks- en diagnostische gegevens in. Zie Lokale controle van gebruiks- en diagnostische gegevensverzameling voor meer informatie |
De volgende mssql.conf-opties zijn niet van toepassing op SQL Edge:
| Optie | Beschrijving |
|---|---|
| Klantenfeedback | Kies of SQL Server feedback naar Microsoft verzendt. |
| Database-e-mailprofiel | Stel het standaarddatabase-e-mailprofiel in voor SQL Server on Linux. |
| Hoge beschikbaarheid | Schakel beschikbaarheidsgroepen in. |
| 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 EULAs | Accepteer R- en Python-EULAs voor Azure Machine Learning pakketten. Is alleen SQL Server 2019 van toepassing. |
| outboundnetworkaccess | Schakel uitgaande netwerktoegang in voor Machine Learning Services R-, Python- en Java-extensies. |
Het volgende voorbeeldbestand mssql.conf werkt voor SQL Edge. Zie mssql.conf mssql.confformat voor meer informatie over de indeling van een 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 geïmplementeerd via de Azure Marketplace (of met behulp van docker run), tenzij een andere gebruiker/groep is opgegeven, worden SQL Edge-containers gestart als de mssql-gebruiker (niet-root). Als u een andere niet-hoofdgebruiker wilt opgeven tijdens de implementatie, voegt u het *"User": "<name|uid>[:<group|gid>]"* sleutel-waardepaar toe onder opties voor het maken van containers. In het onderstaande voorbeeld SQL Edge geconfigureerd om te worden gebruikt als de gebruiker *IoTAdmin* .
{
..
..
..
"User": "IoTAdmin",
"Env": [
"MSSQL_AGENT_ENABLED=TRUE",
"ClientTransportType=AMQP_TCP_Only",
"MSSQL_PID=Premium"
]
}
Als u wilt toestaan dat de niet-hoofdgebruiker toegang heeft tot DB-bestanden die zich op de aaneenstelde volumes, moet u ervoor zorgen dat de gebruiker/groep onder u de container hebt gelezen & schrijfmachtigingen voor de permanente bestandsopslag. In het onderstaande voorbeeld stellen we de niet-hoofdgebruiker in met user_id 10001 als de eigenaar van de bestanden.
chown -R 10001:0 <database file dir>
Upgraden van eerdere CTP-releases
Eerdere CSP's van Azure SQL Edge zijn geconfigureerd om te worden uitgevoerd als de hoofdgebruikers. De volgende opties zijn beschikbaar bij het upgraden van eerdere CSP's.
- De hoofdgebruiker blijven gebruiken: als u de hoofdgebruiker wilt blijven gebruiken, voegt u het
*"User": "0:0"*sleutel-waardepaar toe onder opties voor het maken van containers. - De standaard mssql-gebruiker gebruiken: als u de standaard mssql-gebruiker wilt gebruiken, volgt u de onderstaande stappen
- Voeg een gebruiker met de naam mssql toe aan 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 de map/het volume waarop 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/
- Voeg een gebruiker met de naam mssql toe aan de docker-host. In het onderstaande voorbeeld voegen we een gebruiker mssql toe met id 10001. Deze gebruiker wordt ook toegevoegd aan de hoofdgroep.
- Een ander niet-hoofdgebruikersaccount gebruiken: als u een ander niet-hoofdgebruikersaccount wilt gebruiken
- Werk de opties voor het maken van containers bij om het
*"User": "user_name | user_id*sleutel-waardepaar toevoegen onder opties voor het maken van containers op te geven. Vervang user_name of user_id door een werkelijke user_name of user_id van uw Docker-host. - Wijzig de machtigingen op de map/het volume van de mount.
- Werk de opties voor het maken van containers bij om het
Uw gegevens persistent maken
Uw Azure SQL Edge-configuratiewijzigingen en databasebestanden worden persistent gemaakt in de container, zelfs als u de container opnieuw start met docker stop en docker start . Als u de container echter verwijdert met , wordt alles in de container verwijderd, inclusief docker rm Azure SQL Edge en uw databases. In de volgende sectie wordt uitgelegd hoe u gegevensvolumes gebruikt om uw databasebestanden persistent te maken, zelfs als de bijbehorende containers worden verwijderd.
Belangrijk
Voor Azure SQL Edge is het essentieel dat u inzicht hebt in de persistentie van gegevens in Docker. Naast de bespreking in deze sectie, zie de documentatie van Docker over het beheren van gegevens in Docker-containers.
Een hostmap als gegevensvolume toevoegen
De eerste optie is het aan uw host toevoegen van een map als een gegevensvolume in uw container. Gebruik de opdracht met de vlag om dit docker run te -v <host directory>:/var/opt/mssql doen. Hierdoor kunnen de gegevens worden hersteld tussen containeruitvoeringen.
docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<YourStrong!Passw0rd>' -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=<YourStrong!Passw0rd>" -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 op Windows biedt momenteel geen ondersteuning voor het toewijzen van de volledige /var/opt/mssql map. U kunt echter een submap, zoals , aan /var/opt/mssql/data uw hostmachine toe te wijsen.
Belangrijk
Hostvolumetoewijzing voor Docker op Mac met de Azure SQL Edge-afbeelding wordt momenteel niet ondersteund. Gebruik in plaats daarvan containers voor gegevensvolumes. Deze beperking is specifiek voor de /var/opt/mssql directory. Het lezen vanuit een aan elkaar geplaatste map werkt prima. U kunt bijvoorbeeld een hostmap met -v op de Mac aan een host toevoegen en een back-up terugzetten 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 met de naam sqlvolume gemaakt.
docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<YourStrong!Passw0rd>' -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=<YourStrong!Passw0rd>" -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 Een gegevensvolumecontainermaken en monteren.
Zelfs als u deze container stopt en verwijdert, blijft het gegevensvolume bestaan. 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.
Als u een gegevensvolumecontainer wilt verwijderen, gebruikt u de docker volume rm opdracht .
Waarschuwing
Als u de gegevensvolumecontainer verwijdert, worden alle Azure SQL Edge-gegevens in de container permanent verwijderd.