فهم بنية PostgreSQL

مكتمل

PostgreSQL هو نظام إدارة قاعدة بيانات ارتباطية للعميل/الخادم (RDMS). يدعم PostgreSQL أيضا مجموعة واسعة من الملحقات، مثل ملحق Citus في خيار Azure Cosmos DB ل PostgreSQL. بعد تحميل ملحق في قاعدة البيانات، فإنه يعمل مثل أي ميزة مضمنة.

يمتلك PostgreSQL كذلك لغة استعلام خاصة به تسمى pgsql. بالإضافة إلى ذلك، يدعم PostgreSQL اللغات الإجرائية مثل Ruby on Rails.

لقطة شاشة تعرض ملحقات PostgreSQL ولغاته.

بنية العميل/الخادم

يستند PostgreSQL إلى بنية العميل/الخادم. يخزن الخادم البيانات ويديرها ويعيدها إلى برامج العميل. تطلب برامج العملاء البيانات باستخدام pgSQL، أو إحدى اللغات الإجرائية التي يدعمها PostgreSQL، مثل PL/pgSQL.

تتكون جلسة PostgreSQL من ثلاثة أجزاء:

  • Postmaster
  • تطبيق العميل
  • الخادم

Postmaster

Postmaster هو عملية البرنامج الخفي الإشرافي الذي يدير خادم PostgreSQL. يدير البرنامج الخفي postmaster الاتصال بين عمليات الخادم المختلفة بما في ذلك تهيئة الخادم وإيقاف تشغيل الخادم ومعالجة طلبات الاتصال وتنفيذ عمليات الخلفية الأخرى. في قاعدة بيانات Azure لخادم PostgreSQL، ليس لديك حق الوصول إلى نظام الملفات، أو إلى عملية Postmaster.

تطبيقات العميل

يقوم العملاء بتشغيل الاستعلامات والتفاعل مع قواعد البيانات على قاعدة بيانات Azure لخادم PostgreSQL. لتشغيل الاستعلامات، تحتاج إلى أداة عميل مثل Azure Data Studio أو DBeaver أو pgAdmin أو psql. يمكنك التعرف على أدوات العميل في الوحدة التالية.

عمليات الخوادم

نظام المجموعة - يمكن لخادم PostgreSQL واحد استضافة قواعد بيانات مستخدم متعددة. يشير PostgreSQL إلى هذه المجموعة من قواعد البيانات باسم نظام مجموعة. كل قاعدة بيانات منفصلة عن الأخرى، ويتفاعل المستخدمون والتطبيقات مع قاعدة بيانات واحدة. يتم إنشاء المستخدمين على مستوى نظام المجموعة أو الخادم.

يتم تخزين البيانات لقواعد البيانات هذه في دليل بيانات نظام المجموعة المسمى PGDATA. يتضمن دليل بيانات PGDATA ملفاً يحتوي على إصدار PostgreSQL يكون قيد التشغيل، وpg_tblspc الذي يحتوي على ارتباطات إلى مساحات الجداول، وpg_xlog الذي يحتوي على ملفات سجل الكتابة المسبقة.

إشعار

قواعد بيانات Azure لـ PostgreSQL هي خدمة تدير التخزين ونظام الملفات الأساسي. بصفتك مستخدماً لهذا الخادم، ليس لديك حق الوصول المباشر إلى دليل PGDATA أو أي من الدلائل الفرعية الخاصة به.

بالإضافة إلى قواعد البيانات التي تقوم بإنشائها، هناك ثلاث قواعد بيانات للنظام:

  • postgres - قاعدة البيانات الافتراضية. بعد إنشاء الخادم الخاص بك، يمكنك الاتصال بقاعدة بيانات postgres.
  • azure_maintenance - قاعدة البيانات التي تدير عمليات الخدمة. ليس لديك حق الوصول المباشر إلى قاعدة البيانات هذه.
  • azure_sys - قاعدة بيانات متجر الاستعلامات. يجب عليك عدم تعديل قاعدة بيانات azure_sys أو مخططاتها. يؤدي تغيير أي شيء في azure_sys إلى منع Query Store وميزات الأداء الأخرى من العمل بشكل صحيح.

المخططات - المخطط هو تجميع مسمى لعناصر في قاعدة البيانات. تستفيد قواعد البيانات الكبيرة التي بها العديد من العناصر من تنظيم العناصر في المخططات. على سبيل المثال، إنشاء مخطط للكائنات ذات الصلة بالمبيعات، ومخطط للكائنات ذات الصلة بالعميل يسهل العثور على الكائن الصحيح.

معلمات الخادم - يحتوي PostgreSQL على العديد من ملفات التكوين، والتي تحدد كيفية عمل محرك قاعدة البيانات. يسمى ملف تكوين PostgreSQL الرئيسي postgresql.conf.

استبدلت قاعدة بيانات Azure ل PostgreSQL ملفات التكوين هذه بمعلمات الخادم، والتي يمكن الوصول إليها عبر مدخل Microsoft Azure، أو باستخدام Azure CLI.

لعرض معلمات الخادم أو تعديلها في مدخل Microsoft Azure:

  1. انتقل إلى قاعدة بيانات Azure لخادم PostgreSQL الخاصة بك.
  2. من القائمة اليسرى، ضمن Settings، حدد Server parameters.
  3. استخدم شريط البحث لتصفية قائمة المعلمات أو حدد رقم الصفحة الذي تريده.

