كيفية تثبيت MariaDB غاليرا العنقودية على أوبونتو 16.04

كيفية تثبيت MariaDB غاليرا العنقودية على أوبونتو 16.04

MariaDB غاليرا هو مجموعة متعددة الرئيسي ل MariaDB. منذ MariaDB 10.1 ، تم تجميع حزم خدمة MariaDB Server و MariaDB Galera Server وحزم Galera وتركيباتها تثبيتها تلقائيًا عند تثبيت MariaDB. حاليًا ، تدعم مجموعة MariaDB Galera Cluster محرك تخزين InnoDB / XtraDB فقط. في MariaDB 10.0 و 5.5 ، ستحتاج إلى تنزيله بشكل منفصل. يضيف MariaDB Galera التكرار لقاعدة بيانات الموقع. في MariaDB Galera Cluster ، تترابط خوادم قواعد البيانات المتعددة مع بعضها البعض وتبقى متزامنة.

يوفر MariaDB Galera الكثير من الميزات ، وبعضها مدرج أدناه:

  1. تزامن متزامن.
  2. عقدة تلقائية الانضمام.
  3. طوبولوجيا متعددة نشطة نشطة.
  4. تكرار متماثل حقيقي ، على مستوى الصف.
  5. قراءة وقابلية التدرج ، أزمنة زبائن أصغر.
  6. فشل العقد ، وانخفاض التلقائي من الكتلة.

في هذا البرنامج التعليمي ، سنشرح كيفية إعداد MariaDB Galera Cluster 10.1 مع عقد 3 على خادم Ubuntu 16.04. سنقوم أيضًا باختبار النسخ المتماثل لقاعدة البيانات بين جميع العقد.

متطلبات

  • ثلاث عقد تشغيل خادم أوبونتو 16.04.
  • Node1 مع عنوان IP ثابت 192.168.0.102 ، Node2 مع عنوان IP ثابت 192.168.0.103 و Node3 مع عنوان IP ثابت 192.168.0.104 تكوين على الخادم الخاص بك.
  • مستخدم غير الجذر مع امتيازات sudo الإعداد على جميع العقد.

ابدء

أولاً ، ستحتاج إلى تحديث جميع العقد باستخدام أحدث إصدار. يمكنك تحديث كل منهم بالأمر التالي:

sudo apt-get update -y
sudo apt-get upgrade -y

بعد ذلك ، أعد تشغيل جميع العقد لتطبيق هذه التغييرات. ثم قم بتسجيل الدخول مستخدم sudo وانتقل إلى الخطوة التالية.

تثبيت MariaDB غاليرا

يتم دمج باقات MariaDB Server و MariaDB Galera Server في إصدار MariaDB 10.1. افتراضيًا ، لا يتوفر MariaDB 10.1 في مستودعات Ubuntu الافتراضية ، لذا ستحتاج إلى إضافة مستودع MariaDB على جميع العقد.

أولاً ، أضف مفتاح مستودع MariaDB باستخدام الأمر التالي:

sudo apt-key adv –recv-keys –keyserver hkp: //keyserver.ubuntu.com: 80 0xF1656F24C74CD1D8

بعد ذلك ، قم بإضافة المستودع وتحديث ذاكرة التخزين المؤقت APT باستخدام الأمر التالي:

sudo add-apt-repository 'deb [arch = amd64، i386، ppc64el] http://ftp.utexas.edu/mariadb/repo/10.1/ubuntu xenial main'
sudo apt-get update -y

بمجرد تحديث المستودع ، قم بتثبيت MariaDB باستخدام الأمر التالي:

sudo apt-get install mariadb-server rsync -y

سيقوم الأمر أعلاه بتثبيت MariaDB مع Galera وعدة تبعيات. تظل أجزاء Galera نائمة حتى تتم تهيئتها ، مثل المكون الإضافي أو محرك التخزين. بمجرد تثبيت MariaDB على جميع العقد ، يمكنك المتابعة لتأمين MariaDB.

