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í.

Přidejte hodnoty v části Možnosti 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/
- 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.
- 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í.
- Aktualizujte možnosti vytvoření kontejneru a v části možnosti vytvoření kontejneru zadejte přidat
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.