Bagikan melalui


Konfigurasi Azure SQL Edge

Penting

Azure SQL Edge akan dihentikan pada 30 September 2025. Untuk informasi selengkapnya dan opsi migrasi, lihat Pemberitahuan penghentian.

Catatan

Azure SQL Edge tidak lagi mendukung platform ARM64.

Azure SQL Edge mendukung konfigurasi melalui salah satu dari dua opsi berikut:

  • Variabel lingkungan
  • File mssql.conf ditempatkan di folder /var/opt/mssql

Catatan

Mengatur variabel lingkungan mengambil alih pengaturan yang ditentukan dalam mssql.conf file.

Mengonfigurasi dengan menggunakan variabel lingkungan

Azure SQL Edge memaparkan beberapa variabel lingkungan berbeda yang dapat digunakan untuk mengonfigurasi kontainer SQL Edge. Variabel lingkungan ini adalah subset dari variabel yang tersedia untuk SQL Server di Linux. Untuk informasi selengkapnya tentang SQL Server pada variabel lingkungan Linux, lihat Variabel lingkungan.

Variabel lingkungan baru berikut ditambahkan ke Azure SQL Edge.

Variabel lingkungan Deskripsi Values
PlanId Menentukan Azure SQL Edge SKU yang akan digunakan selama inisialisasi. Variabel lingkungan ini hanya diperlukan saat menyebarkan Azure SQL Edge menggunakan Azure IoT Edge. asde-developer-on-iot-edge atau asde-premium-on-iot-edge
MSSQL_TELEMETRY_ENABLED Mengaktifkan atau menonaktifkan pengumpulan data penggunaan dan diagnostik. TRUE atau FALSE
MSSQL_TELEMETRY_DIR Mengatur direktori target untuk file audit pengumpulan data penggunaan dan diagnostik. Lokasi folder dalam kontainer SQL Edge. Folder ini dapat dipetakan ke volume host menggunakan titik pemasangan atau volume data.
MSSQL_PACKAGE Menentukan lokasi paket dacpac atau bacpac yang akan disebarkan. Folder, file, atau URL SAS yang berisi paket dacpac atau bacpac. Untuk informasi selengkapnya, lihat Menyebarkan paket SQL Database DACPAC dan BACPAC di SQL Edge.

SQL Server berikut pada variabel lingkungan Linux tidak didukung untuk Azure SQL Edge. Jika ditentukan, variabel lingkungan ini diabaikan selama inisialisasi kontainer.

Variabel lingkungan Deskripsi
MSSQL_ENABLE_HADR Mengaktifkan grup ketersediaan. Misalnya, 1 diaktifkan, dan 0 dinonaktifkan.

Penting

Variabel lingkungan MSSQL_PID untuk SQL Edge hanya menerima Premium dan Developer sebagai nilai yang valid. Azure SQL Edge tidak mendukung inisialisasi menggunakan kunci produk.

Tentukan variabel lingkungan

Tentukan variabel lingkungan untuk SQL Edge saat Anda menyebarkan layanan melalui portal Microsoft Azure. Anda dapat menambahkannya baik di bagian Variabel Lingkungan dari penyebaran modul atau sebagai bagian dari Opsi Pembuatan Kontainer.

Menambahkan nilai dalam Variabel Lingkungan.

Cuplikan layar diatur dengan menggunakan daftar variabel lingkungan.

Tambahkan nilai dalam Opsi Pembuatan Kontainer.

Cuplikan layar set dengan menggunakan opsi buat kontainer.

Catatan

Dalam mode penyebaran yang terputus, variabel lingkungan dapat ditentukan menggunakan -e atau --env atau opsi --env-file dari perintah docker run.

Konfigurasikan dengan menggunakan mssql.conf file

