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.
Tambahkan nilai dalam Opsi Pembuatan 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.conf
file, 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.
- Perbarui opsi buat kontainer untuk menentukan dan menambahkan pasangan kunci-nilai
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.