كيفية عمل نسخة احتياطية واستعادة قاعدة بيانات Matrix Synapse PostgreSQL

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

يفترض هذا الدليل وجود مضيف لينكس، وقاعدة بيانات PostgreSQL باسم synapse، ودور قاعدة بيانات باسم synapse_user. استبدل قاعدة البيانات، والدور، ومسار النسخ الاحتياطي، واسم الخدمة، ومسارات التكوين المستخدمة في عملية النشر الخاصة بك. تتطلب عمليات نشر Docker Compose وKubernetes وPostgreSQL المُدارة وSynapse متعددة قواعد البيانات أوامر مكافئة لبيئتها.

ما يحميه تفريغ قاعدة البيانات وما لا يحميه

pg_dumpيلتقط هذا الأمر لقطة متسقة لقاعدة بيانات PostgreSQL واحدة، مما يسمح لـ PostgreSQL وSynapse بالبقاء متصلين بالإنترنت أثناء عملية النسخ الاحتياطي. -Fcيمكن فحص الأرشيف ذي التنسيق المخصص واستعادته باستخدام الأمر ` pg_restoresynapse`. يوصي دليل Synapse تحديدًا باستبعاد بيانات الجداول ذات المفاتيح لمرة واحدة: فقد تؤدي استعادة المفاتيح القديمة المستخدمة إلى تلقي العملاء للمفاتيح مرة أخرى، مما قد يتسبب في أخطاء في فك تشفير الرسائل. قد يظل تعريف الجدول ظاهرًا في الأرشيف؛ عند التحقق من قائمة الأرشيف، ابحث عن إدخالات بيانات الجدول بدلًا من افتراض أن الجدول المدرج يحتوي على صفوف.

لا يُعدّ تفريغ قاعدة البيانات وحده نسخة احتياطية كاملة للخادم المنزلي. احتفظ أيضًا بنسخة احتياطية من قاعدة البيانات homeserver.yamlوأي ملفات مُشار إليها، ومفتاح توقيع الخادم، ودليل تخزين الوسائط. يُشير دليل النسخ الاحتياطي لبرنامج Synapse إلى أهمية الوسائط التي تم تحميلها محليًا، لأن الخادم المنزلي قد يحتوي على النسخة الوحيدة. إذا كان تكوينك يستخدم أكثر من مدخل قاعدة بيانات واحد، فخطط لتفريغ كل قاعدة بيانات يستخدمها Synapse.

قبل أن تبدأ

  • تأكد من اسم قاعدة البيانات المُكوّنة، والمستخدم، والمضيف، والمنفذ، وما إذا كان برنامج Synapse يستخدم قاعدة بيانات واحدة أو عدة قواعد بيانات.
  • تأكد من تثبيت أدوات عميل pg_dumpPostgreSQL pg_restoreو createdb...psql
  • اختر وجهة نسخ احتياطي محمية بمساحة تخزين كافية. قد تحتوي ملفات النسخ الاحتياطي على رسائل خاصة وبيانات حسابات؛ لذا قيّد الوصول إليها وقم بتشفير النسخ الاحتياطية أثناء التخزين وأثناء النقل.
  • سجّل دليل تكوين Synapse، ومسار مفتاح التوقيع، و media_store_path. احفظ نسخًا احتياطية من البيانات السرية دون كشفها في سجل الأوامر، أو المحادثات، أو السجلات.
  • حدد كيفية اختبار عملية الاستعادة. تُعدّ عملية الاستعادة التجريبية على مضيف معزول أو قاعدة بيانات تجريبية دليلاً أقوى من مجرد نجاح أمر النسخ الاحتياطي.

قم بإنشاء نسخة احتياطية من PostgreSQL والتحقق منها

1. تأكيد قاعدة البيانات المستهدفة والدور

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

