انشر Azure SQL Edge باستخدام Docker

هام

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

عند البدء السريع، يمكنك استخدام Docker لسحب صورة حاوية Azure SQL Edge وتشغيلها. ومن ثم الاتصال بـ sqlcmd لإنشاء قاعدة البيانات الأولى لك وإجراء الاستفسارات.

تتكون هذه الصورة من SQL Edge استنادا إلى Ubuntu 18.04. يمكن استخدامه مع Docker Engine 1.8+ على Linux.

حاويات Azure SQL Edge غير مدعومة على الأنظمة الأساسية التالية لأحمال عمل الإنتاج:

  • Windows
  • macOS
  • Azure IoT Edge لنظام التشغيل Linux على Windows (EFLOW)

المتطلبات الأساسية

  • Docker Engine 1.8+ على أي توزيع Linux مدعوم. لمزيد من المعلومات، راجع تثبيت Docker. نظرا لأن صور SQL Edge تستند إلى Ubuntu 18.04، نوصي باستخدام مضيف Ubuntu 18.04 Docker.
  • Docker overlay2 وحدة تخزين. هذا الإعداد هو الإعداد الافتراضي لمعظم المستخدمين. إذا وجدت أنك لا تستخدم موفر التخزين هذا وتحتاج إلى التغيير، فشاهد الإرشادات والتحذيرات في وثائق Docker لتكوين التراكب2.
  • ويكون الحد الأدنى لمساحة القرص 10 غيغابايت.
  • والحد الأدنى لذاكرة الوصول العشوائي 1 غيغابايت.
  • متطلبات حواسيب Azure SQL Edge.

ملاحظة

تستخدم أوامر الاستخدام المذكورة في هذه sudo المقالة. إذا كنت لا تريد استخدام sudo لتشغيل Docker، يمكنك تكوين مجموعة Docker وإضافة مستخدمين إلى تلك المجموعة. لمزيد من المعلومات، راجع خطوات ما بعد تثبيت Linux.

سحب وتشغيل صورة الحاوية

  1. سحب صورة حاوية Azure SQL Edge من Microsoft Container Registry.

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

    يسحب الأمر السابق أحدث صورة حاوية SQL Edge. لمشاهدة جميع الصور المتوفرة، راجع صفحة Azure-sql-edge Docker hub.

  2. لتشغيل صورة الحاوية باستخدام Docker، استخدم الأمر التالي من bash shell:

    • ابدأ تشغيل مثيل Azure SQL Edge يعمل كإصدار المطور:

      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
      
    • ابدأ تشغيل مثيل Azure SQL Edge يعمل كإصدار Premium:

      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
      

    هام

    يجب أن تتبع كلمة المرور نهج كلمة المرور الافتراضية لمشغل قاعدة بيانات Microsoft SQL، وإلا فلن تتمكن الحاوية من إعداد محرك قاعدة بيانات SQL وستتوقف عن العمل. بشكل افتراضي، يجب أن يكون طول كلمة المرور 8 أحرف على الأقل وأن تحتوي على أحرف من ثلاث مجموعات من المجموعات الأربع التالية: الأحرف الكبيرة والأحرف الصغيرة والأرقام الأساسية-10 والرموز. يمكنك فحص سجل الأخطاء من خلال تنفيذ أمر docker سجلات.

    يوفر الجدول التالي وصفا للمعلمات في الأمثلة السابقة docker run :

    المعلمة الوصف
    -e "ACCEPT_EULA=Y" تعيين المتغير ACCEPT_EULA إلى أي قيمة لتأكيد قبولك لاتفاقية ترخيص المستخدم النهائي. الإعداد المطلوب لصورة SQL Edge.
    -e "MSSQL_SA_PASSWORD=yourStrong(!)Password" حدد كلمة المرور القوية الخاصة بك التي لا تقل عن ثمانية أحرف وتلبي متطلبات كلمة مرور Azure SQL Edge. الإعداد المطلوب لصورة SQL Edge.
    -p 1433:1433 تعيين منفذ TCP على بيئة المضيف (القيمة الأولى) بمنفذ TCP في الحاوية (القيمة الثانية). في هذا المثال، يستمع SQL Edge على TCP 1433 في الحاوية ويتم عرض هذا للمنفذ، 1433، على المضيف.
    --اختر اسماً لـ azuresqledge حدد اسماً مخصصاً للحاوية بدلاً من اسم أُنشئ عشوائياً. إذا قمت بتشغيل أكثر من حاوية واحدة، فلا يمكنك إعادة استخدام هذا الاسم نفسه.
    -d تشغيل الحاوية في الخلفية (الخفي)

    للحصول على قائمة كاملة بجميع متغيرات بيئة Azure SQL Edge، راجع تكوين Azure SQL Edge مع متغيرات البيئة. يمكنك أيضا استخدام ملف mssql.conf لتكوين حاويات SQL Edge.

  3. لعرض حاويات Docker، استخدم docker ps الأمر.

    sudo docker ps -a
    
  4. إذا كان عمود STATUS يعرض حالة لأعلى، فإن SQL Edge قيد التشغيل في الحاوية ويستمع إلى المنفذ المحدد في عمود PORTS . إذا كان عمود STATUS لحاوية SQL Edge يظهر Exited، فراجع قسم استكشاف الأخطاء وإصلاحها في وثائق Azure SQL Edge.

    المعلمة -h (اسم المضيف) مفيدة أيضا، ولكنها لا تستخدم في هذا البرنامج التعليمي للتبسيط. يغير هذا الاسم الداخلي للحاوية إلى قيمة مخصصة. هذا هو الاسم الذي يتم إرجاعه في استعلام Transact-SQL التالي:

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

    ضبط -h أيضاً --name إلى القيمة ذاتها وسيلة جيدة لتحديد الحاوية الهدف بسهولة.

  5. وأخيراً، غير كلمة مرور SA لأن المخرج MSSQL_SA_PASSWORD المرئي ps -eax والمخزن في متغير البيئة يحمل الاسم نفسه. راجع الخطوات التالية.

