في إدارة قواعد بيانات MySQL، يُعد إعداد النسخ المتماثل الرئيسي-التابع طريقة لا غنى عنها، خاصة للمواقع ذات الحركة المرورية العالية والتطبيقات الحيوية. بفضل هذه البنية، يتم نسخ جميع البيانات المكتوبة في قاعدة البيانات الرئيسية (Master) فورًا إلى قاعدة بيانات احتياطية واحدة أو أكثر (Slave). كيف يتم تنفيذ هذا النسخ المتماثل؟ إليكم الشرح خطوة بخطوة.
لماذا النسخ المتماثل الرئيسي-التابع؟
من أكبر مزايا النسخ المتماثل الرئيسي-التابع هو توزيع حمل القراءة على خوادم التابع لتخفيف الضغط على الخادم الرئيسي. على سبيل المثال، في موقع للتجارة الإلكترونية، تتم عمليات القراءة مثل عرض المنتجات عبر الخادم التابع، بينما تبقى عمليات الكتابة مثل إنشاء الطلبات على الخادم الرئيسي. بالإضافة إلى ذلك، إذا تعطل الخادم الرئيسي، يمكنك جعل الخادم التابع رئيسيًا بسرعة لضمان الخدمة المستمرة.
تحضير الخادم الرئيسي
أولاً، لنقم بالإعدادات اللازمة للنسخ المتماثل على الخادم الرئيسي. افتح ملف تكوين MySQL (عادةً /etc/mysql/my.cnf أو /etc/my.cnf) وأضف المعاملات التالية:
- server-id: 1 (معرف فريد للخادم الرئيسي)
- log-bin: /var/log/mysql/mysql-bin.log (مسار ملف السجل الثنائي)
- binlog-do-db: اسم قاعدة البيانات المراد نسخها (اختياري)
مثال على الإعداد:
[mysqld] server-id = 1 log-bin = /var/log/mysql/mysql-bin.log binlog-do-db = myappثم أعد تشغيل MySQL: sudo systemctl restart mysql
إنشاء مستخدم النسخ المتماثل
يجب إنشاء مستخدم على الخادم الرئيسي ليتصل به الخادم التابع. اتصل بـ MySQL كمستخدم root وقم بتنفيذ الأوامر التالية:
CREATE USER 'replica'@'%' IDENTIFIED BY 'güçlü_şifre'; GRANT REPLICATION SLAVE ON *.* TO 'replica'@'%'; FLUSH PRIVILEGES;هنا '%' يسمح بالاتصال من جميع عناوين IP؛ يُوصى باستخدام عنوان IP محدد لأغراض الأمان.
الحصول على معلومات حالة الخادم الرئيسي
للحصول على اسم ملف السجل الثنائي وموضعه لاستخدامها في إعداد الخادم التابع:
SHOW MASTER STATUS;قم بتدوين قيم File و Position من الناتج. مثال: File: mysql-bin.000001, Position: 107
تحضير الخادم التابع
الآن انتقل إلى الخادم التابع. أضف الأسطر التالية إلى ملف التكوين:
- server-id: 2 (يجب أن يكون مختلفًا عن الخادم الرئيسي)
- relay-log: /var/log/mysql/mysql-relay-bin.log
مثال:
[mysqld] server-id = 2 relay-log = /var/log/mysql/mysql-relay-bin.logأعد تشغيل MySQL.
إعداد اتصال الخادم التابع
باستخدام المعلومات التي حصلت عليها من الخادم الرئيسي، قم بتوصيل التابع بالرئيسي. اتصل بـ MySQL كمستخدم root ونفذ الأمر التالي:
CHANGE MASTER TO MASTER_HOST='master_ip_adresi', MASTER_USER='replica', MASTER_PASSWORD='güçlü_şifre', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=107;ثم ابدأ التابع:
START SLAVE;للتحقق من حالة النسخ المتماثل:
SHOW SLAVE STATUS\G;يجب أن تكون قيم Slave_IO_Running و Slave_SQL_Running Yes. وإلا، افحص رسالة الخطأ.
المشاكل المحتملة وحلولها
- حظر جدار الحماية: تأكد من أن منفذ 3306 على الخادم الرئيسي مفتوح للوصول من الخادم التابع.
- تعارض server-id: استخدم server-id فريدًا لكل خادم.
- عدم تطابق موضع السجل الثنائي: إذا كان الخادم التابع يحتوي على بيانات قديمة، قم بأخذ نسخة من الخادم الرئيسي وتحميلها على التابع، ثم قم بالاتصال بالموضع الصحيح.
هام: عند إعداد النسخ المتماثل في الأنظمة الحية، تأكد من أخذ نسخة احتياطية وإجراء العملية في أوقات انخفاض الحركة المرورية.
الخلاصة
النسخ المتماثل الرئيسي-التابع هو أحد تقنيات إدارة قواعد البيانات الأساسية التي نوصي بها في HostingServer.com.tr لعملائنا. بفضل هذه البنية، يمكنك تحسين أداء تطبيقاتك وتقليل مخاطر فقدان البيانات. لا تنسَ التحقق بانتظام من حالة النسخ المتماثل بعد الإعداد. تذكر أن التكوين الصحيح والمراقبة المستمرة للنسخ المتماثل في MySQL سيوفران عليك الكثير من المشاكل.