يعرض طرفية PostgreSQL علاقات قاعدة بيانات Synapse ومالك synapse_user.
تساعد نظرة طرفية على علاقات Synapse ومالكها في التأكد من أن أمر النسخ الاحتياطي سيستهدف قاعدة البيانات المقصودة.

2. قم بإنشاء نسخة احتياطية بتنسيق مخصص

أنشئ مجلدًا لا يمكن قراءته إلا من قِبل حساب النسخ الاحتياطي أو المسؤولين. المثال أدناه يعمل pg_dumpباستخدام حساب نظام التشغيل المحلي لـ PostgreSQL ويكتب إلى مسار محمي. غيّر المسار إلى مسار موجود وقابل للكتابة في إعداداتك.

sudo -u postgres pg_dump -Fc \
  --exclude-table-data e2e_one_time_keys_json \
  synapse -f /var/backups/synapse/synapse.dump

إذا كانت قاعدة بياناتك بعيدة، فقم بتوفير إعدادات الاتصال باستخدام الطريقة المعتمدة في بيئتك، مثل .pgpassملف محمي أو متغيرات بيئة libpq. تجنب إدخال كلمة المرور مباشرةً في سطر الأوامر. احتفظ بخيار الاستبعاد إلا إذا كان لديك سبب موثق ومحدد للتعامل مع جدول المفتاح لمرة واحدة بشكل مختلف.

تشغيل طرفية pg_dump بتنسيق مخصص مع استبعاد بيانات e2e_one_time_keys_json، متبوعًا بقائمة الملفات.
يستثني أمر النسخ الاحتياطي البيانات ذات المفتاح لمرة واحدة ويكتب أرشيفًا بتنسيق مخصص للفحص لاحقًا باستخدام pg_restore.

3. تحقق من الأرشيف واحتفظ بمجموع التحقق

تأكد من وجود ملف النسخ الاحتياطي، وأن قيمته غير صفرية، وأنه قابل للقراءة كأرشيف PostgreSQL. يُعدّ عرض البيانات بنجاح فحصًا أوليًا مفيدًا، ولكنه لا يضمن اكتمال عملية الاستعادة أو قدرة الخادم الرئيسي بالكامل على خدمة المستخدمين.

sudo -u postgres pg_restore --list /var/backups/synapse/synapse.dump
sha256sum /var/backups/synapse/synapse.dump

احفظ مجموع التحقق بجانب سجل النسخ الاحتياطي، ثم انسخ النسخة الاحتياطية إلى نظام منفصل أو خدمة نسخ احتياطي. أعد حساب مجموع التحقق بعد النسخ وقارن القيم. لتحقيق أهداف استعادة الإنتاج، جدوِل نسخًا احتياطية منتظمة، واحتفظ بنسخ متعددة، وقم بتشفيرها، ونفّذ تدريبات استعادة دورية.

استعادة قاعدة البيانات إلى قاعدة بيانات نظيفة

4. أوقف برنامج Synapse وجهّز وجهة فارغة

لإجراء عملية استعادة، أوقف خدمة Synapse أولاً حتى لا تتمكن من إعادة الاتصال أثناء استبدال قاعدة البيانات أو اختبارها. اسم الخدمة المذكور أدناه شائع في بعض عمليات تثبيت الحزم، ولكنه يختلف؛ يجب على مستخدمي Docker إيقاف خدمة Synapse من خلال مشروع Compose الخاص بهم، ويجب على عمليات النشر المنسقة استخدام إجراءات الصيانة المعتادة. لا يلزم إيقاف PostgreSQL نفسه.

طرفية لينكس تُظهر إيقاف خدمة Synapse قبل استعادة قاعدة البيانات.
أوقف تطبيق Synapse قبل تحويل قاعدة بياناته إلى نسخة مستعادة؛ استخدم اسم الخدمة المُكوّن على جهازك المضيف.