بشكل افتراضي لا يتم تثبيت تثبيت MariaDB ، لذلك سوف تحتاج إلى تثبيت تثبيت MariaDB. يمكنك القيام بذلك عن طريق تشغيل البرنامج النصي mysql_secure_installation:

sudo mysql_secure_installation

في هذه العملية ، سيطلب منك تعيين كلمة مرور الجذر ، وإزالة المستخدمين المجهولين ، وعدم السماح بجذر تسجيل الدخول عن بعد وإزالة قاعدة بيانات الاختبار. أجب على جميع الأسئلة كما هو موضح أدناه:

أدخل كلمة المرور الحالية للجذر (أدخل لا شيء): تغيير كلمة مرور الجذر؟ [Y / n] n إزالة المستخدمين المجهولين؟ [Y / n] Y عدم السماح بجذر تسجيل الدخول عن بُعد؟ [Y / n] Y إزالة قاعدة بيانات الاختبار والوصول إليها؟ [Y / n] Y إعادة تحميل جداول الامتيازات الآن؟ [Y / n] Y

بمجرد أن يتم تأمين MariaDB على جميع العقد ، يمكنك الانتقال إلى الخطوة التالية.

إعداد مجموعة MariaDB على Node1

أولاً ، انتقل إلى Node1 وقم بإنشاء ملف تكوين لغاليرا. بشكل افتراضي ، يقرأ MariaDB التكوين من الدليل /etc/mysql/conf.d/. للقيام بذلك ، قم بتشغيل الأمر التالي:

sudo nano /etc/mysql/conf.d/galera.cnf

أضف الأسطر التالية:

[mysqld] binlog_format = ROW default-storage-engine = innodb innodb_autoinc_lock_mode = 2 bind-address = 0.0.0.0 # تكوين موفر Galera wsrep_on = ON wsrep_provider = / usr / lib / galera / libgalera_smm.so # Galera Cluster Configuration wsrep_cluster_name = "galera_cluster" wsrep_cluster_address = "gcomm: // 192.168.0.102,192.168.0.103,192.168.0.104" # Galera Synchronization Configuration wsrep_sst_method = rsync # Galera Node Configuration wsrep_node_address = "192.168.0.102" wsrep_node_name = "Node1"

احفظ الملف عند الانتهاء.

ملحوظة: 192.168.0.102 هو عنوان IP الخاص بـ Node1

إضافة Node2 على غاليرا العنقودية

بعد ذلك ، انتقل إلى Node2 وأنشئ ملف تهيئة لـ Galera:

sudo nano /etc/mysql/conf.d/galera.cnf

أضف الأسطر التالية:

[mysqld] binlog_format = ROW default-storage-engine = innodb innodb_autoinc_lock_mode = 2 bind-address = 0.0.0.0 # تكوين موفر Galera wsrep_on = ON wsrep_provider = / usr / lib / galera / libgalera_smm.so # Galera Cluster Configuration wsrep_cluster_name = "galera_cluster" wsrep_cluster_address = "gcomm: // 192.168.0.102,192.168.0.103,192.168.0.104" # Galera Synchronization Configuration wsrep_sst_method = rsync # Galera Node Configuration wsrep_node_address = "192.168.0.103" wsrep_node_name = "Node2"

احفظ الملف عند الانتهاء.

ملحوظة: 192.168.0.103 هو عنوان IP الخاص بـ Node2.

إضافة Node3 على غاليرا العنقودية

بعد ذلك ، انتقل إلى Node3 وأنشئ ملف تهيئة لـ Galera:

sudo nano /etc/mysql/conf.d/galera.cnf

أضف الأسطر التالية:

