تسريع استعلامات ownCloud 10 من خلال إدارة الفهارس بأمان

بالنسبة لـ ownCloud 10، ابدأ بتطبيق تغييرات المخطط التي يوفرها النظام الأساسي والتطبيقات المثبتة، ثم تحقق من استعلامات قاعدة البيانات البطيئة. لا تُضف الفهارس بشكل عشوائي، ولا تفترض أن أمر Nextcloud db:add-missing-indicesهو أمر إصلاح مدعوم في ownCloud 10، إذ لا يوثقه مرجع ownCloud Server 10.15 OCC الحالي. قد تُسرّع الفهارس عمليات قراءة البيانات المطابقة، ولكن كل فهرس مُضاف يستهلك مساحة تخزين ويُضيف عبئًا على عمليات الإدراج والتحديث والحذف.

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

اختر التغيير الذي يتوافق مع الأدلة

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

استخدم الفروقات التالية قبل تغيير أي شيء:

  • تحذير من المسؤول أو مشكلة ترقية معروفة: قم بتشغيل إجراء الترقية المعتاد لـ ownCloud وراجع مخرجاته. تُعدّ عمليات ترحيل الترقية المسار المعتمد لتغييرات المخطط التي يوفرها ownCloud أو أحد التطبيقات.
  • أحد الاستعلامات البطيئة المعروفة ذات خطة التنفيذ غير الفعالة: اطلب من مسؤول قاعدة البيانات فحص الاستعلام وخطة التنفيذ. قد يساعد الفهرس المُستهدف، ولكن يجب أن تتطابق الأعمدة المقترحة وترتيبها مع الاستعلام وتعريف الجدول.
  • بطء التحميل، أو حدوث عمليات قفل، أو ازدحام كبير: تحقق من المعاملات، وزمن استجابة التخزين، وسعة قاعدة البيانات، وقفل الملفات. هذه الأعراض وحدها لا تثبت وجود فهرس مفقود.
  • عند تحويل تثبيت SQLite صغير إلى بيئة متعددة المستخدمين: يُنصح بالانتقال إلى MySQL/MariaDB أو PostgreSQL. تصف ownCloud نظام SQLite بأنه مناسب للاختبار وأحمال العمل الصغيرة أحادية المستخدم، بينما يجب أن تستخدم عمليات النشر الإنتاجية متعددة المستخدمين قاعدة بيانات خادم مدعومة.

لا يُعدّ الفهرس مُحسِّنًا عامًا للسرعة. قد يُحسِّن استخدام المزيد من الفهارس عمليات البحث المُحدَّدة، ولكنه يزيد من حجم قاعدة البيانات وزمن استجابة الكتابة. وتعتمد النتيجة على شكل الاستعلام، وحجم الجدول، وتوزيع البيانات، ومُحرك قاعدة البيانات، وحالة ذاكرة التخزين المؤقت.

قم بإعداد نافذة صيانة آمنة

  1. سجّل الإصدارات وقاعدة البيانات بدقة. من مجلد تثبيت ownCloud، شغّل الأمر sudo -u www-data ./occ status. دوّن إصدار ownCloud، وإصدارات التطبيقات المثبتة، ونوع قاعدة البيانات، وبادئة الجدول من الملف config/config.php. استبدل www-dataبحساب خادم الويب على توزيعتك.
  2. سجّل العملية البطيئة. دوّن الشاشة أو التطبيق المتأثر، والوقت التقريبي، وما إذا كان التأخير يتكرر. راجع سجلات ownCloud وتشخيصات الاستعلامات البطيئة في قاعدة بياناتك. فعّل تسجيل الاستعلامات فقط وفقًا لإرشادات موفر قاعدة البيانات، لأن السجلات قد تحتوي على قيم SQL حساسة وتزداد حجمًا بسرعة.
  3. قم بعمل نسخة احتياطية من قاعدة البيانات والإعدادات. استخدم طريقة نسخ احتياطي متسقة مع قاعدة البيانات، وتأكد من إمكانية قراءة النسخة الاحتياطية. تستخدم وثائق النسخ الاحتياطي الخاصة بـ ownCloud mysqldump --single-transactionمثالاً لقواعد البيانات المتوافقة مع MySQL؛ عدّل قيم المضيف والمستخدم وقاعدة البيانات لتناسب إعداداتك. لا تُدخل كلمة مرور قاعدة البيانات مباشرةً في سجل الأوامر أو قائمة العمليات.
  4. قم بجدولة التغييرات بمسؤولية. قد يؤدي تحديث المخطط أو إنشاء الفهرس إلى استهلاك موارد الإدخال/الإخراج للقرص، ووحدة المعالجة المركزية، والأقفال. في حالة التثبيتات الكبيرة أو ذات الأحمال العالية، أبلغ المستخدمين بفترة التحديث وراقب حمل قاعدة البيانات. استخدم وضع صيانة ownCloud فقط عندما تتطلب إجراءات التحديث أو الصيانة ذلك؛ ولا تقم بتفعيله كبديل للنسخ الاحتياطي.

