تكوين Azure SQL Edge

هام

لم يعد Azure SQL Edge يدعم النظام الأساسي ARM64.

يدعم Azure SQL Edge التكوين من خلال أحد الخيارين التاليين:

  • متغيرات البيئة
  • ملف mssql.conf موضوع في المجلد /var/opt/mssql

إشعار

يتجاوز تعيين متغيرات البيئة الإعدادات المحددة في ملف mssql.conf.

التكوين باستخدام متغيرات البيئة

يعرض Azure SQL Edge العديد من متغيرات البيئة المختلفة التي يمكن استخدامها لتكوين حاوية SQL Edge. متغيرات البيئة هذه هي مجموعة فرعية من تلك المتوفرة ل SQL Server على Linux. لمزيد من المعلومات حول SQL Server على متغيرات بيئة Linux، راجع متغيرات البيئة.

تمت إضافة متغيرات البيئة الجديدة التالية إلى Azure SQL Edge.

متغير البيئة ‏‏الوصف القيم
معرف الخطة يحدد Azure SQL Edge SKU لاستخدامه أثناء التهيئة. متغير البيئة هذا مطلوب فقط عند نشر Azure SQL Edge باستخدام Azure IoT Edge. asde-developer-on-iot-edge أو asde-premium-on-iot-edge
MSSQL_TELEMETRY_ENABLED تمكين أو تعطيل جمع بيانات الاستخدام والتشخيص. صواب أم خطأ
MSSQL_TELEMETRY_DIR تعيين الدليل الهدف لملفات تدقيق تجميع بيانات الاستخدام والتشخيص. موقع المجلد داخل حاوية SQL Edge. يمكن تعيين هذا المجلد إلى وحدة تخزين مضيف باستخدام نقاط التحميل أو وحدات تخزين البيانات.
MSSQL_PACKAGE تحديد موقع حزمة dacpac أو bacpac التي سيتم نشرها. المجلد أو الملف أو عنوان URL SAS الذي يحتوي على حزم dacpac أو bacpac. لمزيد من المعلومات، راجع نشر حزم SQL Database DACPAC و BACPAC في SQL Edge.

متغير بيئة SQL Server التالي على Linux غير مدعوم ل Azure SQL Edge. إذا تم تعريفه، يتم تجاهل متغير البيئة هذا أثناء تهيئة الحاوية.

متغير البيئة ‏‏الوصف
MSSQL_ENABLE_HADR تمكين مجموعة التوفر. على سبيل المثال، 1 تم تمكين وتعطيل 0 .

هام

يقبل متغير البيئة MSSQL_PID ل SQL Edge فقط Premium و Developer كقيم صالحة. لا يدعم Azure SQL Edge التهيئة باستخدام مفتاح منتج.

تحديد متغيرات البيئة

حدد متغيرات البيئة ل SQL Edge عند نشر الخدمة من خلال مدخل Microsoft Azure. يمكنك إضافتها إما في قسم متغيرات البيئة من نشر الوحدة النمطية أو كجزء من خيارات إنشاء الحاوية.

إضافة قيم في متغيرات البيئة.

Screenshot of set by using environment variables list.

إضافة قيم في Container Create Options.

Screenshot of set by using container create options.

إشعار

في وضع التوزيع غير المتصل، يمكن تحديد متغيرات البيئة باستخدام -e أو --env--env-file خيار docker run الأمر .

التكوين باستخدام mssql.conf ملف

لا يتضمن Azure SQL Edge الأداة المساعدة لتكوين mssql-conf مثل SQL Server على Linux. تحتاج إلى تكوين ملف mssql.conf يدويا ووضعه في محرك أقراص التخزين المستمر الذي تم تعيينه إلى المجلد /var/opt/mssql/ في وحدة SQL Edge. عند نشر SQL Edge من Azure Marketplace، يتم تحديد هذا التعيين كخيار Mounts في Container Create Options.

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

تمت إضافة خيارات mssql.conf الجديدة التالية ل Azure SQL Edge.

