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.

Ange med hjälp av listan över miljövariabler

Lägg till värden i Alternativ för att skapa container.

Ange med hjälp av alternativ för att skapa containrar

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/
      
  • 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.

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.

Nästa steg