Docker ile Azure SQL Edge'i dağıtma

Önemli

Azure SQL Edge artık ARM64 platformunu desteklememektedir.

Bu hızlı başlangıçta, Azure SQL Edge kapsayıcı görüntüsünü çekmek ve çalıştırmak için Docker'ı kullanacaksınız. Ardından sqlcmd ile bağlanarak ilk veritabanınızı oluşturun ve sorguları çalıştırın.

Bu görüntü, Ubuntu 18.04 tabanlı SQL Edge'i içermektedir. Linux üzerinde Docker Engine 1.8+ ile kullanılabilir.

Azure SQL Edge kapsayıcıları üretim iş yükleri için aşağıdaki platformlarda desteklenmez:

  • Windows
  • Mac OS
  • Windows üzerinde Linux için Azure IoT Edge (EFLOW)

Önkoşullar

Not

Bu makaledeki sudo bash komutları için kullanılır. Docker'ı çalıştırmak için kullanmak sudo istemiyorsanız, bir Docker grubu yapılandırabilir ve kullanıcıları bu gruba ekleyebilirsiniz. Daha fazla bilgi için bkz. Linux için yükleme sonrası adımları.

Kapsayıcı görüntüsünü çekme ve çalıştırma

  1. Microsoft Container Registry'den Azure SQL Edge kapsayıcı görüntüsünü çekin.

    sudo docker pull mcr.microsoft.com/azure-sql-edge:latest
    

    Önceki komut en son SQL Edge kapsayıcı görüntüsünü çeker. Kullanılabilir tüm görüntüleri görmek için azure-sql-edge Docker hub sayfasına bakın.

  2. Kapsayıcı görüntüsünü Docker ile çalıştırmak için bash kabuğundan aşağıdaki komutu kullanın:

    • Developer sürümü olarak çalışan bir Azure SQL Edge örneği başlatın:

      sudo docker run --cap-add SYS_PTRACE -e 'ACCEPT_EULA=1' -e 'MSSQL_SA_PASSWORD=yourStrong(!)Password' -p 1433:1433 --name azuresqledge -d mcr.microsoft.com/azure-sql-edge
      
    • Premium sürüm olarak çalışan bir Azure SQL Edge örneği başlatın:

      sudo docker run --cap-add SYS_PTRACE -e 'ACCEPT_EULA=1' -e 'MSSQL_SA_PASSWORD=yourStrong(!)Password' -e 'MSSQL_PID=Premium' -p 1433:1433 --name azuresqledge -d mcr.microsoft.com/azure-sql-edge
      

    Önemli

    Parola, Microsoft SQL Veritabanı Altyapısı varsayılan parola ilkesine uygun olmalıdır, aksi takdirde kapsayıcı SQL Veritabanı Altyapısını ayarlayamaz ve çalışmayı durdurur. Varsayılan olarak, parola en az 8 karakter uzunluğunda olmalı ve şu dört kümeden üçünün karakterlerini içermelidir: büyük harfler, küçük harfler, 10 tabanı ve simgeler. Docker logs komutunu yürüterek hata günlüğünü inceleyebilirsiniz.

    Aşağıdaki tabloda, önceki docker run örneklerde yer alan parametrelerin açıklaması verilmiştir:

    Parametre Açıklama
    -e "ACCEPT_EULA=Y" Son Kullanıcı Lisans Sözleşmesi'ni kabul ettiğinizi onaylamak için ACCEPT_EULA değişkenini herhangi bir değere ayarlayın. SQL Edge görüntüsü için gerekli ayar.
    -e "MSSQL_SA_PASSWORD=yourStrong(!) Parola" En az sekiz karakter uzunluğunda ve Azure SQL Edge parola gereksinimlerini karşılayan kendi güçlü parolanızı belirtin. SQL Edge görüntüsü için gerekli ayar.
    -p 1433:1433 Konak ortamındaki bir TCP bağlantı noktasını (ilk değer) kapsayıcıdaki bir TCP bağlantı noktasıyla (ikinci değer) eşleyin. Bu örnekte SQL Edge, kapsayıcıdaki TCP 1433'te dinliyor ve bu, konaktaki 1433 numaralı bağlantı noktasında kullanıma sunuldu.
    --name azuresqledge Kapsayıcı için rastgele oluşturulan bir ad yerine özel bir ad belirtin. Birden fazla kapsayıcı çalıştırırsanız, aynı adı yeniden kullanamazsınız.
    -D Kapsayıcıyı arka planda çalıştırma (daemon)

    Tüm Azure SQL Edge ortam değişkenlerinin tam listesi için bkz. Azure SQL Edge'i Ortam Değişkenleri ile Yapılandırma. SQL Edge kapsayıcılarını yapılandırmak için mssql.conf dosyası da kullanabilirsiniz.

  3. Docker kapsayıcılarınızı görüntülemek için komutunu kullanın docker ps .

    sudo docker ps -a
    
  4. STATUS sütununda Yukarı durumu gösteriliyorsa SQL Edge kapsayıcıda çalışır ve PORTS sütununda belirtilen bağlantı noktasını dinler. SQL Edge kapsayıcınızın STATUS sütunu Çıktı olarak görünüyorsa Azure SQL Edge belgelerinin Sorun Giderme bölümüne bakın.

    -h (konak adı) parametresi de yararlıdır, ancak basitlik için bu öğreticide kullanılmaz. Bu, kapsayıcının iç adını özel bir değerle değiştirir. Bu, aşağıdaki Transact-SQL sorgusunda döndürülen addır:

    SELECT @@SERVERNAME,
        SERVERPROPERTY('ComputerNamePhysicalNetBIOS'),
        SERVERPROPERTY('MachineName'),
        SERVERPROPERTY('ServerName');
    

    --name ve değerini aynı değere ayarlamak-h, hedef kapsayıcıyı kolayca tanımlamanın iyi bir yoludur.

  5. Son adım olarak, SA parolanızı değiştirin çünkü MSSQL_SA_PASSWORD çıktıda ps -eax görünür ve aynı ada sahip ortam değişkeninde depolanır. Aşağıdaki adımlara bakın.

