استنساخ ماي إس كيو إل ماستر/ خادم على سينت أو إس 7

استنساخ ماي إس كيو إل ماستر خادم على سينت أو إس 7

تقديم

استنساخ MySQL هو عملية نسخ البيانات تلقائيًا من خادم قاعدة بيانات واحد إلى خادم واحد أو أكثر.

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


في هذه المقالة، سنظهر لك كيفية إعداد نسخة MySQL Master/Slave على CentOS 7 باستخدام خادم رئيسي واحد وخادم عبيد واحد. تنطبق نفس الإجراءات على MariaDB.

بنية التكرار هذه هي الأنسب للقراءة المتماثلة.

المتطلبات

في هذا المثال، نفترض أن لديك خادمين يعملان على CentOS 7، ويمكنهما التواصل مع بعضهما البعض عبر شبكة خاصة. إذا لم يوفر مزود الاستضافة الخاص بك عناوين IP الخاصة، فيمكنك استخدام عناوين IP العامة وتهيئة جدار الحماية للسماح فقط بحركة المرور في المنفذ 3306 من مصادر موثوقة.

وفيما يلي عناوين ip للخواديم في هذا المثال:

Master IP: 10.10.0.44
Slave IP:  10.10.0.20

قم بتثبيت MySQL

يمكنك متابعة هذه المقالة على تثبيت ماي إس كيو إل (MySQL) على ريد هات/فيدورا و سينت أو إس (CentOS/RHEL) 7/6.

اضبط الخادم الرئيسي

أولاً، سنقوم بتهيئة خادم MySQL الرئيسي مع التغييرات التالية:

  • قم بتهيئة خادم MySQL للاستماع إلى عنوان IP الخاص به.
  • قم بإنشاء معرف خادم مميز.
  • شغل binary تسجيل.

لتحقيق ذلك، قم بتحرير ملف تكوين MySQL وإدخال السطور التالية في قسم [mysqld]:

$ sudo nano /etc/my.cnf
الخادم الرئيسي :/etc/my.cnf
bind-address           = 10.10.0.44
server-id              = 44
log_bin                = mysql-bin

بمجرد الانتهاء، أعد تشغيل خدمة MySQL حتى تدخل التغييرات حيز التنفيذ.

$ sudo systemctl restart mysqld

الخطوة التالية هي إعداد مستخدم نسخ جديد. قم بتسجيل الدخول كمستخدم الجذر إلى خادم MySQL:

$ mysql -uroot -p

قم بتشغيل بيانات SQL التالية من داخل MySQL الدافع لإنشاء مستخدم slave1 ومنح المستخدم امتياز النسخ المتماثل:

mysql> CREATE USER 'slave1'@'10.10.0.20' IDENTIFIED BY 'secret_password';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave1'@'10.10.0.20';

بينما لا تزال في موجه MySQL، خاستخدم الأمر التالي لإخراج اسم الملف الثنائي وموقعه.

mysql> SHOW MASTER STATUS\G
*************************** 1. row ***************************
             File: mysql-bin.000001
         Position: 1714
     Binlog_Do_DB: 
 Binlog_Ignore_DB: 
Executed_Gtid_Set: 
1 row in set (0.00 sec)

لاحظ اسم الملف «mysql-bin.000001» والموقع «1714». ستحتاج إلى هذه القيم عند تكوين خادم العبيد. قد تكون هذه القيم مختلفة على الخادم الخاص بك.

ضبط خادم العبد.

مثل الخادم الرئيسي، سنقوم بإجراء التغييرات التالية على خادم العبيد:

  • قم بتهيئة خادم MySQL للاستماع إلى عنوان IP الخاص به.
  • قم بإنشاء معرف خادم مميز.
  • شغل binary تسجيل.

افتح ملف تكوين MySQL وقم بادخال السطور التالية:

$ sudo nano /etc/my.cnf
خادم العبد: /etc/my.cnf
bind-address           = 10.10.0.20
server-id              = 20
log_bin                = mysql-bin

أعد تشغيل خدمة MySQL حتى تدخل التغييرات حيز التنفيذ.

$ sudo systemctl restart mysqld

الخطوة التالية هي تعيين المعلمات التي سيتم استخدامها بواسطة خادم العبيد للاتصال بالخادم الرئيسي. قم بتسجيل الدخول إلى غلاف MySQL على النحو التالي:

$ mysql -uroot -p

أولاً، أوقف خادم العبيد:

mysql> STOP SLAVE;

نفذ الامر التالي ليستطيع العبد لتكرار السيد:

mysql> CHANGE MASTER TO
mysql> MASTER_HOST='10.10.0.44',
mysql> MASTER_USER='slave1',
mysql> MASTER_PASSWORD='secret_password',
mysql> MASTER_LOG_FILE='mysql-bin.000001',
mysql> MASTER_LOG_POS=1714;

تأكد من أنك تستخدم عنوان IP الصحيح واسم المستخدم وكلمة المرور. يجب أن يكون اسم ملف السجل والموقع نفس القيم التي حصلت عليها من الخادم الرئيسي.

بعد ذلك، شغل الخادم العبيد.

mysql> START SLAVE;

اختبر الإعدادات

يجب أن يكون لديك الآن تكوين النسخ المتماثل الرئيسي/خادم قيد التشغيل.

على الخادم الرئيسي، سنقوم بإنشاء قاعدة بيانات جديدة للتأكد من أن كل شيء يعمل كما هو متوقع:

$ mysql -uroot -p
mysql> CREATE DATABASE test_db;

قم بتسجيل الدخول إلى نافدة MySQL بالعبد بالأمر التالي:

$ mysql -uroot -p

لإدراج جميع قواعد البيانات، استخدم الأمر التالي:

mysql> SHOW DATABASES;

Output:

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test_db            |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

خلاصة

في هذه المقالة، أوضحنا كيفية إنشاء نسخة MySQL Master/Slave على CentOS 7.

إذا كان لديك أي أسئلة، يرجى ترك تعليق.

LEAVE A COMMENT