تقنية المعلومات والأمن السيبراني

إدارة قواعد بيانات PostgreSQL وضبط الأداء

لمهندسي قواعد البيانات وفرق DevOps الذين يشغلون PostgreSQL في الإنتاج: ضبط الاستعلامات والتنظيف والأمن والنسخ الاحتياطي والتوفر العالي

مقدمة

تصل كثير من قواعد بيانات PostgreSQL إلى بيئة الإنتاج بإعدادات افتراضية ونسخ احتياطية لم تختبر استعادتها وفهارس تضاف بعد شكوى المستخدمين، فتتكرر الأعطال وتضخم الجداول وبطء الاستعلامات. تدرب هذه الدورة من كور كونسبت المهندسين على إدارة قواعد بيانات PostgreSQL من الداخل: كيف يستخدم الخادم العمليات والذاكرة وسجل الكتابة المسبقة، وكيف تصمم المخططات وتضبط الاستعلامات باستخدام EXPLAIN وتدار آلية MVCC والتنظيف، وتحكم الصلاحيات، وتستعاد البيانات إلى نقطة زمنية، وتشغل النسخ المتماثلة مع التحويل التلقائي عند الفشل. ويخرج المشارك بدليل تشغيل جاهزية الإنتاج لقاعدة بيانات صممها وضبطها وأمنها في المختبر.

أهداف الدورة

  • تهيئة عنقود PostgreSQL وتحديد موارده انطلاقا من بنية العمليات والذاكرة والتخزين وسجل الكتابة المسبقة
  • تصميم مخططات وأنواع بيانات وقيود وتقسيمات تتحمل أحمال الكتابة والقراءة في بيئة الإنتاج
  • تشخيص الاستعلامات البطيئة باستخدام EXPLAIN ANALYZE وإحصاءات المخطط وطرق الوصول للفهارس وإزالة الاختناق
  • ضبط المعاملات المتزامنة وتضخم MVCC والتفاف معرفات المعاملات عبر اختيار مستويات العزل وضبط التنظيف التلقائي
  • تأمين قاعدة البيانات واستعادتها بالأدوار وأمن مستوى الصف والاتصالات المشفرة والنسخ المنطقية والاستعادة إلى نقطة زمنية
  • تشغيل النسخ المتماثل التدفقي والمنطقي مع التحويل التلقائي عند الفشل ومراقبة صحة أحمال العمل وفق مؤشرات محددة

الفئة المستهدفة

  • فرق إدارة قواعد البيانات المسؤولة عن توفر خوادم PostgreSQL وأدائها واستعادتها
  • مطورو الأنظمة الخلفية الذين يكتبون المخططات والاستعلامات والمنطق المخزن على PostgreSQL
  • مهندسو البيانات الذين يحملون البيانات التشغيلية المخزنة في PostgreSQL ويحولونها ويقدمونها
  • فرق DevOps والمنصات التي تجهز البنية التحتية لقواعد البيانات وتؤتمتها وتراقبها محليا أو في السحابة
  • فرق موثوقية المواقع التي تتعامل مع حوادث قواعد البيانات والتحويل عند الفشل وتنبيهات السعة
  • فرق مشاريع الترحيل التي تنقل أحمال العمل من محركات قواعد البيانات التجارية إلى PostgreSQL

محاور الدورة

اليوم 1: بنية خادم PostgreSQL: العمليات والذاكرة والتخزين

  • نموذج العمليات: العملية الرئيسية Postmaster وعمليات الخدمة والعمليات الخلفية
  • مناطق الذاكرة: shared_buffers وwork_mem وmaintenance_work_mem
  • هيكل مجلد البيانات: مساحات الجداول وملفات العلاقات والصفحات وآلية TOAST
  • سجلات الكتابة المسبقة WAL ونقاط التحقق وتسلسل الاستعادة بعد الانهيار
  • سياسة دعم الإصدارات والتحديثات الفرعية ومسارات الترقية الرئيسية بأداة pg_upgrade

اليوم 2: التثبيت والتهيئة وتصميم المخططات

  • التثبيت من الحزم والحاويات وتهيئة العنقود بأداة initdb
  • سياقات معاملات postgresql.conf والأمر ALTER SYSTEM وقواعد المصادقة في pg_hba.conf
  • اختيار أنواع البيانات: numeric وtimestamptz وuuid والمصفوفات والنطاقات والتعدادات
  • القيود والمفاتيح الأجنبية والأعمدة المولدة والتقسيم التصريحي للجداول
  • المخططات ومسار البحث search_path وأعراف التسمية لقواعد البيانات متعددة التطبيقات

اليوم 3: لغة SQL المتقدمة لمطوري قواعد البيانات

  • تعبيرات الجداول المشتركة التكرارية للهياكل الهرمية وتتبع الرسوم البيانية
  • إطارات دوال النوافذ لتحليل الفجوات والجزر والمجاميع المتحركة
  • عوامل JSONB واستعلامات مسارات SQL/JSON والنماذج الهجينة بين المستندات والجداول
  • دوال وإجراءات PL/pgSQL وتصميم القوادح
  • الإدراج أو التحديث بعبارة INSERT ON CONFLICT وعبارات MERGE

اليوم 4: استراتيجيات الفهرسة وضبط الاستعلامات باستخدام EXPLAIN

  • طرق الوصول للفهارس: B-tree وHash وGIN وGiST وSP-GiST وBRIN
  • تصميم الفهارس الجزئية والتعبيرية والمغطية ومتعددة الأعمدة
  • قراءة خطط EXPLAIN ANALYZE BUFFERS: عقد المسح وخوارزميات الربط وتقدير الصفوف
  • إحصاءات المخطط والأمر ANALYZE والمعامل default_statistics_target والإحصاءات الموسعة
  • توليد الأحمال بأداة pgbench والتقاط الخطط البطيئة بامتداد auto_explain