استخدم قاعدة بيانات جديدة فارغة للاستعادة. لا تقم بالاستعادة فوق قاعدة بيانات Synapse موجودة أو قاعدة بيانات تحتوي على جداول. إذا كنت بحاجة إلى الاحتفاظ بقاعدة البيانات الحالية للتراجع، فاتركها كما هي واستعدها تحت اسم قاعدة بيانات مؤقت، ثم تحقق من صحة البيانات قبل تغيير إعدادات Synapse.

sudo -u postgres createdb \
  --encoding=UTF8 --locale=C --template=template0 \
  --owner=synapse_user synapse

يجب أن يتطابق مالك قاعدة البيانات واللغة مع متطلبات إعداد Synapse الخاص بك. إذا كان اسم الهدف موجودًا بالفعل، فتوقف وتأكد من قاعدة البيانات التي تنوي استخدامها؛ لا تفترض أن حذفها آمن. أنشئ أي أدوار PostgreSQL مطلوبة أولًا. pg_dumpلا تتضمن قاعدة البيانات الواحدة أدوارًا على مستوى المجموعة، لذا قد يحتاج المسؤول الذي ينتقل إلى مجموعة PostgreSQL جديدة إلى نسخة احتياطية عامة محمية بشكل منفصل pg_dumpall --globals-only.

طرفية تقوم بإنشاء قاعدة بيانات PostgreSQL فارغة بنظام UTF8 مع لغة C، و template0، وملكية synapse_user.
قم بإنشاء الوجهة كقاعدة بيانات فارغة مع الترميز واللغة والمالك المتوقع من قبل Synapse.

5. استعادة الأرشيف والتعامل مع المفاتيح لمرة واحدة

قم بتحميل الأرشيف المخصص إلى تلك الوجهة الفارغة. يؤدي خيار الخطأ الصريح إلى إيقاف عملية الاستعادة عند مواجهة خطأ ما، بدلاً من الاستمرار وترك نتيجة غير مكتملة يسهل تفويتها.

sudo -u postgres pg_restore --exit-on-error \
  --dbname=synapse /var/backups/synapse/synapse.dump

إذا لم يستثنِ ملف النسخ الاحتياطي الخاص بك هذا الجدول e2e_one_time_keys_json، فاتصل بقاعدة البيانات المستعادة وقم بحذف جميع البيانات من ذلك الجدول قبل تشغيل Synapse. هذه هي آلية الحماية التي يوفرها Synapse لاستعادة البيانات في النسخ الاحتياطية التي تتضمن هذه الصفوف. لا تُنفّذ الأمر على قاعدة بيانات قيد التشغيل بشكل عشوائي، لأنه سيحذف جميع الصفوف في ذلك الجدول.

طرفية PostgreSQL تقوم بتشغيل pg_restore لتحميل أرشيف Synapse بتنسيق مخصص إلى قاعدة بيانات Synapse.
لا تقم باستعادة الأرشيف إلا بعد إنشاء قاعدة بيانات هدف فارغة جديدة، وراجع أي مخرجات خطأ قبل المتابعة.
طرفية psql متصلة بـ synapse وتعرض TRUNCATE e2e_one_time_keys_json.
استخدم هذا فقط عندما تتضمن النسخة الاحتياطية المستعادة صفوفًا ذات مفتاح لمرة واحدة؛ يجب أن يظل برنامج Synapse متوقفًا حتى يتم مسح الجدول.
sudo -u postgres psql -d synapse \
  -c 'TRUNCATE e2e_one_time_keys_json;'

إذا استخدمتَ الاستثناء الموصى به، فلن تحتوي عملية الاستعادة على صفوف المفاتيح القديمة ذات الاستخدام الواحد، وبالتالي تصبح خطوة الاقتطاع هذه غير ضرورية. pg_restore --listيمكن أن يُمثّل إدخال الجدول تعريفًا للجدول دون بياناته. تحقق من وجود TABLE DATAإدخالات عند مراجعة محتويات الأرشيف؛ وأفضل سجل تشغيلي هو أمر التفريغ المستخدم بدقة.