الخيار ‏‏الوصف
استرداد العميل اختر ما إذا كان SQL Server يرسل ملاحظات إلى Microsoft. لمزيد من المعلومات، راجع تعطيل جمع بيانات الاستخدام والتشخيص
دليل طلب المستخدم تعيين الدليل الهدف لملفات تدقيق تجميع بيانات الاستخدام والتشخيص. لمزيد من المعلومات، راجع التدقيق المحلي للاستخدام وجمع البيانات التشخيصية

لا تنطبق خيارات mssql.conf التالية على SQL Edge:

الخيار ‏‏الوصف
ملاحظات العملاء اختر ما إذا كان SQL Server يرسل ملاحظات إلى Microsoft.
ملف تعريف بريد قاعدة البيانات تعيين ملف تعريف بريد قاعدة البيانات الافتراضي ل SQL Server على Linux.
توفُّر عالٍ تمكين مجموعات التوفر.
منسق المعاملات الموزعة من Microsoft تكوين واستكشاف أخطاء MSDTC وإصلاحها على Linux. خيارات التكوين الإضافية المتعلقة بالمعاملات الموزعة غير مدعومة ل SQL Edge. لمزيد من المعلومات حول خيارات التكوين الإضافية هذه، راجع تكوين MSDTC.
ML Services EULAs اقبل R وPython EULAs لحزم Azure التعلم الآلي. ينطبق على SQL Server 2019 فقط.
الوصول إلى الشبكة الصادرة تمكين الوصول إلى الشبكة الصادرة لملحقات التعلم الآلي Services R وPython وJava.

يعمل نموذج ملف mssql.conf التالي مع SQL Edge. لمزيد من المعلومات حول تنسيق mssql.conf ملف، راجع تنسيق 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

تشغيل Azure SQL Edge كمستخدم غير جذر

بشكل افتراضي، يتم تشغيل حاويات Azure SQL Edge مع مستخدم/مجموعة غير جذر. عند نشرها من خلال Azure Marketplace (أو باستخدام docker run)، ما لم يتم تحديد مستخدم/مجموعة مختلفة، تبدأ حاويات SQL Edge كمستخدم mssql (غير الجذر). لتحديد مستخدم مختلف غير جذري أثناء النشر، أضف *"User": "<name|uid>[:<group|gid>]"* زوج قيمة المفتاح ضمن خيارات إنشاء الحاوية. في المثال التالي، تم تكوين SQL Edge للبدء كمستخدم *IoTAdmin*.

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

للسماح للمستخدم غير الجذر بالوصول إلى ملفات DB الموجودة على وحدات التخزين المثبتة، تأكد من أن المستخدم/المجموعة التي تقوم بتشغيل الحاوية ضمنها، لديه أذونات القراءة والكتابة على تخزين الملفات المستمر. في المثال التالي، قمنا بتعيين المستخدم غير الجذر مع user_id10001 كمالك الملفات.

chown -R 10001:0 <database file dir>

الترقية من إصدارات CTP السابقة

تم تكوين CTPs السابقة من Azure SQL Edge للتشغيل كمستخدمي الجذر. تتوفر الخيارات التالية عند الترقية من CTPs السابقة.

  • استمر في استخدام المستخدم الجذر - لمتابعة استخدام المستخدم الجذر، أضف *"User": "0:0"* زوج قيمة المفتاح ضمن خيارات إنشاء الحاوية.

  • استخدم مستخدم mssql الافتراضي - لاستخدام مستخدم mssql الافتراضي، اتبع الخطوات التالية:

    • إضافة مستخدم باسم mssql على مضيف Docker. في المثال أدناه، نضيف مستخدم mssql مع المعرف 10001. تتم إضافة هذا المستخدم أيضا إلى مجموعة الجذر.

      sudo useradd -M -s /bin/bash -u 10001 -g 0 mssql
      
    • تغيير الإذن على وحدة تخزين الدليل/التحميل حيث يوجد ملف قاعدة البيانات

      sudo chgrp -R 0 /var/lib/docker/volumes/kafka_sqldata/
      sudo chmod -R g=u /var/lib/docker/volumes/kafka_sqldata/
      
  • استخدام حساب مستخدم مختلف غير جذري - لاستخدام حساب مستخدم مختلف غير جذري

    • قم بتحديث خيارات إنشاء الحاوية لتحديد إضافة *"User": "user_name | user_id* زوج قيمة المفتاح ضمن خيارات إنشاء الحاوية. استبدل user_name أو user_id user_name الفعلي أو user_id من مضيف Docker.
    • تغيير الأذونات على وحدة تخزين الدليل/التحميل.