قم بتطبيق تحديثات المخطط التي تديرها ownCloud أولاً

إذا كان هناك تحديث معلق لنظام ownCloud الأساسي أو التطبيق، فاستخدم عملية الترقية الموثقة لطريقة التثبيت لديك. في تثبيت Linux التقليدي، يتم تشغيل أمر OCC كمستخدم HTTP من الدليل الجذر لنظام ownCloud. عند اتباع تعليمات الترقية اليدوية، يكون الأمر كالتالي:

sudo -u www-data ./occ upgrade

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

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

يُدرج مرجع ownCloud 10.15 OCC أوامر قاعدة البيانات مثل db:convert-type` <database>` db:convert-mysql-charsetو`<database>` و`<database>` db:restore-default-row-format، ولكنه لا يُدرج الأمر ` <database> db:add-missing-indices`. نظرًا لاختلاف توفر الأوامر باختلاف الإصدار والبرنامج المُثبّت، يُمكنك فحص نسختك باستخدام `<database>` sudo -u www-data ./occ list dbأو ` sudo -u www-data ./occ help db:add-missing-indices<database>`. إذا أبلغت `<database>` عن أمر غير معروف، فلا تنسخ أمرًا من برنامج تعليمي لـ Nextcloud إلى ownCloud. راجع وثائق إصدار ownCloud الخاص بك واستخدم مسار الترقية أو نقل التطبيق المدعوم.

متى يكون الفهرس اليدوي مناسباً؟

يُعدّ استخدام SQL اليدوي خيارًا لمسؤول قاعدة البيانات لحل مشكلة استعلام مُثبتة، وليس إجراءً روتينيًا لتحسين ownCloud. ابدأ بتسجيل الاستعلام البطيء بدقة، ثم شغّل أداة فحص خطة التنفيذ الخاصة بالمحرك، مثل تلك EXPLAINالمُستخدمة مع MySQL/MariaDB أو PostgreSQL. تأكد مما إذا كانت الخطة تفحص عددًا كبيرًا من الصفوف دون داعٍ، وما إذا كان يتم تجاهل فهرس موجود. يُمكنك ضبط بادئة جدول ownCloud، لذا لا تفترض أبدًا أن أسماء الجداول تبدأ بـ oc_.

قبل إنشاء فهرس، قارن الأعمدة المقترحة مع عوامل التصفية والربط وترتيب الفرز في الاستعلام. يُعد ترتيب أعمدة الفهرس المركب مهمًا؛ إذ قد يؤدي تكرار فهرس موجود إلى زيادة التكلفة دون تحسين الأداء. اطلب من مسؤول قاعدة البيانات مراعاة سلوك إصدار قاعدة البيانات، ودعم إنشاء الفهرس عبر الإنترنت أو بالتزامن، ومساحة القرص المتاحة، وتأثير الأقفال، وإجراءات التراجع. تختلف هذه التفاصيل باختلاف المحرك والإصدار، لذا لا توجد عبارة SQL واحدة آمنة لجميع عمليات تثبيت ownCloud 10.

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

قارن البدائل على مستوى قاعدة البيانات

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

  • MySQL أو MariaDB: خيار شائع في عمليات النشر التي يستخدم فيها المسؤولون هذه المحركات بالفعل. راجع ذاكرة التخزين المؤقت، وزمن استجابة القرص، والاتصالات، وخطط الاستعلامات البطيئة قبل تغيير إعدادات الخادم.
  • PostgreSQL: بديل مدعوم لـ ownCloud 10 في حال تم تكوين موصل قاعدة بيانات PHP ونشرها بشكل صحيح. تختلف خطط الاستعلام وأدوات صيانة الفهرس الخاصة به عن MySQL، لذا يُرجى اتباع الإرشادات الخاصة بـ PostgreSQL.
  • SQLite: سهل الاستخدام لأغراض الاختبار أو الاستخدام المحدود من قبل مستخدم واحد، ولكنه ليس الخيار الأمثل لأحمال العمل الإنتاجية المتزامنة والمتعددة المستخدمين. لا يمكن لضبط الفهرس إزالة قيود التزامن في عملية النشر.

يُعد تغيير محركات قواعد البيانات مشروع ترحيل، وليس مجرد تعديل سريع للفهرس. يوفر ownCloud occ db:convert-typeعمليات تحويل مدعومة؛ راجع متطلباتها الأساسية، وقم بعمل نسخة احتياطية أولاً، واختبر النسخة المحولة قبل توجيه المستخدمين إليها.

