MySQL Cluster একটি ডিস্ট্রিবিউটেড ডেটাবেস সিস্টেম যা MySQL এর উপর ভিত্তি করে তৈরি। এটি উচ্চ প্রাপ্যতা, উচ্চ পারফরম্যান্স, এবং স্কেলেবিলিটি প্রদান করার জন্য ডিজাইন করা হয়েছে। MySQL Cluster বিভিন্ন ডাটানোড (data nodes), মেম্বার সার্ভার (management nodes), এবং SQL নোড (SQL nodes) এর সমন্বয়ে কাজ করে।
এখানে একটি MySQL Cluster ডেপ্লয়মেন্টের উদাহরণ দেওয়া হচ্ছে, যা 3টি ডাটানোড, 2টি SQL নোড এবং 1টি ম্যানেজমেন্ট নোড নিয়ে গঠিত।
MySQL Cluster Architecture
- Data Nodes: ডাটানোডগুলোতে ডেটা স্টোর হয় এবং তারা ডেটা পার্টিশনিং, রেপ্লিকেশন এবং লোড ব্যালান্সিং পরিচালনা করে।
- SQL Nodes: SQL নোডগুলো ক্লায়েন্টদের কাছ থেকে SQL কুয়েরি গ্রহণ করে এবং সেগুলোকে ডাটানোডে পাঠিয়ে দেয়।
- Management Node: ম্যানেজমেন্ট নোডটি ক্লাস্টার কনফিগারেশন এবং ম্যানেজমেন্টের জন্য ব্যবহৃত হয়। এটি ক্লাস্টার স্ট্যাটাস মনিটর এবং ক্লাস্টার ফাংশন পরিচালনা করে।
MySQL Cluster Deployment Steps
ধাপ 1: প্রয়োজনীয় প্যাকেজ ইনস্টলেশন
প্রথমে, MySQL Cluster এর সমস্ত নোডে প্রয়োজনীয় প্যাকেজগুলো ইনস্টল করতে হবে। আপনি MySQL Cluster এর জন্য MySQL NDB Cluster প্যাকেজ ডাউনলোড এবং ইনস্টল করতে পারবেন।
sudo apt-get update
sudo apt-get install mysql-cluster-community-server mysql-cluster-community-client mysql-cluster-community-management-server
এটি সার্ভারের সমস্ত নোডে ইনস্টল করুন।
ধাপ 2: MySQL Cluster ম্যানেজমেন্ট কনফিগারেশন
ম্যানেজমেন্ট নোড (Management Node) কনফিগারেশনের জন্য /etc/mysql/my.cnf ফাইলে কিছু পরিবর্তন করতে হবে। এখানে config.ini ফাইলটি ব্যবহার করা হয় যা ক্লাস্টারের নোডগুলো কনফিগার করে।
Management Node Configuration (config.ini):
MySQL Cluster এর কনফিগারেশন ফাইলটি ম্যানেজমেন্ট নোডে থাকে। এই ফাইলটি ব্যবহার করে, আপনি ক্লাস্টারের সকল নোডের কনফিগারেশন নির্ধারণ করেন।
[ndbd default]
NoOfReplicas=2
DataMemory=80M
IndexMemory=18M
[ndb_mgmd]
HostName=management-node-ip
DataDir=/var/lib/mysql-cluster
[ndbd]
HostName=data-node1-ip
DataDir=/var/lib/mysql-cluster
[ndbd]
HostName=data-node2-ip
DataDir=/var/lib/mysql-cluster
[ndb_mgmd]
HostName=management-node-ip
[mysql_cluster]
NoOfReplicas=2: প্রতিটি ডাটানোডের জন্য ২টি রিপ্লিকা।DataMemory=80M: ডাটা সঞ্চয়ের জন্য ৮০MB মেমরি।IndexMemory=18M: ইনডেক্স সংরক্ষণের জন্য ১৮MB মেমরি।HostName: প্রতিটি নোডের IP অ্যাড্রেস।
ধাপ 3: Data Nodes কনফিগারেশন
ডাটানোডের কনফিগারেশনও /etc/my.cnf ফাইলে করা হয়। এটি ডাটানোডের জন্য সার্ভারের কনফিগারেশন সেটআপ করে।
- Data Node Configuration (my.cnf):
[mysqld]
ndbcluster
ndb-connectstring=management-node-ip
এটি ডাটানোডে ndbcluster সক্রিয় করে এবং ndb-connectstring এর মাধ্যমে ম্যানেজমেন্ট নোডের IP অ্যাড্রেস সংযুক্ত করে।
ধাপ 4: SQL Node কনফিগারেশন
SQL নোডে সাধারণ MySQL কনফিগারেশন ফাইলের মধ্যে ndbcluster সেটিং যোগ করতে হবে যাতে SQL সার্ভারটি MySQL Cluster এর সাথে সংযুক্ত হতে পারে।
- SQL Node Configuration (my.cnf):
[mysqld]
ndbcluster
ndb-connectstring=management-node-ip
এটি SQL নোডে ndbcluster সক্রিয় করে এবং ndb-connectstring এর মাধ্যমে ম্যানেজমেন্ট নোডের IP অ্যাড্রেস সংযুক্ত করে।
ধাপ 5: MySQL Cluster সার্ভিস শুরু করা
এখন সমস্ত নোডে MySQL Cluster সার্ভিস চালু করতে হবে।
Management Node:
sudo ndb_mgmd -f /etc/mysql/my.cnfData Nodes:
sudo ndbdSQL Nodes:
sudo service mysql start
ধাপ 6: Cluster Status চেক করা
MySQL Cluster শুরু হওয়ার পর, ndb_mgm কমান্ড ব্যবহার করে আপনি Cluster এর স্ট্যাটাস চেক করতে পারবেন।
ndb_mgm
এটি আপনাকে MySQL Cluster এর বর্তমান স্ট্যাটাস দেখাবে এবং বিভিন্ন নোডের অবস্থা, যেমন: OK বা Not Started।
ধাপ 7: MySQL Cluster টেবিল তৈরি করা
MySQL Cluster এ টেবিল তৈরি করার সময় আপনাকে NDB স্টোরেজ ইঞ্জিন ব্যবহার করতে হবে।
CREATE TABLE my_table (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(100),
PRIMARY KEY (id)
) ENGINE = NDB;
এটি NDB স্টোরেজ ইঞ্জিন ব্যবহার করে MySQL Cluster এ একটি টেবিল তৈরি করবে।
MySQL Cluster Management
MySQL Cluster পরিচালনার জন্য কিছু গুরুত্বপূর্ণ টুলস রয়েছে:
- ndb_mgmd: ম্যানেজমেন্ট নোড চালানো ও কনফিগারেশন পরিচালনা।
- ndbd: ডাটানোড চালানো।
- ndb_mgm: MySQL Cluster ম্যানেজমেন্ট ক্লায়েন্ট, যা ক্লাস্টারের স্ট্যাটাস দেখতে এবং নিয়ন্ত্রণ করতে সাহায্য করে।
MySQL Cluster Scalability
MySQL Cluster একটি স্কেলেবল সিস্টেম এবং আপনি নতুন data node বা SQL node যোগ করতে পারেন। ক্লাস্টারটি স্বয়ংক্রিয়ভাবে লোড ব্যালান্সিং এবং ডেটার রিপ্লিকেশন পরিচালনা করে।
সারাংশ
MySQL Cluster একটি উচ্চ প্রাপ্যতা, স্কেলেবল, এবং ডিস্ট্রিবিউটেড ডেটাবেস সিস্টেম যা MySQL এর উপর ভিত্তি করে তৈরি। এটি Data Nodes, SQL Nodes, এবং Management Nodes এর সমন্বয়ে গঠিত। MySQL Cluster ডেপ্লয়মেন্টের মাধ্যমে আপনি বড় এবং উচ্চ-প্রদর্শন ডেটাবেস অ্যাপ্লিকেশন তৈরি করতে পারেন, যা দ্রুত ডেটা অ্যাক্সেস এবং উচ্চ পারফরম্যান্স প্রদান করে। MySQL Cluster এর কনফিগারেশন এবং পরিচালনা করার জন্য বিভিন্ন কমান্ড এবং টুলস ব্যবহৃত হয়, এবং এই সিস্টেমটি সহজে স্কেল করা যায়।
Read more