الاحتفاظ ببياناتك

تستمر تغييرات تكوين Azure SQL Edge وملفات قاعدة البيانات في الحاوية حتى إذا قمت بإعادة تشغيل الحاوية باستخدام docker stop و docker start. ومع ذلك، إذا قمت بإزالة الحاوية باستخدام docker rm، يتم حذف كل شيء في الحاوية، بما في ذلك Azure SQL Edge وقواعد البيانات الخاصة بك. يشرح القسم التالي كيفية استخدام وحدات تخزين البيانات لاستمرار ملفات قاعدة البيانات حتى إذا تم حذف الحاويات المقترنة.

هام

بالنسبة إلى Azure SQL Edge، من المهم أن تفهم استمرار البيانات في Docker. بالإضافة إلى المناقشة في هذا القسم، راجع وثائق Docker حول كيفية إدارة البيانات في حاويات Docker.

تحميل دليل مضيف كحجم بيانات

الخيار الأول هو تحميل دليل على المضيف الخاص بك كحجم بيانات في الحاوية الخاصة بك. للقيام بذلك، استخدم docker run الأمر مع العلامة -v <host directory>:/var/opt/mssql . يسمح هذا باستعادة البيانات بين عمليات تنفيذ الحاوية.

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

تمكنك هذه التقنية أيضا من مشاركة الملفات وعرضها على المضيف خارج Docker.

هام

لا يدعم تعيين وحدة تخزين المضيف ل Docker على Windows حاليا تعيين الدليل الكامل /var/opt/mssql . ومع ذلك، يمكنك تعيين دليل فرعي، مثل /var/opt/mssql/data الجهاز المضيف.

هام

لا يتم دعم تعيين وحدة تخزين المضيف ل Docker على macOS باستخدام صورة Azure SQL Edge في الوقت الحالي. استخدم حاويات وحدة تخزين البيانات بدلا من ذلك. هذا التقييد خاص بالدليل /var/opt/mssql . القراءة من دليل مثبت يعمل بشكل جيد. على سبيل المثال، يمكنك تحميل دليل مضيف باستخدام -v على macOS واستعادة نسخة احتياطية من .bak ملف موجود على المضيف.

استخدام حاويات وحدة تخزين البيانات

الخيار الثاني هو استخدام حاوية وحدة تخزين البيانات. يمكنك إنشاء حاوية وحدة تخزين بيانات عن طريق تحديد اسم وحدة تخزين بدلا من دليل مضيف مع المعلمة -v . ينشئ المثال التالي وحدة تخزين بيانات مشتركة تسمى sqlvolume.

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

إشعار

لا تعمل هذه التقنية لإنشاء وحدة تخزين بيانات ضمنيا في أمر التشغيل مع الإصدارات القديمة من Docker. في هذه الحالة، استخدم الخطوات الصريحة الموضحة في وثائق Docker، إنشاء حاوية وحدة تخزين بيانات وتركيبها.

حتى إذا قمت بإيقاف هذه الحاوية وإزالتها، يستمر حجم البيانات. يمكنك عرضه باستخدام docker volume ls الأمر .

docker volume ls

إذا قمت بعد ذلك بإنشاء حاوية أخرى بنفس اسم وحدة التخزين، فإن الحاوية الجديدة تستخدم نفس بيانات Azure SQL Edge المضمنة في وحدة التخزين.

لإزالة حاوية وحدة تخزين بيانات، استخدم docker volume rm الأمر .

تحذير

إذا قمت بحذف حاوية وحدة تخزين البيانات، يتم حذف أي بيانات Azure SQL Edge في الحاوية نهائيا .

الخطوات التالية