Konfigurace Azure SQL Edge

Důležité

Azure SQL Edge už nepodporuje platformu ARM64.

Azure SQL Edge podporuje konfiguraci prostřednictvím jedné z následujících dvou možností:

  • Proměnné prostředí
  • Soubor mssql.conf umístěný ve složce /var/opt/mssql

Poznámka:

Nastavení proměnných prostředí přepíše nastavení zadaná v souboru mssql.conf.

Konfigurace pomocí proměnných prostředí

Azure SQL Edge zveřejňuje několik různých proměnných prostředí, které je možné použít ke konfiguraci kontejneru SQL Edge. Tyto proměnné prostředí jsou podmnožinou těch, které jsou k dispozici pro SQL Server v Linuxu. Další informace o SQL Serveru v linuxových proměnných prostředí najdete v tématu Proměnné prostředí.

Do Azure SQL Edge byly přidány následující nové proměnné prostředí.

Proměnná prostředí Popis Hodnoty
PlanId Určuje skladovou položku Azure SQL Edge, která se má použít během inicializace. Tato proměnná prostředí se vyžaduje jenom při nasazování Azure SQL Edge pomocí Azure IoT Edge. asde-developer-on-iot-edge nebo asde-premium-on-iot-edge
MSSQL_TELEMETRY_ENABLED Povolte nebo zakažte shromažďování dat o využití a diagnostice. TRUE nebo FALSE
MSSQL_TELEMETRY_DIR Nastaví cílový adresář pro soubory auditu shromažďování dat o využití a diagnostice. Umístění složky v kontejneru SQL Edge Tuto složku lze mapovat na hostitelský svazek pomocí přípojných bodů nebo datových svazků.
MSSQL_PACKAGE Určuje umístění balíčku dacpac nebo bacpac, který se má nasadit. Složka, soubor nebo adresa URL SAS obsahující balíčky dacpac nebo bacpac. Další informace najdete v tématu Nasazení balíčků DACPAC a BACPAC služby SQL Database v SQL Edgi.

Azure SQL Edge nepodporuje následující proměnnou prostředí SQL Serveru v Linuxu. Pokud je definována, tato proměnná prostředí se během inicializace kontejneru ignoruje.

Proměnná prostředí Popis
MSSQL_ENABLE_HADR Povolte skupinu dostupnosti. Je například 1 povolená a 0 je zakázaná.

Důležité

Proměnná prostředí MSSQL_PID pro SQL Edge přijímá jako platné hodnoty pouze Premium a Developer . Azure SQL Edge nepodporuje inicializaci pomocí kódu Product Key.

Určení proměnných prostředí

Při nasazování služby prostřednictvím webu Azure Portal zadejte proměnné prostředí pro SQL Edge. Můžete je přidat buď v části Proměnné prostředí nasazení modulu, nebo jako součást možností vytvoření kontejneru.

Přidejte hodnoty do proměnných prostředí.

Screenshot of set by using environment variables list.

Přidejte hodnoty v možnostech vytvoření kontejneru.

Screenshot of set by using container create options.

Poznámka:

V odpojeném režimu nasazení je možné pomocí příkazu nebo --env možnosti --env-filedocker run příkazu zadat -e proměnné prostředí.

Konfigurace pomocí mssql.conf souboru

Azure SQL Edge nezahrnuje konfigurační nástroj mssql-conf, jako je SQL Server v Linuxu. Musíte ručně nakonfigurovat soubor mssql.conf a umístit ho na trvalou jednotku úložiště, která je namapovaná na složku /var/opt/mssql/ v modulu SQL Edge. Při nasazování SQL Edge z Azure Marketplace se toto mapování zadává jako možnost Připojení v možnostech vytvoření kontejneru.

{
  "Mounts": [
    {
      "Type": "volume",
      "Source": "sqlvolume",
      "Target": "/var/opt/mssql"
    }
  ]
}

Pro Azure SQL Edge byly přidány následující nové možnosti mssql.conf.

Možnost Popis
customerfeedback Zvolte, jestli SQL Server pošle Microsoftu zpětnou vazbu. Další informace najdete v tématu Zakázání používání a shromažďování diagnostických dat.
userrequestedlocalauditdirectory Nastaví cílový adresář pro soubory auditu shromažďování dat o využití a diagnostice. Další informace najdete v tématu Místní audit využití a shromažďování diagnostických dat.

Následující možnosti mssql.conf se nevztahují na SQL Edge:

Možnost Popis
Zpětná vazba zákazníků Zvolte, jestli SQL Server pošle Microsoftu zpětnou vazbu.
Profil databázové pošty Nastavte výchozí profil databázové pošty pro SQL Server v Linuxu.
Vysoká dostupnost Povolte skupiny dostupnosti.
Koordinátor distribuovaných transakcí Microsoftu Konfigurace a řešení potíží s MSDTC v Linuxu Pro SQL Edge nejsou podporované další možnosti konfigurace související s distribuovanými transakcemi. Další informace o těchto dalších možnostech konfigurace naleznete v tématu Konfigurace MSDTC.
ML Services EULA Přijměte R a Python EULA pro balíčky Azure Machine Učení. Platí jenom pro SQL Server 2019.
outboundnetworkaccess Povolte odchozí síťový přístup pro rozšíření Machine Učení Services R, Python a Java.

Následující ukázkový soubor mssql.conf funguje pro SQL Edge. Další informace o formátu mssql.conf souboru naleznete ve formátu mssql.conf.