أعد تشغيل Synapse وتحقق من استعادة النظام.

6. استعادة الملفات المصاحبة وتشغيل برنامج Synapse

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

ابدأ تشغيل الخدمة باستخدام الأمر المناسب لبيئة النشر الخاصة بك. على مضيف يستخدم systemd، افحص حالة الخدمة وسجلاتها الأخيرة. في الحاويات، افحص سلامة الحاوية وسجلاتها. يُعد تشغيل عملية ما مؤشرًا أوليًا، وليس دليلًا قاطعًا على قدرة المستخدمين على قراءة الغرف أو إرسال الرسائل أو استلام المرفقات.

طرفية تقوم بمراجعة قائمة أرشيف PostgreSQL وعرض أوامر بدء تشغيل Synapse وحالة الخدمة.
بعد الاستعادة، تحقق من سجلات الأرشيف والخدمة، ثم تحقق من عمليات العميل الحقيقية قبل إعلان اكتمال عملية الاستعادة.

7. اختبار الوظائف التي يعتمد عليها المستخدمون

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

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

إشارات الفشل الشائعة ومتى يجب تغيير الطريقة

إشارةما الذي يجب التحقق منه لاحقًا؟
pg_restoreالإبلاغ عن العلاقات القائمة أو أخطاء الملكيةتأكد من أن الوجهة فارغة وأن الأدوار المطلوبة موجودة. استعد إلى قاعدة بيانات جديدة؛ لا تستخدم --cleanهذه الطريقة كاختصار لقاعدة بيانات تحتاج إلى الاحتفاظ بمحتوياتها.
يُنهي أمر التفريغ العملية برمز خطأ غير صفري أو ينتج ملفًا غير قابل للقراءةتحقق من توافق العميل/الخادم، والصلاحيات، ومساحة القرص، وأذونات الوجهة، وسجلات PostgreSQL. أنشئ نسخة احتياطية جديدة وتحقق من صحتها قبل الاعتماد عليها.
يبدأ برنامج Synapse ولكن تم تضمين المفاتيح القديمة التي تُستخدم لمرة واحدةأوقف برنامج Synapse واتبع إجراءات الاقتطاع الموثقة قبل السماح له بخدمة العملاء.
الغرف تعمل ولكن الملحقات المحلية مفقودةقم باستعادة مخزن الوسائط المحلي المطابق والتكوين؛ لا يحتوي ملف PostgreSQL على ملفات الوسائط التي تم تحميلها.
تجاوز وقت الاسترداد أو حجم قاعدة البيانات النطاق المقبولقم بتقييم أساليب النسخ الاحتياطي الأخرى لـ PostgreSQL، مثل النسخ الاحتياطية الأساسية والاستعادة إلى نقطة زمنية محددة باستخدام أرشفة WAL، مقابل أهداف نقطة الاستعادة ووقت الاستعادة.

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

يقوم طرفية بحساب مجموع التحقق SHA-256 لملف synapse.dump وعرض نسخة منه في موقع نسخ احتياطي منفصل.
قم بمقارنة المجموع الاختباري بعد نسخ الأرشيف من مضيف Synapse لاكتشاف تغييرات النقل أو التخزين.

قائمة التحقق من التعافي

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

المراجع الرسمية

تمت مراجعة الوثائق بتاريخ 6 أكتوبر 2026. تختلف أسماء الأوامر وإدارة الخدمات باختلاف نظام التشغيل، وصورة الحاوية، وإصدار PostgreSQL، ونشر Synapse. يُرجى التأكد من صحة التعليمات بالرجوع إلى الوثائق الخاصة بالإصدارات وطريقة التغليف التي تستخدمها.

اترك تعليقاً

أفضل 10 أدوات مسح Ping للعثور على الأجهزة على شبكتك

أفضل 10 أدوات مسح Ping للعثور على الأجهزة على شبكتك

