بالأرقام
- 114 التزامًا في 4 أيام
- 266 اختبار PHPUnit، 738 تأكيدًا
- 35 مشكلة في GitHub تمت معالجتها (20 مشكلة مغلقة، و15 مشكلة مفتوحة مع الحل المقترح)
- 12 ميزة جديدة
- 0 انحدار (اجتياز جميع الاختبارات)
الجديد
1. التوافق الكامل MySQL 8.4
تمت إزالة أوامر MySQL 8.4 SLAVE لصالح REPLICA. يكتشف PmaControl الآن الشوكة تلقائيًا (MariaDB مقابل MySQL) ويستخدم بناء الجملة الصحيح:
| العمل | MariaDB | MySQL 8.4+ |
|---|---|---|
| إيقاف النسخ المتماثل | STOP SLAVE 'conn' |
STOP REPLICA FOR CHANNEL 'conn' |
| تغيير المصدر | CHANGE MASTER TO ... |
CHANGE REPLICATION SOURCE TO ... |
| المواضيع المتوازية | slave_parallel_threads |
replica_parallel_workers |
| سيد الحالة | SHOW MASTER STATUS |
SHOW BINARY LOG STATUS |
| معرف GTID | MASTER_USE_GTID = slave_pos |
SET PERSIST gtid_mode = ON (4 خطوات) |
يتطلب تنشيط GTID على MySQL ترحيلًا تدريجيًا (OFF → OFF_PERMISSIVE → ON_PERMISSIVE → ON) على الجهاز الرئيسي ثم على العبد. يتعامل PmaControl مع كل شيء تلقائيًا، بما في ذلك SET PERSIST للمثابرة دون لمس my.cnf.
2. تحليل Binlog
أداة تحليل binlog جديدة يمكن الوصول إليها من صفحة النسخ المتماثل لكل تابع. حدد فترة زمنية، PmaControl:
- قم بتنزيل ملفات binlog عبر بروتوكول MySQL (مثل سلسلة IO)
- تحليل أحداث GTID (التوازي، حجم المعاملة)
- حساب DMLs لكل جدول (إدراج/تحديث/حذف)
- حساب الحجم في الثانية
- يكتشف DDLs (ALTER TABLE، DROP، وما إلى ذلك)
- يُنشئ توصيات بناءً على التكوين الفعلي للسيد والعبد
الرسومات التفاعلية:
- حجم كيلو بايت/ثانية + تأخر النسخ المتماثل (محور Y مزدوج، تكبير متزامن)
- المعاملات/الثانية + Threads_running السيد والعبد
- خرائط DML الشجرية لكل قاعدة بيانات ولكل جدول (يتم إعادة حسابها باستخدام التكبير/التصغير)
- جدول DDL ملون حسب النوع (ALTER=برتقالي، DROP=أحمر، CREATE=أخضر)
ذاكرة التخزين المؤقت الذكية: يتم تخزين السجلات الثنائية التي تم تنزيلها في data/binlog_analysis/{server_id}/ مع مدة البقاء (TTL) لمدة 30 يومًا. يكون التحليل خلال نفس الفترة الزمنية فوريًا تقريبًا.
الأمان: لم تعد بيانات الاعتماد MySQL مرئية في ps aux — استخدام ملف .my.cnf مؤقت مع chmod 0600.
3. النسخ المتماثل متعدد المصادر
تعرض الآن خوادم MariaDB متعددة المصادر (مثل production_all التي تتكرر من production_fr، production_uk، production_ro) ما يلي:
- علامات التبويب: واحدة لكل قناة نسخ متماثل + علامة تبويب "+" لإضافة مصدر جديد
- نموذج الإعداد: أكمل CHANGE MASTER (المضيف، المنفذ، المستخدم، كلمة المرور، GTID، SSL،plicate_do_db)
- الرسوم البيانية التي تمت تصفيتها: تعرض كل علامة تبويب فقط بيانات التأخر الخاصة بقناتها
4. GeoIP IPv4 + IPv6
تعمل الآن أعلام الدول الموجودة على صفحة الخوادم مع عناوين IPv6. يتم استيراد جميع نطاقات GeoLite2 (650 ألف IPv4 + 1.95 مليون IPv6 = 2.6 مليون نطاق) إلى MariaDB لعمليات البحث SQL < 1 مللي ثانية.
5. النسخ المتماثل للمجموعة / InnoDB الكتلة
صفحة جديدة في قائمة البنية > النسخ المتماثل للمجموعة:
- اكتشاف موثوق للدور الأساسي/الثانوي عبر
performance_schema.replication_group_members - العرض في الرسم البياني Dot3 (المجموعات الفرعية باللون الأخضر الأساسي / النسخة الزرقاء)
- حالة الاتصال/الاسترداد/الخطأ/غير متصل بالإنترنت مع الألوان
6. إعادة تصميم لوحة القيادة الرئيسيةتعرض الصفحة الرئيسية الآن:
- مؤشرات الأداء الرئيسية: عدد الخوادم، والتوافر (%)، والنسخ المتماثل (%)، والشياطين
- التنبيهات: قائمة الخوادم المعطلة (للمراقبة فقط)
- التفصيل: البيئات والعملاء والإصدارات (أشرطة أفقية)
- الشياطين: شبكة مدمجة مع شارة التشغيل/التوقف/الخطأ
7. دور القراءة فقط
الدور الجديد ReadOnly (group_id=10) مع 134 إجراءً مسموحًا به صراحة، بدون أحرف البدل. محظور: أي كتابة، أو التحكم في النسخ المتماثل، أو كلمات المرور، أو تصحيح الأخطاء، أو الاستعلامات الثقيلة حول مخطط المعلومات، أو التحكم في الشياطين.
8. إعادة تصميم الصفحات
- العميل/الفهرس: شبكة البطاقة مع شريط الصحة، الإصدار المضمن، مراقبة التبديل
- الهندسة المعمارية/الفهرس: رأس متدرج باللون الأزرق الداكن، وشبكة SVG نظيفة
- التابع/العرض: علامات تبويب متعددة المصادر، مخططات Chart.js 4.5.1 مع تكبير متزامن
تم إصلاح الأخطاء
الأمن
- التعقيم
connection_nameمقابل الحقن SQL في 5 طرق - القائمة البيضاء للحقول القابلة للتحرير في
Client::update() - كلمة المرور مخفية في قائمة العمليات (
--defaults-extra-fileبدلاً من--password=)
الاستقرار
- أقسام ts_value غير متزامنة بين الجداول (الإصلاح: إنشاء كل جدول + تضمين اليوم)
Extraction2:sql_query_silentللأقسام المفقودة- تحليل Binlog: اكتشاف المماطلة بدلاً من المهلة الثابتة (120 ثانية بدون نمو = القتل)
testAccessReplication(): إضافةBINLOG MONITORلـ MariaDB 10.5+slave_connections_needed_for_purge=0قبل مسح السجلات الثنائية
واجهة المستخدم
- تم ترحيل خطوط المؤشرات Chart.js من الإصدار 2 إلى الإصدار 4
- تصادم معرف اللوحة القماشية على الرسوم البيانية متعددة القنوات
- "تحميل اليوم السابق" يتناقص دائمًا حتى بدون البيانات
- تم إصلاح تلميحات الأدوات غير المنتظمة (وضع
nearestبدلاً منindex) - أعمدة مخطط نظام تلميحات الأدوات (100+ عمود موثق)
خارطة الطريق – ما تبقى
التذاكر المفتوحة (35)
المثبت Debian 13 (7 تذاكر):
- كلمات مرور يمكن التنبؤ بها (#123)
- بيانات الاعتماد بنص عادي في
/tmp/config.json(#117) - مفتاح SSH خاص في الريبو (#114)
- الإصدار MariaDB تم تجاهله (#120)
- الملكية
/var/www(#119)
تحليل المدونة:
- مخطط جانت الزمني يتماشى مع الرسوم البيانية (#106)
- تم إطلاق التحليل في نسختين (#122)
- ذاكرة تخزين مؤقت للكتابة غير الذرية للسجلات MySQL (#121)
جودة البيانات:
- تسوية التأخر NULL → 0 (#113)
- فقدان حالة SSL أثناء التطبيع MySQL 8 (#116)
- لوحة التحكم الرئيسية: متجر فردي مُصنف على أنه MySQL (#130)، إعادة استخدام PID (#129)، ثانية_خلف_المصدر (#126)
الإرث:
- إعادة تسمية قاعدة البيانات بالترتيب (#26)
- ترميز LDAP (#40)
- أسماء الجداول مع الواصلات في Graphviz (#65)
- SqlFormatter مهملة (#72)
التحسينات المخططة
- تجميع السلاسل الزمنية: خام → 1 دقيقة → 1 ساعة → 1 يوم مع stddev للكشف عن الحالات الشاذة
- التنبيه: إشعارات Telegram/البريد الإلكتروني عند حدوث تأخير، أو تعطل الخادم، أو مساحة القرص
- نظام المكونات الإضافية: التثبيت/إلغاء التثبيت من GitHub
- API REST: عرض مقاييس التكامل الخارجي
الروابط
- جيثب: github.com/PmaControl/PmaControl
- تيليجرام: t.me/pmacontrol
- التذاكر المفتوحة: الأعداد
PmaControl هي أداة مراقبة MariaDB / MySQL مفتوحة المصدر. نرحب بالمساهمات.
تعليقات (0)
لا توجد تعليقات حتى الآن.
اترك تعليقا