اليوم 5: المعاملات وآلية MVCC والتنظيف: حالة موجهة لقاعدة بيانات معاملات كثيفة

  • مستويات عزل المعاملات: Read Committed وRepeatable Read وSerializable
  • رؤية الصفوف في MVCC والحقلان xmin وxmax والتفاف معرفات المعاملات
  • الأمر VACUUM وعتبات التنظيف التلقائي وتشخيص تضخم الجداول بامتداد pgstattuple
  • أنماط الأقفال واكتشاف الجمود وتحليل التنازع عبر pg_locks
  • حالة موجهة: تشخيص قاعدة بيانات بطيئة لمعالجة الطلبات من الخطط والأقفال والتضخم

اليوم 6: النسخ المتماثل والتوفر العالي

  • بناء النسخ المتماثل التدفقي بأداة pg_basebackup وفتحات النسخ المتماثل
  • التثبيت المتزامن وغير المتزامن للمعاملات وضبط synchronous_standby_names
  • النسخ المتماثل المنطقي بالمنشورات والاشتراكات للمزامنة الانتقائية والترقية بأقل توقف
  • التحويل التلقائي عند الفشل باستخدام Patroni ومخزن إعدادات موزع
  • تجميع الاتصالات وتوجيهها باستخدام PgBouncer وHAProxy

اليوم 7: التحكم في الوصول وأمن مستوى الصف وضمان الاستعادة

  • هرمية الأدوار والأدوار المعرفة مسبقا والأمر GRANT والصلاحيات الافتراضية
  • سياسات أمن مستوى الصف: المتساهلة والتقييدية والرفض الافتراضي
  • المصادقة بآلية SCRAM-SHA-256 واتصالات TLS وتسجيل الجلسات بامتداد pgaudit
  • النسخ الاحتياطي المنطقي بأداتي pg_dump وpg_dumpall والاستعادة المتوازية بأداة pg_restore
  • الأرشفة المستمرة لسجل WAL والاستعادة إلى نقطة زمنية باستخدام pgBackRest

اليوم 8: PostgreSQL المدار سحابيا والامتدادات وتسليم التغييرات

  • نماذج الخدمات المدارة: Amazon RDS وAurora وAzure Database for PostgreSQL وGoogle Cloud SQL
  • حدود المسؤولية المشتركة ومجموعات المعاملات في الخدمات المدارة
  • نظرة عامة على الامتدادات: PostGIS وpg_trgm وpg_partman وTimescaleDB
  • مسارات ترحيل المخططات باستخدام Flyway أو Liquibase ومراجعة الأقران
  • نوافذ الصيانة وأدلة التشغيل وإشعارات التغيير لفرق التطبيقات

اليوم 9: المراقبة ومؤشرات أداء قواعد البيانات وتخطيط السعة

  • ترتيب أحمال العمل بامتداد pg_stat_statements حسب زمن التنفيذ الكلي والمتوسط
  • عروض الإحصاءات التراكمية: pg_stat_activity وpg_stat_io وpg_stat_replication
  • لوحات مؤشرات قواعد البيانات باستخدام postgres_exporter وPrometheus وGrafana
  • تحليل السجلات بالمعامل log_min_duration_statement وتقارير pgBadger
  • توقعات السعة لنمو التخزين وعدد الاتصالات وعمليات الإدخال والإخراج في الثانية

اليوم 10: المشروع الختامي: تصميم قاعدة بيانات إنتاجية وضبطها وتأمينها

  • موجز المشروع الختامي: متطلبات قاعدة بيانات معاملات متعددة المستأجرين ومستويات الخدمة
  • بناء المخطط والتقسيم والفهارس لحمل العمل في المشروع الختامي
  • اختبار الحمل ودورات الضبط باستخدام pgbench وأدلة EXPLAIN
  • تهيئة الأمن والنسخ الاحتياطي والنسخة المتماثلة واختبار الاستعادة
  • عرض دليل تشغيل جاهزية الإنتاج لقاعدة PostgreSQL ومراجعة الأقران

المهارات التي ستكتسبها

  • تهيئة خادم PostgreSQL
  • هندسة المخططات العلائقية
  • تحليل خطط التنفيذ
  • تصميم الفهارس
  • إدارة التنظيف التلقائي والتضخم
  • تشغيل النسخ المتماثل والتحويل عند الفشل
  • تحصين الوصول إلى قواعد البيانات
  • النسخ الاحتياطي والاستعادة إلى نقطة زمنية

لماذا تحضر هذه الدورة

  • بناء قاعدة بيانات PostgreSQL وضبطها عمليا في المختبر، من initdb مرورا بالنسخ المتماثل حتى استعادة مختبرة
  • الوصول إلى السبب الفعلي لبطء الاستعلامات وانتظار الأقفال والتضخم بدلا من إضافة عتاد أو فهارس عشوائية
  • إنهاء الأسبوع الأول بالقدرة على تشغيل خادم واحد بكفاءة، والأسبوع الثاني بالقدرة على تشغيله متماثلا ومؤمنا ومراقبا وفي السحابة
  • العودة بدليل تشغيل جاهزية الإنتاج يغطي التهيئة والفهرسة والأمن والنسخ الاحتياطي والتحويل عند الفشل والمراقبة

الخاتمة

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

المواعيد والوجهات

هذا البرنامج في الوجهات

فريقك. أولوياتك.

برنامج مصمم لمؤسستك، يُقدّم في مقر العمل أو عن بُعد أو في مدينتك المفضلة.

ناقش احتياجات فريقك ↗