التخزين - تدير قاعدة بيانات Azure لـ PostgreSQL تخزين البيانات نيابة عنك ويتم توفيرها على مستوى الخادم. سواء قمت بتحديد مستوى حساب قابل للاندفاع أو الغرض العام أو الذاكرة المحسنة، يمكنك استخدام ما يصل إلى 32 تيرابايت من التخزين. لتوفير التخزين، انتقل إلى قاعدة بيانات Azure لخادم PostgreSQL، ومن قسم نظرة عامة حدد التكوين الخاص بك. يتم عرض قسم Compute + Storage. ضمن التخزين، وحجم التخزين (بالجيجابايت) استخدم شريط التمرير لتحديد مقدار التخزين الذي تريد توفيره.

إن مقدار التخزين الذي توفره يحدد سعة الإدخال/الإخراج المتاحة لقاعدة بيانات Azure لخادم PostgreSQL. يمكنك مراقبة استهلاك الإدخال/ الإخراج في مدخل Microsoft Azure أو باستخدام أوامر Azure CLI. المقاييس ذات الصلة التي يجب مراقبتها هي حد التخزين ونسبة التخزين والتخزين المستخدم ونسبة الإدخال/ الإخراج.

إشعار

يمكنك زيادة مقدار التخزين بعد إنشاء قاعدة بيانات Azure لخادم PostgreSQL، ولكن لا يمكنك تقليل مقدار التخزين.

مساحات الجداول - مع تنفيذ محلي لخادم PostgreSQL، يمكنك إنشاء مساحات جداول مرتبطة بمنطقة التخزين الرئيسية المسماة PGDATA باستخدام الدليل الفرعي pg_tblspc. لا تدعم قاعدة بيانات Azure لـ PostgreSQL مساحات الجداول: يتم إنشاء جميع الجداول في منطقة التخزين الرئيسية.

كتالوجات النظام - يحتوي PostgreSQL على العديد من جداول النظام وطرق العرض التي تخزن معلومات حول العناصر في قاعدة البيانات. على سبيل المثال، تقوم pg_database بإرجاع جميع قواعد البيانات على خادم وتخزن pg_class إحصائيات حول الجداول.

إشعار

تسمح قاعدة بيانات Azure لـ PostgreSQL بالوصول إلى بعض كتالوجات النظام وليس كلها.

الملحقات - يدعم PostgreSQL مجموعة من الملحقات التي توسع الوظيفة الأساسية لمحرك قاعدة البيانات. يتم توفير هذه الملحقات على مستودع يسمى PostgreSQL Extensions Network (PGXN).

لاستخدام ملحق PostgreSQL، يجب تثبيته في قاعدة البيانات الخاصة بك. لتثبيت ملحق ما، قم بتشغيل الأمر CREATE EXTENSION من أداة psql لتحميل الملحق في قاعدة البيانات الخاصة بك. على سبيل المثال:

SELECT create_extension('postgis');

لمعرفة الملحقات التي تدعم قاعدة بيانات Azure ل PostgreSQL، قم بتشغيل الاستعلام التالي:

SELECT * FROM pg_available_extensions;

تتضمن كل قواعد بيانات Azure لخوادم PostgreSQL ملحق pg_stat_statements. تم تثبيت هذا الملحق بالفعل لتوفير وظائف لتتبع إحصائيات تنفيذ عبارات SQL. تحدد معلمة الخادم pg_stat_statements.track العبارات التي يتم حسابها بواسطة الملحق. الخيارات هي:

  • الأفضل - يتعقب جميع العبارات الصادرة مباشرة عن العملاء (افتراضي).
  • بلا - لا يتم تعقب أي عبارات.
  • الكل - يتعقب جميع العبارات بما في ذلك العبارات المتداخلة والعبارات التي يتم استدعاؤها بواسطة الدالات.

إشعار

هناك حمل على الأداء على الخادم لتسجيل كل عبارة SQL. إذا لم تكن تستخدم pg_stat_statements بنشاط، فقم بتعيين هذه المعلمة إلى "بلا". لاحظ أيضاً أن بعض خدمات المراقبة التابعة لجهة خارجية قد تعتمد على pg_stat_statements.

محسّن الاستعلامات - يستخدم PostgreSQL طريقة تحسين استعلام مستندة إلى التكلفة. يتحقق المحلل من بناء جملة الاستعلام ويفصل الاستعلام إلى أجزاء مختلفة. ينشئ المحلل شجرة تحليل ويمرر الاستعلام إلى إعادة الكتابة، والذي يطبق القواعد على الاستعلام. يكتشف المخطط أفضل طريقة لتنفيذ الاستعلام قبل تنفيذ الاستعلام.

عمليات الواجهة الخلفية - عملية PostgreSQL- لكل نموذج معاملة. عند اتصال مستخدم جديد، يقوم PostgreSQL بمصادقة المستخدم وإنشاء عملية خادم الخلفية للتعامل مع الاتصال. يتفاعل العميل فقط مع عملية الخادم عند إرسال الاستعلامات وتلقي نتيجة الاستعلامات.