تحقق من النتيجة وتوقف إذا كانت الأدلة لا تتفق معها

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

إذا استمر بطء نفس الاستعلام حتى مع استخدام فهرس مناسب، فابحث في عمليات القفل، ومساحة التخزين، وزمن استجابة الشبكة، وعمال PHP، وحدود موارد قاعدة البيانات. إذا كانت خطة الاستعلام أو بنية الجدول غير واضحة، فتوقف قبل تنفيذ أوامر DDL اليدوية واطلب من مسؤول قاعدة البيانات أو أحد أعضاء فريق دعم ownCloud مراجعتها. والنتيجة المرجوة هي مخطط قاعدة بيانات متوافق مع إصدار ownCloud المُثبّت والاستعلامات المقاسة، دون أي تغييرات غير مُتتبّعة في الفهرس.

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

اترك تعليقاً

تسريع استعلامات ownCloud 10 من خلال إدارة الفهارس بأمان

تعرف على متى تحتاج فهارس قاعدة بيانات ownCloud 10 إلى الاهتمام، وكيفية تطبيق تحديثات المخطط المدعومة بأمان، ومتى يكون ضبط الاستعلام أو تغيير قاعدة البيانات هو الحل الأفضل.

قم بتثبيت مشاركة SMB/CIFS في ownCloud بدون تثبيت Linux

قم بتوصيل مشاركة شبكة Windows أو Samba بـ ownCloud من خلال وحدة تخزين خارجية، وتحقق من بيانات الاعتماد، وقم باستكشاف أخطاء المجلدات التي لا يمكن الوصول إليها وإصلاحها بأمان.

حذف إصدارات ملفات ownCloud بأمان باستخدام أمر occ

حذف إصدارات ملفات ownCloud بأمان باستخدام أمر occ

قم بإزالة كل إصدار ملف مخزن من ownCloud Server Classic لحساب واحد أو لجميع المستخدمين، وقم بالتمييز بين عملية التطهير الكاملة وانتهاء الصلاحية المستندة إلى الاحتفاظ.

هل تم رفض اتصال ownCloud عبر الجوال؟ تحقق من عنوان URL وإمكانية الوصول.

هل تم رفض اتصال ownCloud عبر الجوال؟ تحقق من عنوان URL وإمكانية الوصول.

تتبع رفض اتصال ownCloud عبر الهاتف المحمول عن طريق التحقق من عنوان URL للخادم وشبكة الهاتف ونقطة نهاية HTTPS وسجلات الخادم بالترتيب الصحيح.

تشغيل مهام ownCloud في الخلفية بشكل موثوق باستخدام مؤقت Systemd

استبدل عمليات تشغيل الوظائف عند الطلب بمؤقت systemd الذي يقوم بتشغيل أمر occ system:cron المدعوم من ownCloud كل 15 دقيقة.

استعادة مزامنة WebDAV الخاصة بـ ownCloud عن طريق إيجاد المسار المعطل

تتبع طلب WebDAV من خلال Apache أو Nginx أو وكيل عكسي، ثم تأكد من أن مزامنة ownCloud تعمل مع اختبار PROPFIND مصادق عليه.

قم بتعيين عنوان URL العام لـ Nextcloud حتى يتمكن من الوصول إلى نفسه

قم بإصلاح تحذير عنوان الصادر المفقود في Nextcloud عن طريق تعيين عنوان URL الأساسي الخاص به والتحقق من DNS و HTTPS وتوجيه الوكيل العكسي من الخادم نفسه.

إعداد التخزين المؤقت لـ Nextcloud Redis على Ubuntu 24.04

إعداد التخزين المؤقت لـ Nextcloud Redis على Ubuntu 24.04

قم بتكوين APCu و Redis عبر مقبس Unix محلي لتخزين Nextcloud المؤقت وقفل الملفات، مع خطوات للإصدارات الحالية والأقدم من Nextcloud.

قم بتشغيل Nextcloud Cron تلقائيًا باستخدام مؤقت Systemd

تحقق من وضع cron الخاص بـ Nextcloud، وقم بإصلاح خدمة systemd والمؤقت الخاص به، وتأكد من تشغيل المهام الخلفية بعد بدء التشغيل وكل خمس دقائق.

إزالة تحذير قفل الملفات من Nextcloud باستخدام Redis

قم بتمكين قفل الملفات الموثوق به في Nextcloud، واختر الواجهة الخلفية المناسبة Redis أو Valkey، وتحقق من إزالة التحذير دون المخاطرة بتغييرات الملفات المتزامنة.