Azure SQL Edge 'i yapılandırma

Azure SQL Edge, yapılandırmayı aşağıdaki iki seçenekten biri aracılığıyla destekler:

  • Ortam değişkenleri
  • /Var/seçenek/MSSQL klasörüne yerleştirilmiş bir MSSQL. conf dosyası

Not

Ortam değişkenlerinin ayarlanması, 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 farklı ortam değişkenlerini kullanıma sunar. bu ortam değişkenleri, Linux üzerinde SQL Server için kullanılabilir olanların bir alt kümesidir. Linux üzerinde SQL Server ortam değişkenleri hakkında daha fazla bilgi için bkz. ortam değişkenleri.

Azure SQL Edge 'e aşağıdaki yeni ortam değişkenleri eklenmiştir.

Ortam değişkeni Description Değerler
PlanID başlatma sırasında kullanılacak Azure SQL Edge SKU 'sunu belirtir. bu ortam değişkeni yalnızca Azure IoT Edge kullanılarak Azure SQL Edge dağıtıldığında gereklidir. asde-geliştirici-IoT-Edge veya asde-Premium-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 birimi ile eşleştirilebilir.
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 SQL Edge 'de SQL Veritabanı dacpac ve bacpac paketleri dağıtmakonusuna bakın.

Azure SQL Edge için aşağıdaki Linux üzerinde SQL Server ortam değişkeni desteklenmez. Tanımlandıysa, bu ortam değişkeni kapsayıcı başlatma sırasında yok sayılır.

Ortam değişkeni Description
MSSQL_ENABLE_HADR Kullanılabilirlik grubunu etkinleştirin. Örneğin, 1 etkindir ve 0 devre dışıdır.

Önemli

SQL Edge için MSSQL_PID ortam değişkeni, geçerli değerler olarak yalnızca Premium ve geliştiriciyi kabul eder. Azure SQL Edge, bir ürün anahtarı kullanarak başlatmayı desteklemez.

Ortam değişkenlerini belirtin

hizmeti Azure portalaracılığıyla 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ünde veya kapsayıcı oluşturma seçeneklerinin bir parçası olarak ekleyebilirsiniz.

Ortam değişkenlerine değer ekleyin.

Ortam değişkenleri listesini kullanarak ayarla

Kapsayıcı oluşturma seçeneklerinde değer ekleyin.

Kapsayıcı oluşturma seçeneklerini kullanarak ayarlama

Not

Bağlantısı kesilmiş dağıtım modunda, ortam değişkenleri, -e veya --env --env-file komutunun seçeneği kullanılarak belirtilebilir docker run .

Bir dosya kullanarak yapılandırma mssql.conf

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ünde/var/seçenek/mssql/klasörüne eşlenmiş kalıcı depolama sürücüsüne yerleştirmeniz gerekir. Azure marketi 'nden SQL Edge dağıttığınızda, bu eşleme kapsayıcı oluşturma seçeneklerinde bağlama 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 eklenmiştir.

Seçenek Açıklama
CustomerFeedback SQL Server Microsoft 'a geri bildirim gönderip göndermediğini seçin. Daha fazla bilgi için bkz. kullanım ve tanılama veri 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 verileri toplama Için yerel denetim

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 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 üzerinde MSDTC 'yi yapılandırma ve sorunlarını giderme. SQL Edge için ek dağıtılmış işlemle ilgili 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 Services eula 'ları Azure Machine Learning paketleri için R ve Python eula 'ları 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 geçerlidir. Bir dosyanın biçimi hakkında daha fazla bilgi için mssql.conf 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 kullanıcı/grup ile çalışır. Azure marketi aracılığıyla (veya docker run kullanılarak) dağıtıldığında, farklı bir kullanıcı/grup belirtilmediği sürece 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 *"User": "<name|uid>[:<group|gid>]"* kapsayıcı oluşturma seçenekleri altına anahtar-değer çiftini ekleyin. aşağıdaki örnekte SQL Edge kullanıcı olarak başlatılacak şekilde yapılandırılmıştır *IoTAdmin* .

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

Kök olmayan kullanıcının bağlı birimlerde bulunan DB dosyalarına erişmesine izin vermek için, kapsayıcıyı çalıştırdığınız Kullanıcı/grubun, kalıcı dosya depolaması üzerinde okuma & yazma izinlerine sahip olduğundan emin olun. Aşağıdaki örnekte, kök olmayan kullanıcıyı dosyaların sahibi olarak user_id 10001 ile ayarlayacağız.

chown -R 10001:0 <database file dir>

Önceki CTP sürümlerinden yükseltme

