Konfigurera Azure SQL Edge
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
Anteckning
Om du anger miljövariabler åsidosätts inställningarna som anges i filen mssql.conf.
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 | Description | Värden |
|---|---|---|
| PlanId | Anger vilken Azure SQL Edge-SKU som ska användas under initieringen. Den här miljövariabeln krävs endast när du distribuerar Azure SQL Edge med 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 insamling av användnings- och diagnostikdata. | Mappplats i SQL Edge-container. Den här mappen kan mappas till en värdvolym med antingen monteringspunkter eller datavolymer. |
| MSSQL_PACKAGE | Anger platsen för dacpac- eller bacpac-paketet 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 miljövariabel SQL Server på Linux stöds inte för Azure SQL Edge. Om den här miljövariabeln definieras ignoreras den när containern initieras.
| Miljövariabel | Description |
|---|---|
| MSSQL_ENABLE_HADR | Aktivera tillgänglighetsgrupp. Till exempel är 1 aktiverat och 0 är inaktiverat. |
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 antingen i avsnittet Miljövariabler i moduldistributionen eller som en del av alternativ 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.

Anteckning
I det frånkopplade distributionsläget kan miljövariabler anges -e med hjälp av eller eller alternativet för kommandot --env --env-file docker run .
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 lagringsenheten som mappas till mappen /var/opt/mssql/ i SQL Edge-modulen. När du distribuerar SQL Edge från Azure Marketplace anges den här mappningen som alternativet Monterar i Alternativ 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 | Beskrivning |
|---|---|
| customerfeedback | Välj om SQL Server skickar feedback till Microsoft. Mer information finns i Inaktivera insamling av användnings- och diagnostikdata |
| userrequestedlocalauditdirectory | Anger målkatalogen för granskningsfilerna för insamling av användnings- och diagnostikdata. Mer information finns i Lokal granskning av användnings- och diagnostikdatainsamling |
Följande mssql.conf-alternativ gäller inte för SQL Edge:
| Alternativ | Beskrivning |
|---|---|
| Kundfeedback | Välj om SQL Server skickar feedback till Microsoft. |
| E-postprofil för databas | Ange databasens standardprofil för e-post för SQL Server på Linux. |
| Hög tillgänglighet | Aktivera tillgänglighetsgrupper. |
| Microsoft Distributed Transaction Coordinator | Konfigurera och felsöka MSDTC på Linux. Ytterligare distribuerade transaktionsrelaterade konfigurationsalternativ stöds inte för SQL Edge. Mer information om dessa ytterligare konfigurationsalternativ finns i Konfigurera MSDTC. |
| ML Services | Acceptera R- och Python-EULA:er för Azure Machine Learning paket. Gäller endast 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 fil mssql.conf 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-containrar med en icke-rotanvändare/grupp. När den distribueras via Azure Marketplace (eller med docker run), såvida inte en annan användare/grupp har angetts, startar SQL Edge-containrar som mssql-användaren (icke-rotanvändaren). Om du vill ange en annan icke-rotanvändare under distributionen lägger du till *"User": "<name|uid>[:<group|gid>]"* nyckel/värde-paret under alternativ för att skapa containrar. I exemplet nedan SQL Edge konfigureras för att starta som användaren *IoTAdmin* .
{
..
..
..
"User": "IoTAdmin",
"Env": [
"MSSQL_AGENT_ENABLED=TRUE",
"ClientTransportType=AMQP_TCP_Only",
"MSSQL_PID=Premium"
]
}
Om du vill ge icke-rotanvändaren åtkomst till DB-filer som finns på monterade volymer, se till att den användare/grupp som du kör containern under har läsbehörighet & skrivbehörighet på den beständiga fillagringen. I exemplet nedan 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 CP:er för Azure SQL Edge konfigurerades för att köras som rotanvändare. Följande alternativ är tillgängliga när du uppgraderar från tidigare CPP:er.
- Fortsätt att använda rotanvändaren – Om du vill fortsätta att använda rotanvändaren lägger du till
*"User": "0:0"*nyckel/värde-paret under alternativ för att skapa containrar. - Använd mssql-standardanvändaren – Följ stegen nedan 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å katalogen/monteringsvolymen 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/
- 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.
- Använda ett annat icke-rotanvändarkonto – Om du vill använda ett annat användarkonto än rotanvändarkontot
- Uppdatera alternativen för att skapa containern för att ange
*"User": "user_name | user_id*lägg till 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 på katalogen/monteringsvolymen.
- Uppdatera alternativen för att skapa containern för att ange
Spara dina data
Dina Azure SQL Edge-konfigurationsändringar och databasfiler bevaras i containern även om du startar om containern med docker stop och docker start . Men om du tar bort containern med tas allt i docker rm containern bort, inklusive Azure SQL Edge och dina databaser. I följande avsnitt beskrivs hur du använder datavolymer för att bevara databasfilerna även om de associerade containrarna tas bort.
Viktigt
För Azure SQL Edge är det viktigt att du förstår datapersistence 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 med docker run hjälp av kommandot med flaggan -v <host directory>:/var/opt/mssql . 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 på 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å Mac med Azure SQL Edge-avbildningen stöds inte för närvarande. Använd datavolymcontainrar i stället. Den här begränsningen är specifik för /var/opt/mssql katalogen. Läsning från en monterad katalog fungerar bra. Du kan till exempel montera en värdkatalog med -v på Mac 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 -v parametern . 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
Anteckning
Den här tekniken för implicit skapande av en datavolym i körningskommandot fungerar inte med äldre versioner av Docker. I så fall använder du de explicita stegen som beskrivs i Docker-dokumentationen, Skapa och montera en datavolymcontainer.
Även om du stoppar och tar bort den här containern finns datavolymen kvar. 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.