[mysqld] binlog_format = ROW default-storage-engine = innodb innodb_autoinc_lock_mode = 2 bind-address = 0.0.0.0 # تكوين موفر Galera wsrep_on = ON wsrep_provider = / usr / lib / galera / libgalera_smm.so # Galera Cluster Configuration wsrep_cluster_name = "galera_cluster" wsrep_cluster_address = "gcomm: // 192.168.0.102,192.168.0.103,192.168.0.104" # Galera Synchronization Configuration wsrep_sst_method = rsync # Galera Node Configuration wsrep_node_address = "192.168.0.104" wsrep_node_name = "Node3"

احفظ الملف عند الانتهاء.

ملحوظة: 192.168.0.104 هو عنوان IP الخاص بـ Node3.

تكوين جدار الحماية

يستخدم Galera Cluster أربعة منافذ 3306 لاتصال عميل MySQL ، و 4444 لنقل Snapshot State ، و 4567 لحركة تكرار نظام Galera Cluster و 4568 لنقل الحالة التزايدي. لذلك سوف تحتاج إلى السماح لكل هذه المنافذ باستخدام جدار الحماية UFW. يمكنك القيام بذلك عن طريق تشغيل الأمر التالي على جميع العقد:

أولاً ، قم بتمكين جدار الحماية UFW باستخدام الأمر التالي:

sudo ufw تمكين

بعد ذلك ، اسمح لجميع المنافذ بالأمر التالي:

sudo ufw تسمح 3306 / tcp
sudo ufw تسمح 4444 / tcp
sudo ufw تسمح 4567 / tcp
sudo ufw تسمح 4568 / tcp
sudo ufw تسمح 4567 / udp

يمكنك بعد ذلك التحقق من حالة جدار الحماية باستخدام الأمر التالي:

sudo ufw الوضع

بمجرد تكوين جدار الحماية UFW على كافة العقد ، يمكنك المتابعة إلى الخطوة التالية.

بدء MariaDB غاليرا العنقودية

بعد تكوين جميع العقد بنجاح ، انتقل إلى Node1 وابدأ Galera Cluster.

قبل بدء تشغيل Galera ، يجب التأكد من إيقاف خدمة MariaDB على جميع العقد.

قم بتشغيل الأمر التالي على جميع العقد:

sudo systemctl stop mysql

الآن ، قم بتشغيل Galera Cluster على Node1 باستخدام الأمر التالي:

sudo galera_new_cluster

الآن ، تحقق من تشغيل الكتلة أم لا باستخدام الأمر التالي:

mysql -u root -p -e “show status like 'wsrep_cluster_size'”

إذا كان كل شيء على ما يرام سترى الإخراج التالي:

+ -------------------- + ------- + | Variable_name | القيمة | + -------------------- + ------- + | wsrep_cluster_size | 1 | + -------------------- + ------- +

على Node2 ، ابدأ خدمة MariaDB:

sudo systemctl start mysql

يمكنك التحقق من حالة خدمة MariaDB سواء كانت تعمل أم لا باستخدام الأمر التالي:

sudo systemctl status mysql

إذا كان كل شيء على ما يرام ، يجب أن تشاهد الإخراج التالي:

