Konfigurace Azure SQL Edge

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 SQL Edge. Tyto proměnné prostředí jsou podmnožinou proměnných, které jsou SQL Server on Linux. Další informace o proměnných SQL Server on Linux 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í Description Hodnoty
ID plánu Určuje SKU Azure SQL Edge, která se má použít během inicializace. Tato proměnná prostředí se vyžaduje jenom při nasazení 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 SQL Edge. Tuto složku je možné mapovat na svazek hostitele pomocí přípojné body nebo svazků dat.
MSSQL_PACKAGE Určuje umístění balíčku dacpac nebo bacpac, který se má nasadit. Adresa URL složky, souboru nebo SAS obsahující balíčky dacpac nebo bacpac. Další informace najdete v tématu Nasazení balíčků DACPAC SQL Database BACPACv SQL Edge.

Následující SQL Server on Linux prostředí azure SQL Edge nepodporuje. Pokud je definovaná, bude tato proměnná prostředí během inicializace kontejneru ignorována.

Proměnná prostředí Description
MSSQL_ENABLE_HADR Povolte skupinu dostupnosti. Například 1 je povoleno a 0 je zakázáno.

Důležité

Proměnná MSSQL_PID prostředí pro SQL Edge přijímá jako platné Premium a Developer. Azure SQL Edge nepodporuje inicializaci pomocí klíče Product Key.

Zadání proměnných prostředí

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

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

Nastavení pomocí seznamu proměnných prostředí

Přidejte hodnoty v části Možnosti vytvoření kontejneru.

Nastavení pomocí možností vytvoření kontejneru

Poznámka

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

Konfigurace pomocí mssql.conf souboru

Azure SQL Edge neobsahuje konfigurační nástroj mssql-conf jako SQL Server on Linux nástroj. 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í jako možnost Připojení v části Možnosti 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 Vyberte, jestli SQL Server pošlete zpětnou vazbu Microsoftu. Další informace najdete v tématu Zakázání shromažďování dat o využití a diagnostice.
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 shromažďování dat o využití a diagnostických datech.

Následující možnosti mssql.conf nelze použít pro SQL Edge:

Možnost Popis
Názory zákazníků Vyberte, jestli SQL Server pošlete zpětnou vazbu Microsoftu.
Profil databázové pošty Nastavte výchozí profil databázové pošty pro SQL Server on Linux.
Vysoká dostupnost Povolte skupiny dostupnosti.
služba MS DTC (Microsoft Distributed Transaction Coordinator) Konfigurace a řešení potíží s příkazem MSDTC v Linuxu Další možnosti konfigurace související s distribuovanou transakcí nejsou podporované pro SQL Edge. Další informace o těchto dalších možnostech konfigurace naleznete v tématu Configure MSDTC.
EULA ML Services Přijměte podmínky EULA jazyka R a Pythonu pro Azure Machine Learning balíčky. Platí pouze SQL Server 2019.
odchozísítěpřístup Povolte odchozí síťový přístup pro rozšíření Machine Learning Services R, Python a Java.

Následující ukázkový soubor mssql.conf funguje pro SQL Edge. Další informace o formátu souboru najdete ve formátu mssql.conf 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živatel bez rootu

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

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

Pokud chcete uživateli, který není rootem, povolit přístup k souborům databáze, které jsou na připojovaných svazcích, ujistěte se, že uživatel nebo skupina, pod kterou kontejner spustíte, má oprávnění ke čtení & zápisu v trvalém úložišti souborů. V následujícím příkladu nastavme uživatele, který není kořenovým user_id 10001 jako vlastník souborů.

chown -R 10001:0 <database file dir>

Upgrade ze starších verzí CTP

Dřívější CTPs služby Azure SQL Edge byly nakonfigurovány tak, aby se spouštěly jako uživatelé root. Při upgradu ze starších CTEP 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 pár *"User": "0:0"* klíč-hodnota v části možnosti vytvoření kontejneru.
  • Použijte výchozího uživatele mssql – Pokud chcete použít výchozího uživatele mssql, postupujte následovně.
    • Na hostitele Dockeru přidejte uživatele s názvem mssql. 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ěňte oprávnění k adresáři nebo svazku pro 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 než kořenového uživatelského účtu – Použití jiného uživatelského účtu, který není kořenovým uživatelem
    • Aktualizujte možnosti vytvoření kontejneru a v části možnosti vytvoření kontejneru zadejte přidat *"User": "user_name | user_id* pár klíč-hodnota. Nahraďte user_name nebo user_id skutečným user_name nebo user_id hostitele Dockeru.
    • Změňte oprávnění k adresáři nebo svazku pro připojení.

Zachování dat

Změny konfigurace služby Azure SQL Edge a soubory databáze se uchová v kontejneru i v případě, že kontejner restartujete pomocí a docker stop docker start . Pokud ale kontejner odeberete pomocí , odstraní se všechno v kontejneru, včetně Azure SQL Edge a docker rm databází. Následující část vysvětluje, jak pomocí datových svazků zachovat soubory databáze i v případě odstranění přidružených kontejnerů.

Důležité

Pro Azure SQL Edge je důležité porozumět trvalosti dat v Dockeru. Kromě diskuze v této části si prohlédněte dokumentaci k Dockeru týkající se správy dat v kontejnerech Dockeru.

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

První možností je připojit k hostiteli adresář jako datový svazek v kontejneru. K tomu použijte příkaz docker run s -v <host directory>:/var/opt/mssql příznakem . To umožňuje obnovit data 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 prohlížet soubory na hostiteli mimo Docker.

Důležité

Mapování svazků hostitele pro Docker na Windows v současné době nepodporuje mapování kompletní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 na Macu s imagemi Azure SQL Edge se v tuto chvíli nepodporuje. Místo toho použijte kontejnery datových svazků. 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 adresář hostitele pomocí příkazu -v na počítači Mac a obnovit zálohu ze souboru .bak, který se nachází na hostiteli.

Použití kontejnerů datových svazků

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

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

docker volume ls

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

Kontejner svazků dat odeberete pomocí docker volume rm příkazu .

Upozornění

Pokud odstraníte kontejner svazků dat, trvale se odstraní SQL data Azure SQL Edge v kontejneru.

Další kroky