تغيير كلمة مرور SA

حسابSA مسؤول نظام مثيل على Azure SQL Edge التي أنشئت في أثناء الإعداد. بعد إنشاء حاوية SQL Edge، يكون متغير البيئة الذي MSSQL_SA_PASSWORD حددته قابلا للاكتشاف عن طريق التشغيل echo $MSSQL_SA_PASSWORD في الحاوية. ولأغراض أمنية، غير كلمة مرور SA.

  1. اختر كلمة مرور قوية لمستخدم SA.

  2. استخدم docker exec لتشغيل sqlcmd لتغيير كلمة المرور باستخدام Transact-SQL. في المثال التالي، استبدل كلمة المرور القديمة <YourStrong!Passw0rd> وكلمة المرور الجديدة <YourNewStrong!Passw0rd> بقيم كلمة المرور الخاصة بك.

    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

تستخدم الخطوات التالية أداة سطر الأوامر Azure SQL Edge، sqlcmd، داخل الحاوية للاتصال ب SQL Edge.

  1. استخدم docker exec -it الأمر لبدء الاستخدام التفاعلي داخل الحاوية قيد التشغيل. في المثال التالي، azuresqledge هو الاسم المحدد بواسطة المعلمة --name عند إنشاء الحاوية.

    sudo docker exec -it azuresqledge "bash"
    
  2. بمجرد داخل الحاوية، اتصل محليا ب sqlcmd. sqlcmd ليس في المسار بشكل افتراضي، لذلك يجب عليك تحديد المسار الكامل.

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

    تلميح

    يمكنك حذف كلمة المرور على سطر الأوامر لتتم المطالبة بإدخالها.

  3. في حال نجاحك، يتعين الحصول على موجه أوامرsqlcmd:1>.

إنشاء بيانات استعلامية

ترشدك الأقسام التالية خلال استخدام sqlcmd وTransact-SQL لإنشاء قاعدة بيانات جديدة وإضافة بيانات وتشغيل استعلام.

إنشاء مصدر بيانات جديد

تنشئ الخطوات التالية قاعدة بيانات جديدة باسم جديد TestDB.

  1. من موجه الأوامر sqlcmd، الصق الأمر Transact-SQL التالي لإنشاء قاعدة بيانات مبدئية:

    CREATE DATABASE TestDB;
    GO
    
  2. في السطر التالي، اكتب استعلاماً لإرجاع الاسم ذاته لجميع قواعد البيانات على خادمك:

    SELECT name from sys.databases;
    GO
    

إدراج بيانات

ثم أنشئ جدول Inventory جديداً، وأدرج صفين جديدين.

  1. من موجه الأوامر sqlcmd بدل السياق إلى TestDB قاعدة البيانات الجديدة:

    USE TestDB;
    
  2. إنشاء جدول جديد اسمه Inventory :

    CREATE TABLE Inventory (
        id INT,
        name NVARCHAR(50),
        quantity INT
    );
    
  3. إدراج البيانات في الجدول الجديد:

    INSERT INTO Inventory
    VALUES (1, 'banana', 150);
    
    INSERT INTO Inventory
    VALUES (2, 'orange', 154);
    
  4. اكتب GO لتنفيذ الأوامر السابقة:

    GO
    

اختيار البيانات

الآن، قم بتشغيل استعلام لإرجاع البيانات من Inventory الجدول.

  1. من موجه الأوامر sqlcmd، أدخل استعلام بإرجاع صفوف من Inventory الجدول بحيث تكون كميته أكبر من 152:

    SELECT * FROM Inventory WHERE quantity > 152;
    
  2. تنفيذ الأمر:

    GO
    

إنهاء موجه الأوامر sqlcmd

  1. لإنهاء جلسة عمل sqlcmd، اكتب QUIT:

    QUIT
    
  2. لإنهاء موجه الأوامر التفاعلي في الحاوية، اكتب exit. يستمر تشغيل حاويتك حتى بعد الخروج من shell bash التفاعلية.

الاتصال من خارج الحاوية

يمكنك أيضا الاتصال بمثيل SQL Edge على جهاز Docker الخاص بك من أي أداة Linux أو Windows أو macOS خارجية تدعم اتصالات SQL. لمزيد من المعلومات حول الاتصال بحاوية SQL Edge من الخارج، راجع الاتصال والاستعلام عن Azure SQL Edge.

إزالة الحاوية

إذا كنت تريد إزالة حاوية SQL Edge المستخدمة في هذا البرنامج التعليمي، فقم بتشغيل الأوامر التالية:

sudo docker stop azuresqledge
sudo docker rm azuresqledge

تحذير

يؤدي إيقاف حاوية وإزالتها إلى حذف أي بيانات SQL Edge في الحاوية بشكل دائم. إذا كنت بحاجة إلى الحفاظ على البيانات الخاصة بك، أنشئ وانسخ ملف نسخ احتياطي من الحاوية أو استخدم تقنية ثبات بيانات الحاوية.

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