؟؟ mariadb.service - خادم قاعدة بيانات MariaDB المحملة: محمل (/lib/systemd/system/mariadb.service ؛ تم تمكينه ؛ بائع مقدم مسبقاً: ممكّن) نشط: نشط (تشغيل) منذ Sun 2017-09-17 10: 11: 20 EDT؛ 10min منذ عملية: 715 ExecStartPost = / bin / sh -c systemctl unset-environment _WSREP_START_POSITION (رمز = خرج ، الحالة = 0 / SUCCESS) العملية: 713 ExecStartPost = / etc / mysql / debian-start (رمز = خرج ، الحالة = 0 / SUCCESS) العملية: 545 ExecStartPre = / bin / sh -c [! -e / usr / bin / galera_recovery] && VAR = || VAR = `/ البيرة / بن / galera_recovery`. [$؟ -eq 0] && systemctl set Process: 535 ExecStartPre = / bin / sh -c systemctl unset-environment _WSREP_START_POSITION (رمز = خرج ، الحالة = 0 / SUCCESS) العملية: 514 ExecStartPre = / usr / bin / install -m 755 -o mysql -g root -d / var / run / mysqld (رمز = خرج ، الحالة = 0 / SUCCESS) PID الرئيسي: 661 (mysqld) الحالة: "أخذ طلبات SQL الخاصة بك الآن ..." المهام: 26 (الحد: 4915) CGroup: /system.slice/mariadb.service ؟؟؟؟؟؟ 661 / usr / sbin / mysqld Sep 17 10: 11: 11 debian systemd [1]: بدء تشغيل خادم قاعدة بيانات MariaDB ... سبتمبر 17 10: 11: 15 debyan mysqld [661]: 2017-09-17 10: 11: 15 140287134630464 [Note] / usr / sbin / mysqld (mysqld 10.1.26-MariaDB-0 + deb9u1) بدءًا من العملية سبتمبر 17 10: 11: 20 debian systemd [1 ]: بدأ خادم قاعدة البيانات ماريا دي بي.

الآن ، يجب أن تكون العقدة الثانية مرتبطة تلقائيًا بالكتلة. يمكنك التحقق من ذلك باستخدام الأمر التالي:

mysql -u root -p -e “show status like 'wsrep_cluster_size'”

إذا كان كل شيء يعمل بشكل جيد ، يجب تعيين حجم الكتلة إلى اثنين:

+ -------------------- + ------- + | Variable_name | القيمة | + -------------------- + ------- + | wsrep_cluster_size | 2 | + -------------------- + ------- +

على Node3 ، ابدأ خدمة MariaDB:

sudo systemctl start mysql
mysql -u root -p -e “show status like 'wsrep_cluster_size'”

إذا كان كل شيء يعمل بشكل جيد ، يجب تعيين حجم الكتلة إلى ثلاثة:

+ -------------------- + ------- + | Variable_name | القيمة | + -------------------- + ------- + | wsrep_cluster_size | 3 | + -------------------- + ------- +

تعمل المجموعة الآن وتتواصل مع بعضها البعض.

اختبار قاعدة بيانات النسخ المتماثل

الآن ، جميع العقد على الإنترنت ، وحان الوقت لاختبار النسخ المتماثل لقاعدة البيانات عبر Galera Cluster. لنبدأ بإنشاء قاعدة بيانات على Node1 وتحقق مما إذا كان يتم إجراء نسخ متماثل لها على جميع العقد.

أولاً ، قم بتسجيل الدخول إلى وحدة تحكم MariaDb باستخدام الأمر التالي:

mysql -u root -p

أدخل كلمة مرور الجذر وإنشاء قاعدة بيانات بالاسم test_db:

MariaDB [(none)]> create database test_db؛
MariaDB [(none)]> show databases؛

+ -------------------- + | قاعدة البيانات | + -------------------- + | test_db | + -------------------- +

الآن انتقل إلى Node2 و Node3 ، ثم تحقق من عمل النسخ المتماثل أم لا:

mysql -u root -p
MariaDB [(none)]> show databases؛

+ -------------------- + | قاعدة البيانات | + -------------------- + | test_db | + -------------------- +

تهانينا! لقد نجحت في تثبيت وتكوين MariaDB Galera Cluster على خادم Ubuntu 16.04.

استنتاج

آمل أن يكون لديك الآن معرفة كافية لتثبيت وتكوين MariaDB Galera Cluster على Ubuntu 16.04. يمكنك الآن توسيع نطاق العديد من العقد المتميزة بسهولة ، أو حتى العشرات. إذا كان لديك أي شك أو استفسار ، قم بإحالة الرابط Galera Cluster Doc

مصدر

منشور له صلة

أترك تعليق

يستخدم هذا الموقع Akismet لتقليل المحتوى غير المرغوب فيه. تعرف على كيفية معالجة بيانات تعليقك.