
ذكاء الأعمال كخدمة
جرب خدمة PlusClouds إيجلت واكتشف فرص وعملاء محتملين عالي الجودة في مجال الأعمال بين الشركات بدعم الذكاء الاصطناعي
قبل الانتقال إلى قسم كيفية القيام بذلك، دعونا نتحدث قليلاً عن المتطلبات.
الآن، بعد أن تحدثنا باختصار عن المتطلبات، يمكننا الانتقال إلى قسم التكوين.
ستكون خطوتنا الأولى هي إعداد نفس تكوين NTP على كلا الجهازين. إذا لم تكن قد قمت بتثبيته بعد، يمكنك تثبيته باستخدام الأمر التالي.
apt -y install ntp
الآن سنقوم بتكوين خوادم NTP التي قمنا بتثبيتها لتتزامن مع بعضها البعض. سنستخدم خوادم NTP من آسيا في مقالتنا.
*nano /etc/ntp.conf*
server 0.asia.pool.ntp.org iburst
server 1.asia.pool.ntp.org iburst
server 2.asia.pool.ntp.org iburst
server 3.asia.pool.ntp.org iburst
بعد تعديل ملف التكوين، نقوم بحفظه وإعادة تشغيل خدمة NTP.
*/etc/init.d/ntp restart*
يجب على جميع الخوادم التي نستخدمها التعرف على بعضها البعض والتواصل بسلاسة. إذا كان متاحًا، يمكنك استخدام DNS محلي. نظرًا لأننا لا نملك DNS في مثالنا، سنقوم بتكوين ملف hosts.
*nano /etc/hosts*
master_server_ip master_server_hostname
slave_server_ip slave_server_hostname
تذكر أنه يجب إجراء جميع التكوينات التي سنقوم بها بشكل كامل على جميع الخوادم لا تنسى .
إذا لم تكن قد قمت بتثبيته في بداية المقال، يجب عليك أولاً تثبيت UFW باستخدام الأمر أدناه.
apt -y install ufw
إذا كنت متصلاً باستخدام SSH، يجب عليك أولاً السماح بالمنفذ SSH بعد التثبيت. خلاف ذلك، قد تفقد اتصال SSH الخاص بك عند تشغيل خدمة UFW.
ufw allow 22
ufw allow from slave_server_ip to any port 3306
systemctl enable ufw
systemctl start ufw
ufw enable
أولاً، سمحنا بالمنفذ 22، أي منفذ SSH، ثم القاعدة التي كتبناها هي إذن المنفذ 3306 المستخدم بواسطة MySQL. لا تنسَ تغيير الجزء slave_server_ip بعنوان IP لجهاز العبد الخاص بك.
إذا كانت كل شيء حتى هذه النقطة على ما يرام، فسنبدأ في تكوين خادم الماستر.
يقع ملف تكوين خادم MySQL في Debian 10 باسم **mysqld.cnf** تحت المجلد **/etc/mysql/mysql.conf.d/**. أولاً، نفتح خادمنا الماستر باستخدام محرر **nano**. إذا كان لديك محرر مختلف تفضله، يمكنك استخدامه أيضًا.
nano /etc/mysql/mysql.conf.d/mysqld.cnf
بعد فتح الملف، أولاً نقوم بتعديل عنوان الاتصال. يجب تعديل السطر المضاف أدناه إذا لم يكن موجودًا.
bind-address = master_server_ip
بعد إجراء تعديل bind-address، ابحث عن سطر **server-id**. إذا لم يكن موجودًا، أضفه كما في السابق. يمكنك إعطاء قيمة 1، يجب أن تكون هذه القيمة فريدة للخوادم.
server-id = 1
بعد الانتهاء من هذه الخطوة، يجب تحديد موقع ملف السجل الثنائي لـ MySQL. إذا لم يتم تحديد هذا المسار، فإن تسجيل السجل الثنائي يكون غير نشط، ولن يعرف خادم العبد الخاص بك ما يجب النسخ المتماثل له لأنه لن يتمكن من قراءة ملف السجل. نقوم بتحديد المسار كما هو أدناه.
log_bin = /var/log/mysql/mysql-bin.log
أخيرًا، يجب تحديد قاعدة البيانات أو قواعد البيانات التي سيتم النسخ المتماثل لها.
binlog_do_db = testdb
بعد الانتهاء من التعديلات، احفظ عن طريق الضغط على CTRL + X، Y و ENTER.
بعد الخروج، نعيد تشغيل خدمة MySQL.
systemctl restart mysql
لقد انتهينا من جزء تكوين خادم الماستر، لكن قبل الانتقال إلى خادم العبد، لدينا بعض الأمور الصغيرة الأخرى للقيام بها هنا. نحتاج إلى إنشاء مستخدم يمكن لخادم العبد الاتصال به ومنحه الأذونات. نتابع عن طريق الدخول إلى قشرة MySQL.
mysql -u root -p
CREATE USER 'slave_user'@'slave_server_ip' IDENTIFIED WITH mysql_native_password BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'slave_server_ip';
FLUSH PRIVILEGES;
مع ذلك، انتهينا من تكوين خادم الماستر الخاص بنا. على الرغم من أن تكويننا قد اكتمل، إلا أنه لا تخرج من قشرة MySQL بعد. في الخطوة التالية، سنقوم بالحصول على معلومات مهمة تتعلق بملف السجل الثنائي لقاعدتنا بياناتنا.
يقوم MySQL بتطبيق النسخ المتماثل من خلال نسخ الأحداث في قاعدة البيانات من ملف السجل الثنائي ومطابقة كل حدث على خادم العبد. ولهذا السبب، يجب علينا أيضًا توضيح اسم ملف السجل الثنائي لخادم الماستر وموقع معين داخل هذا الملف أثناء إعداد التكوين على جانب خادم العبد.
FLUSH TABLES WITH READ LOCK;
بعد ذلك، قم بتشغيل الكود التالي لعرض حالة ملفات السجل الثنائي.
SHOW MASTER STATUS;
```
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 | 899 | testdb | | |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
```
ستحصل على مخرجات مشابهة لما سبق.
إذا لم يكن لديك قاعدة بيانات حتى الآن على خادم الماستر، يجب عليك أولاً إلغاء القفل وإنشاء قاعدة البيانات.
UNLOCK TABLES;
CREATE DATABASE testdb;
بعد هذه الخطوة، نحن انتهينا من عملنا على خادم الماستر. لا تنسَ معلومات ملف السجل الثنائي التي حصلنا عليها من المخرجات أعلاه. سنستخدمها على خادم العبد بعد قليل.
في هذه الخطوة، نقوم بتغيير ملف التكوين بنفس الطريقة التي قمنا بها على خادم الماستر. نظرًا لأن الخطوات قد تم توضيحها أعلاه، فنحن نتجاوزها بسرعة.
nano /etc/mysql/mysql.conf.d/mysqld.cnf
server-id = 2
log_bin = /var/log/mysql/mysql-bin.log
binlog_do_db = testdb
أخيرًا، نضيف توجيه relay-log الذي يحدد مسار ملف السجل العابر على خادم العبد.
relay-log = /var/log/mysql/mysql-relay-bin.log
بعد الانتهاء من التعديلات، نعيد تشغيل خدمة MySQL هنا أيضاً.
systemctl restart mysql
الآن، نحن جاهزون لاختبار عملية النسخ المتماثل. ندخل إلى قشرة MySQL على خادم العبد.
mysql -u root -p
الآن جاء دور عملية النسخ المتماثل. نقوم بإدخال المعلومات التي يجب علينا إدخالها لخادم العبد من خادم الماستر.
CHANGE REPLICATION SOURCE TO
SOURCE_HOST='master_server_ip',
SOURCE_USER='slave_user',
SOURCE_PASSWORD='password',
SOURCE_LOG_FILE='mysql-bin.000001',
SOURCE_LOG_POS=899;
START REPLICA;
إذا تمت جميع الخطوات بشكل صحيح، اعتبارًا من هذه اللحظة، ستذهب جميع التغييرات التي تحدث في قاعدة البيانات **testdb** إلى خادم العبد أيضًا.
SHOW REPLICA STATUS\G
يمكننا رؤية حالة النسخ المتماثل على خادم العبد باستخدام الأمر أعلاه.
```
*************************** 1. row ***************************
Replica_IO_State: Waiting for master to send event
Source_Host: 'slave_server_ip'
Source_User: slave_user
Source_Port: 3306
Connect_Retry: 60
Source_Log_File: mysql-bin.000001
Read_Source_Log_Pos: 1273
Relay_Log_File: mysql-relay-bin.000003
Relay_Log_Pos: 729
Relay_Source_Log_File: mysql-bin.000001
```
ستحصل على مخرجات مماثلة لما سبق. لدينا الآن إعادة النسخ المتماثل MySQL التي تم إنشاؤها بواسطة علاقة الماستر-عبد. يمكنك اختبار ذلك عن طريق إضافة أي جدول إلى قاعدة بياناتك على خادم الماستر.
إذا كنت صحفياً، لديك رغبة في التعمق في المواضيع المتعلقة بالأعمال والقطاعات، نريد العمل معك!
مع أداة AutoQuill التي بدأت PlusClouds بتقديمها لشركائها، سيتمكن منشئو المحتوى من البيع بنقرة واحدة فقط. دعنا نوضح لك كيف يمكنك الحصول على نصيبك من هذه الثورة.