Azure SQL Edge 'in önceki tanıtıcısı, kök kullanıcılar olarak çalışacak şekilde yapılandırılmıştır. Önceki CTPs 'lerden yükseltme yaparken aşağıdaki seçenekler mevcuttur.

  • Kök kullanıcıyı kullanmaya devam et-kök kullanıcıyı kullanmaya devam etmek Için *"User": "0:0"* kapsayıcı oluşturma seçenekleri altına anahtar-değer çiftini ekleyin.
  • Varsayılan MSSQL kullanıcısını kullanın-varsayılan MSSQL kullanıcısını kullanmak Için aşağıdaki adımları izleyin
    • Docker konağına MSSQL adlı bir kullanıcı ekleyin. Aşağıdaki örnekte, KIMLIĞI 10001 olan bir Kullanıcı MSSQL 'si 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 biriminde izinleri değiştirme
      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ı kullanın-kök olmayan farklı bir kullanıcı hesabı kullanmak Için
    • Kapsayıcı *"User": "user_name | user_id* oluşturma seçenekleri altında anahtar-değer çifti Ekle öğesini belirtmek için kapsayıcı oluşturma seçeneklerini güncelleştirin. User_name veya user_id, Docker konağından gerçek user_name veya user_id değiştirin.
    • Dizin/bağlama birimi üzerindeki izinleri değiştirin.

Verilerinizi kalıcı olarak koruma

Azure SQL Edge yapılandırma değişiklikleriniz ve ve ile kapsayıcıyı yeniden başlatsanız bile veritabanı dosyaları kapsayıcıda kalıcı docker stop docker start olur. Ancak kapsayıcıyı ile kaldırırsanız, Azure SQL Edge ve veritabanlarınız docker rm dahil olmak üzere kapsayıcının tüm öğeleri silinir. Aşağıdaki bölümde, ilişkili kapsayıcılar silinse bile veritabanı dosyalarınızı kalıcı hale etmek için veri birimlerini nasıl kullanabileceğiniz açıklanıyor.

Önemli

Azure SQL Edge için Docker'da veri kalıcılığı anlamanız kritik öneme sahip. Bu bölümdeki tartışmaya ek olarak, Docker kapsayıcılarında verileri yönetmeye ilişkin Docker belgelerine bakın.

Bir konak dizinini veri birimi olarak bağlama

İlk seçenek, konakta bir dizini kapsayıcınıza veri birimi olarak bağlamanızdır. Bunu yapmak için komutunu docker run bayrağıyla -v <host directory>:/var/opt/mssql birlikte kullanın. Bu, verilerin kapsayıcı yürütmeleri arasında geri yüklenebilir.

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, Docker dışında konakta dosyaları paylaşma ve görüntülemenizi de sağlar.

Önemli

Windows üzerinde Docker için konak birimi eşlemesi şu anda tam dizin eşlemesini /var/opt/mssql desteklemez. Ancak, gibi bir alt dizini ana makinenize /var/opt/mssql/data eşlersiniz.

Önemli

Azure SQL Edge görüntüsüyle Mac'te Docker için konak birimi eşlemesi şu anda desteklenmiyor. Bunun yerine veri birimi kapsayıcılarını kullanın. Bu kısıtlama dizine /var/opt/mssql özeldir. Bağlı bir dizinden okuma iyi çalışır. Örneğin, Mac'te -v kullanarak bir konak dizini bağlar ve konakta bulunan bir .bak dosyasından yedeklemeyi geri yükleyebilirsiniz.

Veri hacmi kapsayıcılarını kullanma

İkinci seçenek bir veri birimi kapsayıcısı kullanmaktır. parametresine sahip bir konak dizini yerine birim adı belirterek veri birimi kapsayıcısı -v oluşturabilirsiniz. Aşağıdaki örnek sqlvolume adlı paylaşılan bir 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

Not

Run komutunda bir veri birimini örtülü olarak oluşturmak için kullanılan bu teknik Docker'ın eski sürümleriyle birlikte çalışmaz. Bu durumda, Docker belgelerinde özetlenen açık adımları kullanın: Veri birimi kapsayıcısı oluşturma ve bağlama.

Bu kapsayıcıyı durdursanız ve kaldırsanız bile veri birimi devam eder. Komutuyla docker volume ls görüntüebilirsiniz.

docker volume ls

Daha sonra aynı birim adına sahip başka bir kapsayıcı sanız, yeni kapsayıcı birim içinde yer alan SQL Azure SQL Edge verilerini kullanır.

Bir veri birimi kapsayıcısı kaldırmak için komutunu docker volume rm kullanın.

Uyarı

Veri hacmi kapsayıcısı silinirse, kapsayıcıda SQL Edge verileri kalıcı olarak silinir.

Sonraki adımlar