قارن بين 10 أدوات مسح الشبكة المحلية (Ping) لاكتشاف الشبكات المحلية بسرعة، وإجراء مسح شامل للأنظمة الأساسية المختلفة، وإدارة عناوين IP. تعرّف على ما يمكن أن يكشفه لك المسح وما لا يمكنه كشفه.

أفضل 6 أدوات لإدارة الشبكة لتتبع الأداء

أفضل 6 أدوات لإدارة الشبكة لتتبع الأداء

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

أفضل برامج تحليل شبكة الواي فاي لأنظمة ويندوز، وiOS، وأندرويد

أفضل برامج تحليل شبكة الواي فاي لأنظمة ويندوز، وiOS، وأندرويد

قارن بين أفضل برامج تحليل شبكة Wi-Fi لأنظمة Windows و iPhone و Android، بما في ذلك أدوات ازدحام القنوات وتغطية الإشارة والخرائط الحرارية واستكشاف أخطاء الشبكة وإصلاحها.

مراقبة الاتصال: 7 أدوات مجانية ومفتوحة المصدر لمراقبة توافر الشبكة

مراقبة الاتصال: 7 أدوات مجانية ومفتوحة المصدر لمراقبة توافر الشبكة

قارن بين سبعة برامج مراقبة زمن الاستجابة المجانية والمفتوحة المصدر، بدءًا من مجموعات الشبكة الكاملة وحتى مجسات زمن الاستجابة المركزة، واختر البرنامج المناسب من حيث التوافر وفقدان الحزم والسجل.

جودة الخدمة في الشبكات: ما هي جودة الخدمة وكيف تعمل

جودة الخدمة في الشبكات: ما هي جودة الخدمة وكيف تعمل

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

أفضل الممارسات لمراقبة الشبكات: ما الذي يجب تتبعه وما هي الأدوات التي يجب استخدامها

أفضل الممارسات لمراقبة الشبكات: ما الذي يجب تتبعه وما هي الأدوات التي يجب استخدامها

قم ببناء نظام مراقبة شبكة عملي مع تغطية واضحة للأجهزة، ومقاييس أداء مفيدة، وتنبيهات قابلة للتنفيذ، ومقارنة بين SolarWinds NPM وPRTG وOpManager.

أفضل برامج خادم SFTP لنقل الملفات بشكل آمن

أفضل برامج خادم SFTP لنقل الملفات بشكل آمن

قارن بين برامج خوادم SFTP الموثوقة لأنظمة ويندوز ولينكس، بما في ذلك OpenSSH وBitvise وSolarWinds وSFTPGo. اعثر على الخيار الأمثل الذي يلبي احتياجاتك الأمنية واحتياجات نقل الملفات.

أفضل 7 أدوات لإدارة عناوين IP لفرق الشبكات

أفضل 7 أدوات لإدارة عناوين IP لفرق الشبكات

قارن بين سبع أدوات لإدارة عناوين IP لاكتشاف الشبكات الفرعية، وتنسيق DNS وDHCP، وجرد الشبكة، وIPAM مفتوح المصدر.

أفضل 10 أدوات لفحص الشبكات لاكتشاف الأجهزة وعناوين IP

أفضل 10 أدوات لفحص الشبكات لاكتشاف الأجهزة وعناوين IP

قارن بين أدوات فحص الشبكة لاكتشاف الأجهزة بسرعة، وعمليات فحص IP عبر الأنظمة الأساسية، وإدارة عناوين IP للمؤسسات، مع إرشادات حول مطابقة كل خيار مع شبكتك.

كيفية استخدام Nmap لتتبع المسار وقراءة مسار الشبكة

كيفية استخدام Nmap لتتبع المسار وقراءة مسار الشبكة

استخدم خيار --traceroute في Nmap لرسم خرائط القفزات إلى مضيف مصرح به، وفهم مخرجات القفزة وRTT، واستكشاف الأخطاء وإصلاحها في الاستجابات المفقودة دون الإفراط في المسح.