[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

Spuštění Azure SQL Edge jako uživatele, který není root

Ve výchozím nastavení běží kontejnery Azure SQL Edge s uživatelem nebo skupinou, které nejsou rootem. Pokud není zadaný jiný uživatel nebo skupina, kontejnery SQL Edge se při nasazení prostřednictvím Azure Marketplace (nebo pomocí docker run) spustí jako uživatel mssql (non-root). Pokud chcete během nasazení zadat jiného uživatele, který není root, přidejte do možností vytvoření kontejneru *"User": "<name|uid>[:<group|gid>]"* dvojici klíč-hodnota. V následujícím příkladu je SQL Edge nakonfigurovaný tak, aby se spustil jako uživatel *IoTAdmin*.

{
    ..
    ..
    ..
    "User": "IoTAdmin",
    "Env": [
        "MSSQL_AGENT_ENABLED=TRUE",
        "ClientTransportType=AMQP_TCP_Only",
        "MSSQL_PID=Premium"
    ]
}

Pokud chcete, aby uživatel, který není rootem, získal přístup k souborům DB na připojených svazcích, ujistěte se, že uživatel nebo skupina, pod kterým kontejner spouštíte, má oprávnění ke čtení a zápisu do trvalého úložiště souborů. V následujícím příkladu jsme jako vlastníka souborů nastavili uživatele user_id10001 , který není root.

chown -R 10001:0 <database file dir>

Upgrade ze starších verzí CTP

Starší poskytovatelé CSP Azure SQL Edge byli nakonfigurováni tak, aby běželi jako kořenoví uživatelé. Při upgradu z předchozích poskytovatelů CSP jsou k dispozici následující možnosti.

  • Pokračujte v používání kořenového uživatele – Pokud chcete pokračovat v používání kořenového uživatele, přidejte do možností vytvoření kontejneru *"User": "0:0"* dvojici klíč-hodnota.

  • Použijte výchozího uživatele mssql – Pokud chcete použít výchozího uživatele mssql, postupujte takto:

    • Přidejte uživatele s názvem mssql na hostitele Dockeru. V následujícím příkladu přidáme uživatele mssql s ID 10001. Tento uživatel je také přidán do kořenové skupiny.

      sudo useradd -M -s /bin/bash -u 10001 -g 0 mssql
      
    • Změna oprávnění ke svazku adresáře nebo připojení, ve kterém se nachází soubor databáze

      sudo chgrp -R 0 /var/lib/docker/volumes/kafka_sqldata/
      sudo chmod -R g=u /var/lib/docker/volumes/kafka_sqldata/
      
  • Použití jiného uživatelského účtu, který není root – Pokud chcete použít jiný účet uživatele, který není root

    • Aktualizujte možnosti vytvoření kontejneru, abyste v části možnosti vytvoření kontejneru zadali *"User": "user_name | user_id* dvojici klíč-hodnota. Nahraďte user_name nebo user_id skutečným user_name nebo user_id z hostitele Dockeru.
    • Změňte oprávnění ke svazku adresáře nebo připojení.

Uchování dat

Změny konfigurace Azure SQL Edge a soubory databáze se v kontejneru zachovají, i když kontejner restartujete pomocí docker stop příkazu a docker start. Pokud ale kontejner docker rmodeberete , odstraní se všechno v kontejneru, včetně Azure SQL Edge a vašich databází. Následující část vysvětluje, jak pomocí datových svazků zachovat soubory databáze, i když jsou přidružené kontejnery odstraněny.

Důležité

Pro Azure SQL Edge je důležité pochopit trvalost dat v Dockeru. Kromě diskuze v této části si přečtěte dokumentaci Dockeru o správě dat v kontejnerech Dockeru.

Připojení hostitelského adresáře jako datového svazku

První možností je připojit adresář k hostiteli jako datový svazek v kontejneru. K tomu použijte docker run příkaz s příznakem -v <host directory>:/var/opt/mssql . To umožňuje obnovení dat mezi spuštěními kontejneru.

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

Tato technika také umožňuje sdílet a zobrazovat soubory na hostiteli mimo Docker.

Důležité

Mapování svazků hostitele pro Docker ve Windows v současné době nepodporuje mapování celého /var/opt/mssql adresáře. Můžete ale namapovat podadresář, například /var/opt/mssql/data na hostitelský počítač.

Důležité

Mapování svazků hostitele pro Docker v macOS s imagí Azure SQL Edge se v tuto chvíli nepodporuje. Místo toho použijte kontejnery datového svazku. Toto omezení je specifické pro /var/opt/mssql adresář. Čtení z připojeného adresáře funguje správně. Můžete například připojit hostitelský adresář pomocí -v systému macOS a obnovit zálohu ze .bak souboru, který se nachází na hostiteli.

Použití kontejnerů datového svazku

Druhou možností je použít kontejner datového svazku. Kontejner datového svazku můžete vytvořit zadáním názvu svazku místo adresáře hostitele s parametrem -v . Následující příklad vytvoří sdílený datový svazek s názvem 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

Poznámka:

Tato technika pro implicitní vytvoření datového svazku v příkazu run nefunguje se staršími verzemi Dockeru. V takovém případě použijte explicitní kroky popsané v dokumentaci k Dockeru, vytvoření a připojení kontejneru datového svazku.

I když tento kontejner zastavíte a odeberete, datový svazek se zachová. Můžete ho docker volume ls zobrazit pomocí příkazu.

docker volume ls

Pokud pak vytvoříte jiný kontejner se stejným názvem svazku, použije nový kontejner stejná data Azure SQL Edge obsažená ve svazku.

Pokud chcete odebrat kontejner datového svazku docker volume rm , použijte příkaz.

Upozorňující

Pokud kontejner datového svazku odstraníte, všechna data Azure SQL Edge v kontejneru se trvale odstraní.

Další kroky