SA parolasını değiştirme

SA hesabı, Azure SQL Edge örneğinde kurulum sırasında oluşturulan bir sistem yöneticisidir. SQL Edge kapsayıcınızı oluşturduktan sonra belirttiğiniz MSSQL_SA_PASSWORD ortam değişkeni kapsayıcıda çalıştırılarak echo $MSSQL_SA_PASSWORD bulunabilir. Güvenlik amacıyla SA parolanızı değiştirin.

  1. SA kullanıcısı için kullanılacak güçlü bir parola seçin.

  2. Transact-SQL kullanarak parolayı değiştirmek için sqlcmd'yi çalıştırmak için kullanındocker exec. Aşağıdaki örnekte, eski parolayı ve yeni parolayı <YourStrong!Passw0rd><YourNewStrong!Passw0rd>kendi parola değerlerinizle değiştirin.

    sudo docker exec -it azuresqledge /opt/mssql-tools/bin/sqlcmd \
       -S localhost -U SA -P "<YourStrong@Passw0rd>" \
       -Q 'ALTER LOGIN SA WITH PASSWORD="<YourNewStrong@Passw0rd>"'
    

Azure SQL Edge'e bağlanma

Aşağıdaki adımlarda SQL Edge'e bağlanmak için kapsayıcının içindeki sqlcmd Azure SQL Edge komut satırı aracı kullanılır.

  1. docker exec -it Komutunu kullanarak çalışan kapsayıcınızın içinde etkileşimli bir bash kabuğu başlatın. Aşağıdaki örnekte, azuresqledge kapsayıcıyı oluştururken parametresi tarafından --name belirtilen addır.

    sudo docker exec -it azuresqledge "bash"
    
  2. Kapsayıcının içine girdikten sonra sqlcmd ile yerel olarak bağlanın. sqlcmd varsayılan olarak yolda olmadığından tam yolu belirtmeniz gerekir.

    /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "<YourNewStrong@Passw0rd>"
    

    İpucu

    Komut satırında parolayı girmeniz istenecek şekilde atlayabilirsiniz.

  3. Başarılı olursa, bir sqlcmd komut istemine ulaşmalısınız: 1>.

Veri oluşturma ve sorgulama

Aşağıdaki bölümlerde yeni veritabanı oluşturmak, veri eklemek ve sorgu çalıştırmak için sqlcmd ve Transact-SQL kullanma adımları gösterilir.

Yeni veritabanı oluşturma

Aşağıdaki adımlar adlı TestDByeni bir veritabanı oluşturur.

  1. sqlcmd komut isteminden aşağıdaki Transact-SQL komutunu yapıştırarak bir test veritabanı oluşturun:

    CREATE DATABASE TestDB;
    GO
    
  2. Sonraki satırda, sunucunuzdaki tüm veritabanlarının adını döndürmek için bir sorgu yazın:

    SELECT name from sys.databases;
    GO
    

Veri ekleme

Ardından yeni bir tablo Inventoryoluşturun ve iki yeni satır ekleyin.

  1. sqlcmd komut isteminden bağlamı yeni TestDB veritabanına geçin:

    USE TestDB;
    
  2. adlı Inventoryyeni tablo oluşturun:

    CREATE TABLE Inventory (
        id INT,
        name NVARCHAR(50),
        quantity INT
    );
    
  3. Yeni tabloya veri ekleme:

    INSERT INTO Inventory
    VALUES (1, 'banana', 150);
    
    INSERT INTO Inventory
    VALUES (2, 'orange', 154);
    
  4. Önceki komutları yürütmek için şunu yazın GO :

    GO
    

Verileri seçme

Şimdi tablodan Inventory veri döndürmek için bir sorgu çalıştırın.

  1. sqlcmd komut isteminden, tablodan miktarın 152'den Inventory büyük olduğu satırları döndüren bir sorgu girin:

    SELECT * FROM Inventory WHERE quantity > 152;
    
  2. Komutunu yürütür:

    GO
    

sqlcmd komut isteminden çıkma

  1. sqlcmd oturumunuzu sonlandırmak için yazınQUIT:

    QUIT
    
  2. Kapsayıcınızdaki etkileşimli komut isteminden çıkmak için yazın exit. Etkileşimli bash kabuğundan çıktıktan sonra kapsayıcınız çalışmaya devam eder.

Kapsayıcının dışından bağlanma

Docker makinenizdeki SQL Edge örneğine SQL bağlantılarını destekleyen herhangi bir dış Linux, Windows veya macOS aracından da bağlanabilirsiniz. Dışarıdan bir SQL Edge kapsayıcısına bağlanma hakkında daha fazla bilgi için bkz. Connect and Query Azure SQL Edge.

Kapsayıcınızı kaldırma

Bu öğreticide kullanılan SQL Edge kapsayıcısını kaldırmak istiyorsanız aşağıdaki komutları çalıştırın:

sudo docker stop azuresqledge
sudo docker rm azuresqledge

Uyarı

Kapsayıcının durdurulması ve kaldırılması, kapsayıcıdaki tüm SQL Edge verilerini kalıcı olarak siler. Verilerinizi korumanız gerekiyorsa, kapsayıcıdan bir yedekleme dosyası oluşturup kopyalayın veya bir kapsayıcı veri kalıcılığı tekniği kullanın.

Sonraki adımlar