Azure SQL Edge'i yapılandırma

Önemli

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ı

Dekont

Ortam değişkenlerini ayarlamak, mssql.conf dosyasında 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.

Screenshot of set by using environment variables list.

Kapsayıcı Oluşturma Seçenekleri'ne değer ekleyin.

Screenshot of set by using container create options.

Dekont

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 Market dağıttığınızda, 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 Market (veya kullanarakdocker 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_id10001 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.

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 startveritabanı dosyalarınız kapsayıcıda kalıcı olur. Ancak kapsayıcıyı ile docker rmkaldı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=<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

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=<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

Dekont

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

Sonraki adımlar