Azure SQL Edge tidak menyertakan utilitas konfigurasi mssql-conf seperti yang dilakukan SQL Server di Linux. Anda perlu mengonfigurasi file mssql.conf secara manual dan menempatkannya di drive penyimpanan persisten yang dipetakan ke folder /var/opt/mssql/ dalam modul SQL Edge. Saat Anda menyebarkan SQL Edge melalui Azure IoT Hub, pemetaan ini ditentukan sebagai opsi Pemasangan di Opsi Buat Kontainer.

{
  "Mounts": [
    {
      "Type": "volume",
      "Source": "sqlvolume",
      "Target": "/var/opt/mssql"
    }
  ]
}

Opsi mssql.conf baru berikut ditambahkan untuk Azure SQL Edge.

Opsi Deskripsi
customerfeedback Pilih apakah SQL Server mengirim umpan balik ke Microsoft. Untuk informasi selengkapnya, lihat Menonaktifkan pengumpulan data penggunaan dan diagnostik
userrequestedlocalauditdirectory Mengatur direktori target untuk file audit pengumpulan data penggunaan dan diagnostik. Untuk informasi selengkapnya, lihat Audit lokal pengumpulan data penggunaan dan diagnostik

Opsi mssql.conf berikut ini tidak berlaku untuk SQL Edge:

Opsi Deskripsi
Umpan balik pelanggan Pilih apakah SQL Server mengirim umpan balik ke Microsoft.
Profil email database Atur profil email database default untuk SQL Server di Linux.
Ketersediaan tinggi Mengaktifkan Grup Ketersediaan.
Koordinator Transaksi Terdistribusi Microsoft Mengonfigurasi dan memecahkan masalah MSDTC di Linux. Opsi konfigurasi terkait transaksi terdistribusi tambahan tidak didukung untuk SQL Edge. Untuk informasi selengkapnya tentang opsi konfigurasi tambahan ini, lihat Mengonfigurasi MSDTC.
ML Services EULA Terima R dan Python EULA untuk paket Azure Machine Learning. Berlaku khusus untuk SQL Server 2019.
outboundnetworkaccess Aktifkan akses jaringan keluar untuk ekstensi Machine Learning Services R, Python, dan Java.

Contoh file mssql.conf berikut berfungsi untuk SQL Edge. Untuk informasi selengkapnya tentang format untuk mssql.conffile, lihatformat 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

Jalankan Azure SQL Edge sebagai pengguna non-root

Secara default, kontainer Azure SQL Edge berjalan dengan pengguna/grup non-root. Saat disebarkan melalui Azure IoT Hub (atau menggunakan docker run), kecuali pengguna/grup yang berbeda ditentukan, kontainer SQL Edge dimulai sebagai pengguna mssql (non-root). Untuk menentukan pengguna non-root yang berbeda selama penyebaran, tambahkan pasangan kunci nilai *"User": "<name|uid>[:<group|gid>]"* di bawah opsi pembuatan kontainer. Dalam contoh berikut, SQL Edge dikonfigurasi untuk memulai sebagai pengguna *IoTAdmin*.

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

Untuk memungkinkan pengguna non-root mengakses file DB yang berada pada volume yang dipasang, pastikan bahwa pengguna/grup yang Anda jalankan kontainer di bawahnya, memiliki izin baca & tulis pada penyimpanan file persisten. Dalam contoh berikut, kami mengatur pengguna non-root dengan user_id 10001 sebagai pemilik file.

chown -R 10001:0 <database file dir>

Meningkatkan dari rilis CTP sebelumnya

