Konfigurera Azure SQL Edge
Viktigt!
Azure SQL Edge dras tillbaka den 30 september 2025. Mer information och migreringsalternativ finns i meddelandet Om pensionering.
Kommentar
Azure SQL Edge stöder inte längre ARM64-plattformen.
Azure SQL Edge stöder konfiguration via något av följande två alternativ:
- Miljövariabler
- En mssql.conf-fil placerad i mappen /var/opt/mssql
Kommentar
Om du anger miljövariabler åsidosätts de inställningar som anges i mssql.conf
filen.
Konfigurera med hjälp av miljövariabler
Azure SQL Edge exponerar flera olika miljövariabler som kan användas för att konfigurera SQL Edge-containern. Dessa miljövariabler är en delmängd av de som är tillgängliga för SQL Server på Linux. Mer information om SQL Server på Linux miljövariabler finns i Miljövariabler.
Följande nya miljövariabler har lagts till i Azure SQL Edge.
Miljövariabel | Beskrivning | Värden |
---|---|---|
PlanId | Anger den Azure SQL Edge-SKU som ska användas under initieringen. Den här miljövariabeln krävs bara när du distribuerar Azure SQL Edge med Hjälp av Azure IoT Edge. | asde-developer-on-iot-edge eller asde-premium-on-iot-edge |
MSSQL_TELEMETRY_ENABLED | Aktivera eller inaktivera insamling av användnings- och diagnostikdata. | TRUE eller FALSE |
MSSQL_TELEMETRY_DIR | Anger målkatalogen för granskningsfilerna för användnings- och diagnostikdatainsamling. | Mappplats i SQL Edge-containern. Den här mappen kan mappas till en värdvolym med antingen monteringspunkter eller datavolymer. |
MSSQL_PACKAGE | Anger platsen för det dacpac- eller bacpac-paket som ska distribueras. | Mapp, fil eller SAS-URL som innehåller dacpac- eller bacpac-paketen. Mer information finns i Distribuera SQL Database DACPAC- och BACPAC-paket i SQL Edge. |
Följande SQL Server på Linux miljövariabel stöds inte för Azure SQL Edge. Om den här miljövariabeln definieras ignoreras den under containerinitiering.
Miljövariabel | beskrivning |
---|---|
MSSQL_ENABLE_HADR | Aktivera tillgänglighetsgrupp. Till exempel 1 är aktiverad och 0 inaktiverad. |
Viktigt!
Miljövariabeln MSSQL_PID för SQL Edge accepterar endast Premium och Developer som giltiga värden. Azure SQL Edge stöder inte initiering med hjälp av en produktnyckel.
Ange miljövariablerna
Ange miljövariabler för SQL Edge när du distribuerar tjänsten via Azure Portal. Du kan lägga till dem i avsnittet Miljövariabler i moduldistributionen eller som en del av alternativen för att skapa containrar.
Lägg till värden i miljövariabler.
Lägg till värden i Alternativ för att skapa container.
Kommentar
I frånkopplat distributionsläge kan miljövariabler anges med hjälp -e
--env
av eller eller --env-file
alternativet för docker run
kommandot.
Konfigurera med hjälp av en mssql.conf
fil
Azure SQL Edge innehåller inte konfigurationsverktyget mssql-conf som SQL Server på Linux gör. Du måste konfigurera filen mssql.conf manuellt och placera den på den beständiga lagringsenhet som är mappad till mappen /var/opt/mssql/ i SQL Edge-modulen. När du distribuerar SQL Edge via Azure IoT Hub anges den här mappningen som alternativet Monteringar i alternativen för att skapa containrar.
{
"Mounts": [
{
"Type": "volume",
"Source": "sqlvolume",
"Target": "/var/opt/mssql"
}
]
}
Följande nya mssql.conf-alternativ har lagts till för Azure SQL Edge.
Alternativ | Description |
---|---|
customerfeedback | Välj om SQL Server ska skicka feedback till Microsoft. Mer information finns i Inaktivera insamling av användnings- och diagnostikdata |
userrequestedlocalauditdirectory | Anger målkatalogen för granskningsfilerna för användnings- och diagnostikdatainsamling. Mer information finns i Lokal granskning av användning och insamling av diagnostikdata |
Följande mssql.conf-alternativ gäller inte för SQL Edge:
Alternativ | Description |
---|---|
Kundfeedback | Välj om SQL Server ska skicka feedback till Microsoft. |
E-postprofil för databas | Ange standarddatabasens e-postprofil för SQL Server på Linux. |
Hög tillgänglighet | Aktivera tillgänglighetsgrupper. |
Microsoft Distributed Transaction Coordinator | Konfigurera och felsöka MSDTC i Linux. Ytterligare distribuerade transaktionsrelaterade konfigurationsalternativ stöds inte för SQL Edge. Mer information om dessa ytterligare konfigurationsalternativ finns i Konfigurera MSDTC. |
ML Services EULAs | Acceptera R- och Python EULA:er för Azure Machine Learning-paket. Gäller endast för SQL Server 2019. |
outboundnetworkaccess | Aktivera utgående nätverksåtkomst för Machine Learning Services R-, Python- och Java-tillägg. |
Följande mssql.conf-exempelfil fungerar för SQL Edge. Mer information om formatet för en mssql.conf
fil finns i mssql.conf-format.
[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
Kör Azure SQL Edge som icke-rotanvändare
Som standard körs Azure SQL Edge-containrarna med en icke-rotanvändare/grupp. När den distribueras via Azure IoT Hub (eller använder docker run
), såvida inte en annan användare/grupp anges, startas SQL Edge-containrar som mssql-användare (icke-rot). Om du vill ange en annan icke-rotanvändare under distributionen *"User": "<name|uid>[:<group|gid>]"*
lägger du till nyckel/värde-paret under alternativ för att skapa containrar. I följande exempel är SQL Edge konfigurerat att starta som användaren *IoTAdmin*
.
{
..
..
..
"User": "IoTAdmin",
"Env": [
"MSSQL_AGENT_ENABLED=TRUE",
"ClientTransportType=AMQP_TCP_Only",
"MSSQL_PID=Premium"
]
}
Om du vill tillåta att icke-rotanvändaren får åtkomst till DB-filer som finns på monterade volymer kontrollerar du att användaren/gruppen som du kör containern under har läs- och skrivbehörigheter för den beständiga fillagringen. I följande exempel anger vi icke-rotanvändaren med user_id
10001
som ägare till filerna.
chown -R 10001:0 <database file dir>
Uppgradera från tidigare CTP-versioner
Tidigare CTP:er för Azure SQL Edge har konfigurerats att köras som rotanvändare. Följande alternativ är tillgängliga när du uppgraderar från tidigare CTP:er.
Fortsätt att använda rotanvändaren – Om du vill fortsätta använda rotanvändaren lägger du till
*"User": "0:0"*
nyckel/värde-paret under alternativ för att skapa containrar.Använd standardanvändaren mssql – Följ dessa steg om du vill använda mssql-standardanvändaren:
Lägg till en användare med namnet
mssql
på Docker-värden. I exemplet nedan lägger vi till en användare mssql med ID 10001. Den här användaren läggs också till i rotgruppen.sudo useradd -M -s /bin/bash -u 10001 -g 0 mssql
Ändra behörigheten på den katalog/monteringsvolym där databasfilen finns
sudo chgrp -R 0 /var/lib/docker/volumes/kafka_sqldata/ sudo chmod -R g=u /var/lib/docker/volumes/kafka_sqldata/
Använda ett annat icke-rotanvändarkonto – Så här använder du ett annat användarkonto som inte är rotkonto
- Uppdatera alternativen för att skapa containern för att ange lägg till
*"User": "user_name | user_id*
nyckel/värde-par under alternativ för att skapa containrar. Ersätt user_name eller user_id med en faktisk user_name eller user_id från Docker-värden. - Ändra behörigheterna för katalogen/monteringsvolymen.
- Uppdatera alternativen för att skapa containern för att ange lägg till
Spara dina data
Dina Azure SQL Edge-konfigurationsändringar och databasfiler sparas i containern även om du startar om containern med docker stop
och docker start
. Men om du tar bort containern med docker rm
tas allt i containern bort, inklusive Azure SQL Edge och dina databaser. I följande avsnitt beskrivs hur du använder datavolymer för att spara dina databasfiler även om de associerade containrarna tas bort.
Viktigt!
För Azure SQL Edge är det viktigt att du förstår datapersistens i Docker. Förutom diskussionen i det här avsnittet kan du läsa Dockers dokumentation om hur du hanterar data i Docker-containrar.
Montera en värdkatalog som datavolym
Det första alternativet är att montera en katalog på värden som en datavolym i containern. Det gör du genom att använda docker run
kommandot med -v <host directory>:/var/opt/mssql
flaggan . Detta gör att data kan återställas mellan containerkörningar.
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
Med den här tekniken kan du också dela och visa filerna på värden utanför Docker.
Viktigt!
Värdvolymmappning för Docker i Windows stöder för närvarande inte mappning av hela /var/opt/mssql
katalogen. Du kan dock mappa en underkatalog, till exempel /var/opt/mssql/data
till värddatorn.
Viktigt!
Värdvolymmappning för Docker på macOS med Azure SQL Edge-avbildningen stöds inte just nu. Använd datavolymcontainrar i stället. Den här begränsningen /var/opt/mssql
är specifik för katalogen. Läsning från en monterad katalog fungerar bra. Du kan till exempel montera en värdkatalog med hjälp av -v
macOS och återställa en säkerhetskopia från en .bak
fil som finns på värden.
Använda datavolymcontainrar
Det andra alternativet är att använda en datavolymcontainer. Du kan skapa en datavolymcontainer genom att ange ett volymnamn i stället för en värdkatalog med parametern -v
. I följande exempel skapas en delad datavolym med namnet sqlvolume.
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
Kommentar
Den här tekniken för att implicit skapa en datavolym i körningskommandot fungerar inte med äldre versioner av Docker. I så fall använder du de explicita steg som beskrivs i Docker-dokumentationen, Skapa och montera en datavolymcontainer.
Även om du stoppar och tar bort den här containern bevaras datavolymen. Du kan visa den med docker volume ls
kommandot .
docker volume ls
Om du sedan skapar en annan container med samma volymnamn använder den nya containern samma Azure SQL Edge-data som finns i volymen.
Om du vill ta bort en datavolymcontainer använder du docker volume rm
kommandot .
Varning
Om du tar bort datavolymcontainern tas alla Azure SQL Edge-data i containern bort permanent .