Azure SQL Edge'i yapılandırma
Önemli
Azure SQL Edge 30 Eylül 2025'te kullanımdan kaldırılacaktır. Daha fazla bilgi ve geçiş seçenekleri için Bkz . Kullanımdan kaldırma bildirimi.
Not
Azure SQL Edge artık ARM64 platformunu desteklememektedir.
Azure SQL Edge, aşağıdaki iki seçenekten biri aracılığıyla yapılandırmayı destekler:
- Ortam değişkenleri
- /var/opt/mssql klasörüne yerleştirilen bir mssql.conf dosyası
Not
Ortam değişkenlerini ayarlamak, dosyada mssql.conf
belirtilen ayarları geçersiz kılar.
Ortam değişkenlerini kullanarak yapılandırma
Azure SQL Edge, SQL Edge kapsayıcısını yapılandırmak için kullanılabilecek çeşitli ortam değişkenlerini kullanıma sunar. Bu ortam değişkenleri, Linux üzerinde SQL Server için kullanılabilenlerin bir alt kümesidir. Linux üzerinde SQL Server ortam değişkenleri hakkında daha fazla bilgi için bkz. Ortam değişkenleri.
Aşağıdaki yeni ortam değişkenleri Azure SQL Edge'e eklendi.
Ortam değişkeni | Açıklama | Değerler |
---|---|---|
PlanId | Başlatma sırasında kullanılacak Azure SQL Edge SKU'su belirtir. Bu ortam değişkeni yalnızca Azure IoT Edge kullanılarak Azure SQL Edge dağıtılırken gereklidir. | asde-developer-on-iot-edge veya asde-premium-on-iot-edge |
MSSQL_TELEMETRY_ENABLED | Kullanım ve tanılama veri toplamayı etkinleştirin veya devre dışı bırakın. | TRUE veya FALSE |
MSSQL_TELEMETRY_DIR | Kullanım ve tanılama veri toplama denetim dosyaları için hedef dizini ayarlar. | SQL Edge kapsayıcısı içindeki klasör konumu. Bu klasör, bağlama noktaları veya veri birimleri kullanılarak bir konak birimine eşlenebilir. |
MSSQL_PACKAGE | Dağıtılacak dacpac veya bacpac paketinin konumunu belirtir. | dacpac veya bacpac paketlerini içeren klasör, dosya veya SAS URL'si. Daha fazla bilgi için bkz. SQL Edge'de SQL Veritabanı DACPAC ve BACPAC paketlerini dağıtma. |
Aşağıdaki Linux üzerinde SQL Server ortam değişkeni Azure SQL Edge için desteklenmez. Tanımlanırsa, kapsayıcı başlatma sırasında bu ortam değişkeni yoksayılır.
Ortam değişkeni | Açıklama |
---|---|
MSSQL_ENABLE_HADR | Kullanılabilirlik grubunu etkinleştirin. Örneğin, 1 etkinleştirilir ve 0 devre dışı bırakılır. |
Önemli
SQL Edge için MSSQL_PID ortam değişkeni yalnızca Premium ve Geliştirici'yi geçerli değerler olarak kabul eder. Azure SQL Edge, ürün anahtarı kullanılarak başlatmayı desteklemez.
Ortam değişkenlerini belirtme
Hizmeti Azure portalı üzerinden dağıtırken SQL Edge için ortam değişkenlerini belirtin. Bunları modül dağıtımının Ortam Değişkenleri bölümünden veya Kapsayıcı Oluşturma Seçenekleri'nin bir parçası olarak ekleyebilirsiniz.
Ortam Değişkenleri'ne değer ekleyin.
Kapsayıcı Oluşturma Seçenekleri'ne değer ekleyin.
Not
Bağlantısız dağıtım modunda, ortam değişkenleri komutun -e
veya --env
--env-file
seçeneği docker run
kullanılarak belirtilebilir.
Dosya kullanarak mssql.conf
yapılandırma
Azure SQL Edge, Linux üzerinde SQL Server gibi mssql-conf yapılandırma yardımcı programını içermez. mssql.conf dosyasını el ile yapılandırmanız ve SQL Edge modülündeki /var/opt/mssql/ klasörüne eşlenen kalıcı depolama sürücüsüne yerleştirmeniz gerekir. SQL Edge'i Azure IoT Hub aracılığıyla dağıtırken, bu eşleme Kapsayıcı Oluşturma Seçenekleri'nde Bağlamalar seçeneği olarak belirtilir.
{
"Mounts": [
{
"Type": "volume",
"Source": "sqlvolume",
"Target": "/var/opt/mssql"
}
]
}
Azure SQL Edge için aşağıdaki yeni mssql.conf seçenekleri eklendi.
Seçenek | Açıklama |
---|---|
customerfeedback | SQL Server'ın Microsoft'a geri bildirim gönderip göndermediğini seçin. Daha fazla bilgi için bkz. Kullanım ve tanılama verilerini toplamayı devre dışı bırakma |
userrequestedlocalauditdirectory | Kullanım ve tanılama veri toplama denetim dosyaları için hedef dizini ayarlar. Daha fazla bilgi için bkz. Kullanım ve tanılama verilerinin yerel denetimi |
Aşağıdaki mssql.conf seçenekleri SQL Edge için geçerli değildir:
Seçenek | Açıklama |
---|---|
Müşteri geri bildirimi | SQL Server'ın Microsoft'a geri bildirim gönderip göndermediğini seçin. |
Veritabanı posta profili | Linux üzerinde SQL Server için varsayılan veritabanı posta profilini ayarlayın. |
Yüksek kullanılabilirlik | Kullanılabilirlik Gruplarını etkinleştirin. |
Microsoft Dağıtılmış İşlem Düzenleyicisi | Linux'ta MSDTC'yi yapılandırın ve sorunlarını giderin. SQL Edge için dağıtılmış işlemle ilgili ek yapılandırma seçenekleri desteklenmez. Bu ek yapılandırma seçenekleri hakkında daha fazla bilgi için bkz . MSDTC'yi yapılandırma. |
ML Hizmetleri EULA'ları | Azure Machine Learning paketleri için R ve Python EULA'larını kabul edin. Yalnızca SQL Server 2019 için geçerlidir. |
outboundnetworkaccess | Machine Learning Services R, Python ve Java uzantıları için giden ağ erişimini etkinleştirin. |
Aşağıdaki örnek mssql.conf dosyası SQL Edge için çalışır. Bir mssql.conf
dosyanın biçimi hakkında daha fazla bilgi için bkz . mssql.conf biçimi.
[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
Azure SQL Edge'i kök olmayan kullanıcı olarak çalıştırma
Varsayılan olarak, Azure SQL Edge kapsayıcıları kök olmayan bir kullanıcı/grupla çalışır. Farklı bir kullanıcı/grup belirtilmediği sürece Azure IoT Hub (veya kullanarak docker run
) aracılığıyla dağıtıldığında SQL Edge kapsayıcıları mssql (kök olmayan) kullanıcı olarak başlatılır. Dağıtım sırasında farklı bir kök olmayan kullanıcı belirtmek için kapsayıcı oluşturma seçeneklerinin *"User": "<name|uid>[:<group|gid>]"*
altına anahtar-değer çiftini ekleyin. Aşağıdaki örnekte, SQL Edge kullanıcı *IoTAdmin*
olarak başlatacak şekilde yapılandırılmıştır.
{
..
..
..
"User": "IoTAdmin",
"Env": [
"MSSQL_AGENT_ENABLED=TRUE",
"ClientTransportType=AMQP_TCP_Only",
"MSSQL_PID=Premium"
]
}
Kök olmayan kullanıcının bağlı birimlerdeki VERITABANı dosyalarına erişmesine izin vermek için kapsayıcıyı çalıştırdığınız kullanıcının/grubun kalıcı dosya depolamada okuma ve yazma izinlerine sahip olduğundan emin olun. Aşağıdaki örnekte, ile kök olmayan kullanıcıyı user_id
10001
dosyaların sahibi olarak ayarlayacağız.
chown -R 10001:0 <database file dir>
Önceki CTP sürümlerinden yükseltme
Azure SQL Edge'in önceki CTP'leri kök kullanıcılar olarak çalışacak şekilde yapılandırıldı. Önceki CTP'lerden yükseltme yaparken aşağıdaki seçenekler kullanılabilir.
Kök kullanıcıyı kullanmaya devam et - Kök kullanıcıyı kullanmaya devam etmek için, kapsayıcı oluşturma seçeneklerinin
*"User": "0:0"*
altına anahtar-değer çiftini ekleyin.Varsayılan mssql kullanıcısını kullanma - Varsayılan mssql kullanıcısını kullanmak için şu adımları izleyin:
Docker konağına adlı
mssql
bir kullanıcı ekleyin. Aşağıdaki örnekte, kimliği 10001 olan bir kullanıcı mssql'i ekleyeceğiz. Bu kullanıcı kök gruba da eklenir.sudo useradd -M -s /bin/bash -u 10001 -g 0 mssql
Veritabanı dosyasının bulunduğu dizin/bağlama birimi üzerindeki izni değiştirin
sudo chgrp -R 0 /var/lib/docker/volumes/kafka_sqldata/ sudo chmod -R g=u /var/lib/docker/volumes/kafka_sqldata/
Farklı bir kök olmayan kullanıcı hesabı kullanma - Farklı bir kök olmayan kullanıcı hesabı kullanmak için
- Kapsayıcı oluşturma seçenekleri altında anahtar-değer çifti ekleme
*"User": "user_name | user_id*
seçeneğini belirtmek için kapsayıcı oluşturma seçeneklerini güncelleştirin. user_name veya user_id Docker konağınızdaki gerçek bir user_name veya user_id değiştirin. - Dizin/bağlama birimi üzerindeki izinleri değiştirin.
- Kapsayıcı oluşturma seçenekleri altında anahtar-değer çifti ekleme
Verilerinizi kalıcı hale
Ve ile docker stop
kapsayıcıyı yeniden başlatsanız bile Azure SQL Edge yapılandırma değişiklikleriniz ve docker start
veritabanı dosyalarınız kapsayıcıda kalıcı olur. Ancak kapsayıcıyı ile docker rm
kaldırırsanız Azure SQL Edge ve veritabanlarınız da dahil olmak üzere kapsayıcıdaki her şey silinir. Aşağıdaki bölümde, ilişkili kapsayıcılar silinse bile veritabanı dosyalarınızı kalıcı hale getirmek için veri birimlerinin nasıl kullanılacağı açıklanmaktadır.
Önemli
Azure SQL Edge için Docker'da veri kalıcılığını anlamanız önemlidir. Bu bölümdeki tartışmaya ek olarak Docker kapsayıcılarındaki verilerin nasıl yönetileceğini açıklayan Docker belgelerine bakın.
Konak dizinini veri birimi olarak bağlama
İlk seçenek, kapsayıcınızda veri birimi olarak ana bilgisayarınıza bir dizin bağlamaktır. Bunu yapmak için bayrağıyla docker run
komutunu -v <host directory>:/var/opt/mssql
kullanın. Bu, verilerin kapsayıcı yürütmeleri arasında geri yüklenmesini sağlar.
docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' -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=<password>" -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
Bu teknik ayrıca Docker dışındaki konakta dosyaları paylaşmanızı ve görüntülemenizi sağlar.
Önemli
Windows'da Docker için konak birim eşlemesi şu anda dizinin tamamını /var/opt/mssql
eşlemeyi desteklemiyor. Ancak, gibi /var/opt/mssql/data
bir alt dizini konak makinenizle eşleyebilirsiniz.
Önemli
Azure SQL Edge görüntüsüyle macOS üzerinde Docker için konak birim eşlemesi şu anda desteklenmiyor. Bunun yerine veri birimi kapsayıcılarını kullanın. Bu kısıtlama dizine /var/opt/mssql
özgüdür. Bağlı bir dizinden okuma düzgün çalışır. Örneğin, macOS üzerinde kullanarak -v
bir konak dizini bağlayabilir ve konakta bulunan bir .bak
dosyadan yedeklemeyi geri yükleyebilirsiniz.
Veri birimi kapsayıcılarını kullanma
İkinci seçenek bir veri birimi kapsayıcısı kullanmaktır. parametresiyle konak dizini yerine birim adı belirterek bir veri birimi kapsayıcısı -v
oluşturabilirsiniz. Aşağıdaki örnek, sqlvolume adlı bir paylaşılan veri birimi oluşturur.
docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' -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=<password>" -p 1433:1433 -v sqlvolume:/var/opt/mssql -d mcr.microsoft.com/azure-sql-edge
Not
Çalıştırma komutunda örtük olarak bir veri birimi oluşturmaya yönelik bu teknik, Docker'ın eski sürümleriyle çalışmaz. Bu durumda, Veri birimi kapsayıcısı oluşturma ve bağlama başlıklı Docker belgelerinde açıklanan açık adımları kullanın.
Bu kapsayıcıyı durdurup kaldırsanız bile veri birimi devam eder. Komutuyla docker volume ls
görüntüleyebilirsiniz.
docker volume ls
Daha sonra aynı birim adına sahip başka bir kapsayıcı oluşturursanız, yeni kapsayıcı birimdeki Azure SQL Edge verilerini kullanır.
Veri birimi kapsayıcısını docker volume rm
kaldırmak için komutunu kullanın.
Uyarı
Veri birimi kapsayıcısını silerseniz kapsayıcıdaki tüm Azure SQL Edge verileri kalıcı olarak silinir.