CTP Azure SQL Edge sebelumnya dikonfigurasi untuk berjalan sebagai pengguna root. Opsi berikut ini tersedia saat meningkatkan dari CTP sebelumnya.

  • Lanjutkan menggunakan pengguna root - Untuk terus menggunakan pengguna root, tambahkan pasangan kunci nilai *"User": "0:0"* di bawah opsi pembuatan kontainer.

  • Gunakan pengguna mssql default - Untuk menggunakan pengguna mssql default, ikuti langkah-langkah berikut:

    • Tambahkan pengguna bernama mssql di host Docker. Dalam contoh di bawah ini, kami menambahkan mssql pengguna dengan ID 10001. Pengguna ini juga ditambahkan ke grup root.

      sudo useradd -M -s /bin/bash -u 10001 -g 0 mssql
      
    • Mengubah izin pada volume direktori/pemasangan tempat file database berada

      sudo chgrp -R 0 /var/lib/docker/volumes/kafka_sqldata/
      sudo chmod -R g=u /var/lib/docker/volumes/kafka_sqldata/
      
  • Menggunakan akun pengguna non-root yang berbeda - Untuk menggunakan akun pengguna non-root yang berbeda

    • Perbarui opsi buat kontainer untuk menentukan dan menambahkan pasangan kunci-nilai *"User": "user_name | user_id* di bawah opsi pembuatan kontainer. Ganti user_name atau user_id dengan user_name atau user_id aktual dari host Docker Anda.
    • Mengubah izin pada volume direktori/pemasangan.

Pertahankan data Anda

Perubahan konfigurasi Azure SQL Edge dan file database Anda tetap ada di kontainer meskipun Anda memulai ulang kontainer dengan docker stop dan docker start. Namun, jika Anda menghapus kontainer dengan docker rm, semua yang ada di kontainer akan dihapus, termasuk Azure SQL Edge dan database Anda. Bagian berikut menjelaskan cara menggunakan volume data untuk mempertahankan file database Anda meskipun kontainer terkait dihapus.

Penting

Untuk Azure SQL Edge, sangat penting bagi Anda untuk memahami kegigihan data di Docker. Selain diskusi di bagian ini, lihat dokumentasi Docker tentang cara mengelola data dalam kontainer Docker.

Memasang direktori host sebagai volume data

Opsi pertama adalah memasang direktori pada host Anda sebagai volume data di kontainer Anda. Untuk melakukannya, gunakan perintah docker run dengan bendera -v <host directory>:/var/opt/mssql. Tindakan ini memungkinkan data dipulihkan di antara eksekusi kontainer.

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

Teknik ini juga memungkinkan Anda untuk berbagi dan melihat file di host di luar Docker.

Penting

Pemetaan volume host untuk Docker di Windows saat ini tidak mendukung pemetaan direktori lengkap /var/opt/mssql . Namun, Anda dapat memetakan subdirektori, seperti /var/opt/mssql/data ke mesin host Anda.

Penting

Pemetaan volume host untuk Docker di macOS dengan gambar Azure SQL Edge saat ini tidak didukung. Gunakan kontainer volume data sebagai gantinya. Pembatasan ini khusus untuk direktori /var/opt/mssql. Membaca dari direktori yang dipasang berfungsi dengan baik. Misalnya, Anda dapat memasang direktori host menggunakan -v di macOS dan memulihkan cadangan dari .bak file yang berada di host.

Menggunakan kontainer volume data

Opsi kedua adalah menggunakan kontainer volume data. Anda dapat membuat kontainer volume data dengan menentukan nama volume, bukan direktori host dengan parameter -v. Contoh berikut membuat volume data bersama bernama sqlvolume.

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

Catatan

Teknik untuk membuat volume data secara implisit dalam perintah jalankan tidak berfungsi dengan versi Docker yang lebih lama. Dalam hal ini, gunakan langkah-langkah eksplisit yang diuraikan dalam dokumentasi Docker, Membuat dan memasang kontainer volume data.

Bahkan jika Anda menghentikan dan menghapus kontainer ini, volume data tetap ada. Anda dapat melihatnya dengan perintah docker volume ls.

docker volume ls

Jika Anda kemudian membuat kontainer lain dengan nama volume yang sama, kontainer baru menggunakan data Azure SQL Edge yang sama yang berada dalam volume.

Untuk menghapus wadah volume data, gunakan perintah docker volume rm.

Peringatan

Jika Anda menghapus kontainer volume data, data Azure SQL Edge apa pun dalam kontainer akan dihapus secara permanen.