تهدف هذه المقالة إلى تقديم كيفية تثبيت وتكوين مجموعة MySQL استنادًا إلى خادمين. وأدرك أن MySQL لا يزال بإمكانه الاستمرار في العمل عندما يواجه أي خادم مشكلة أو يكون معطلاً.
يلاحظ! على الرغم من أن هذه مجموعة MySQL تعتمد على خادمين، إلا أنه يجب أن يكون هناك خادم ثالث إضافي كعقدة إدارة، ولكن يمكن إيقاف تشغيل هذا الخادم بعد اكتمال بدء تشغيل المجموعة. وفي الوقت نفسه، تجدر الإشارة إلى أنه لا يوصى بإيقاف تشغيل الخادم الذي يعمل كعقدة إدارة بعد اكتمال بدء تشغيل المجموعة. على الرغم من أنه من الممكن نظريًا إنشاء مجموعة MySQL تعتمد على خادمين فقط، مع مثل هذه البنية، بمجرد تعطل خادم واحد، لا يمكن للمجموعة الاستمرار في العمل بشكل طبيعي، وبالتالي فقدان معنى المجموعة. لهذا السبب، يلزم وجود خادم ثالث للتشغيل كعقدة إدارة. بالإضافة إلى ذلك، قد لا يمتلك العديد من الأصدقاء البيئة الفعلية لثلاثة خوادم، لذا قد يفكرون في إجراء تجارب على برنامج VMWare أو أجهزة افتراضية أخرى.
ويفترض ما يلي حالة هذه الخدمات الثلاث:
الخادم 1: mysql1.vmtest.net 192.168.0.1
الخادم 2: mysql2.vmtest.net 192.168.0.2
الخادم 3: mysql3.vmtest.net 192.168.0.3
يعمل Servers1 وServer2 كخوادم تقوم فعليًا بتكوين مجموعة MySQL. متطلبات Server3 كعقدة إدارة أقل مطلوبة فقط تعديلات صغيرة على نظام Server3 وليست هناك حاجة لتثبيت MySQL. يمكن لـ Server3 استخدام جهاز كمبيوتر بتكوين أقل ويمكنه تشغيل خدمات أخرى على Server3 في نفس الوقت. 2. قم بتثبيت MySQL على Server1 وServer2
===================== من [url]/u/info_img/2009-05/30/url] قم بتنزيل mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz ملاحظة: يجب أن يكون الإصدار الأقصى من MySQL. الإصدار القياسي لا يدعم النشر العنقودي. يجب تنفيذ الخطوات التالية مرة واحدة على Server1 وServer2.
# mv mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz /usr/local/
# قرص مضغوط /usr/local/
# إضافة مجموعة MySQL
# useradd -g mysql mysql
# القطران -zxvf mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz
# rm -f mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz
# mv mysql-max-4.1.9-pc-linux-gnu-i686 mysql
# قرص الخلية
# scripts/mysql_install_db --user=mysql
# جذر تشاون -R .
# بيانات mysql chown -R
# chgrp -R الخلية .
# ملفات دعم cp/mysql.server /etc/rc.d/init.d/mysqld
# chmod +x /etc/rc.d/init.d/mysqld
# chkconfig --add mysqld لا تقم بتشغيل MySQL في هذا الوقت!
تثبيت وتكوين خادم عقدة الإدارة (Server3)
============================== كخادم عقدة إدارة، يتطلب Server3 ملفين: ndb_mgm و ndb_mgmd : تنزيل mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz من [url]/u/info_img/2009-05/30/url]
# mkdir /usr/src/mysql-mgm
# cd /usr/src/mysql-mgm
# القطران -zxvf mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz
# rm mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz
# القرص المضغوط MySQL-MAX-4.1.9-pc-linux-gnu-i686
# mv بن/ndb_mgm .
# mv بن/ndb_mgmd .
# شمود +x ndb_mg*
# مف ndb_mg* /usr/bin/
#قرص مضغوط
# rm -rf /usr/src/mysql-mgm ابدأ الآن في إنشاء ملف التكوين لخادم عقدة الإدارة هذا:
# mkdir /var/lib/mysql-cluster
# cd /var/lib/mysql-cluster
# vi config.ini أضف المحتوى التالي إلى config.ini:
[NDBD الافتراضي]
NoOfReplicas=2
[MYSQLD الافتراضي]
[NDB_MGMD الافتراضي]
[بروتوكول التعاون الفني الافتراضي]
#إدارة الخادم
[NDB_MGMD]
HostName=192.168.0.3 # عنوان IP لخادم عقدة الإدارة Server3
# محركات التخزين
[ندبد]
HostName=192.168.0.1 # عنوان IP لمجموعة MySQL Server1
DataDir= /var/lib/mysql-cluster
[ندبد]
HostName=192.168.0.2 # عنوان IP لمجموعة MySQL Server2
DataDir=/var/lib/mysql-cluster
# يمكن لـ [MYSQLD] التاليين ملء أسماء مضيفي Server1 وServer2.
# ومع ذلك، من أجل استبدال الخادم في المجموعة بشكل أسرع، يوصى بتركه فارغا، وإلا يجب تغيير هذا التكوين بعد استبدال الخادم.
[ميسكلد]
[MYSQLD] بعد الحفظ والخروج، ابدأ تشغيل خادم عقدة الإدارة Server3:
# بعد بدء عقدة الإدارة باستخدام ndb_mgmd، يجب ملاحظة أن هذه ليست سوى خدمة عقدة الإدارة، وليست محطة الإدارة. ولذلك لن ترى أي معلومات الإخراج حول بدء التشغيل. 4. قم بتكوين خادم المجموعة وابدأ تشغيل MySQL
===================== يجب إجراء التغييرات التالية في كل من Server1 وServer2:
# السادس /etc/my.cnf
[ميسكلد]
ndbcluster
ndb-connectstring=192.168.0.3 عنوان IP الخاص بـ #Server3
[mysql_cluster]
ndb-connectstring=192.168.0.3 # بعد حفظ عنوان IP الخاص بـ Server3 والخروج، أنشئ دليل بيانات وابدأ MySQL:
# mkdir /var/lib/mysql-cluster
# cd /var/lib/mysql-cluster
# /usr/local/mysql/bin/ndbd --initial
# /etc/rc.d/init.d/mysqld start يمكنك إضافة /usr/local/mysql/bin/ndbd إلى /etc/rc.local لبدء التشغيل. ملاحظة: ما عليك سوى استخدام المعلمة --initial عند بدء تشغيل ndbd للمرة الأولى أو بعد إجراء تغييرات على config.ini الخاص بـ Server3! 5. التحقق من حالة العمل
================ ارجع إلى خادم عقدة الإدارة Server3 وابدأ تشغيل محطة الإدارة:
# /usr/bin/ndb_mgm اكتب الأمر show لعرض حالة العمل الحالية: (ما يلي مثال على إخراج الحالة)
[root@mysql3 root]# /usr/bin/ndb_mgm
-- مجموعة NDB -- عميل الإدارة --
ndb_mgm> اعرض
متصل بخادم الإدارة على: المضيف المحلي: 1186
تكوين الكتلة
--------------------------
[ndbd(NDB)] 2 عقدة (عقدة)
id=2 @192.168.0.1 (الإصدار: 4.1.9، Nodegroup: 0، Master)
id=3 @192.168.0.2 (الإصدار: 4.1.9، مجموعة العقد: 0)
[ndb_mgmd(MGM)] 1 عقدة (عقدة)
المعرف=1 @192.168.0.3 (الإصدار: 4.1.9)
[mysqld(API)] 2 عقدة (عقدة)
المعرف=4 (الإصدار: 4.1.9)
المعرف=5 (الإصدار: 4.1.9)
ndb_mgm>
إذا لم تكن هناك مشاكل أعلاه، فابدأ باختبار MySQL الآن: لاحظ أن هذا المستند لا يقوم بتعيين كلمة مرور الجذر لـ MySQL، ومن المستحسن أن تقوم بتعيين كلمة مرور جذر MySQL لـ Server1 وServer2 بنفسك. في الخادم 1:
# /usr/local/mysql/bin/mysql -u root -p
> اختبار الاستخدام؛
> إنشاء جدول ctest (i INT) ENGINE=NDBCLUSTER;
> أدخل في قيم ctest () (1)؛
> SELECT * FROM ctest يجب أن تكون قادرًا على رؤية المعلومات التي تم إرجاعها لصف واحد (قيمة الإرجاع 1). إذا كان ما ورد أعلاه طبيعيًا، فانتقل إلى Server2 وكرر الاختبار أعلاه لمراقبة التأثير. في حالة النجاح، قم بتنفيذ INSERT في Server2 ثم قم بالتبديل مرة أخرى إلى Server1 لملاحظة ما إذا كان يعمل بشكل طبيعي. إذا لم تكن هناك مشاكل، تهانينا على النجاح! 6. الاختبار المدمر
============== افصل كابل الشبكة الخاص بـ Server1 أو Server2 ولاحظ ما إذا كان خادم المجموعة الآخر يعمل بشكل طبيعي (يمكنك استخدام استعلام SELECT للاختبار). بعد اكتمال الاختبار، أعد إدخال كابل الشبكة. إذا لم يكن لديك إمكانية الوصول إلى الخادم الفعلي، أي أنه لا يمكنك فصل كابل الشبكة، فيمكنك أيضًا الاختبار على النحو التالي: على Server1 أو Server2:
# ps aux |.grep ndbd سوف يرى جميع معلومات عملية ndbd:
الجذر 5578 0.0 0.3 6220 1964 س 03:14 0:00 ثانية
الجذر 5579 0.0 20.4 492072 102828 ؟ ر 03:14 0:04
root 23532 0.0 0.1 3680 684 pts/1 S 07:59 0:00 grep ndbd ثم قم بإنهاء عملية ndbd لتدمير خادم مجموعة MySQL:
# kill -9 5578 بعد 5579، استخدم استعلام SELECT على خادم نظام مجموعة آخر للاختبار. وإذا قمت بتنفيذ أمر show في محطة الإدارة لخادم عقدة الإدارة، فسترى حالة الخادم التالف. بعد اكتمال الاختبار، ما عليك سوى إعادة تشغيل عملية ndbd للخادم التالف:
#انتباه! كما ذكرنا من قبل، ليست هناك حاجة لإضافة المعلمة --initial في هذا الوقت! عند هذه النقطة، اكتمل تكوين مجموعة MySQL!