Data Replication এর গুরুত্ব এবং কনফিগারেশন

MariaDB এর সিঙ্ক্রোনাইজেশন এবং রিপ্লিকেশন - মারিয়া ডিবি (MariaDB) - Database Tutorials

325

ডেটা রেপ্লিকেশন (Data Replication) হল একটি প্রক্রিয়া যার মাধ্যমে এক ডেটাবেসের ডেটা অন্য একটি ডেটাবেসে কপি করা হয়। মারিয়া ডিবি (MariaDB) তে রেপ্লিকেশন একাধিক সার্ভার মধ্যে ডেটা শেয়ার করার একটি অত্যন্ত গুরুত্বপূর্ণ টুল। এটি মূলত সিস্টেমের স্কেলিং, রেডানডেন্সি এবং ফেইলওভার ব্যবস্থাপনার জন্য ব্যবহৃত হয়। রেপ্লিকেশন একাধিক ডেটাবেস সার্ভারে একই ডেটা রেখে তা নিশ্চিত করে যে সার্ভারগুলো একই অবস্থা বজায় রাখছে।


Data Replication এর গুরুত্ব

  1. ফেইলওভার এবং রেডানডেন্সি: রেপ্লিকেশন সিস্টেমের পারফরম্যান্স উন্নত করতে সাহায্য করে এবং ফেইলওভার প্রক্রিয়ায় সাহায্য করে। যদি প্রাইমারি সার্ভারটি ডাউন হয়ে যায়, তবে সেকেন্ডারি সার্ভার (Replica) ডেটাবেস সার্ভার হিসেবে কাজ করতে পারে, ফলে সিস্টেমের ডাউনটাইম কমে যায়।
  2. লোড ব্যালান্সিং: মারিয়া ডিবি তে রেপ্লিকেশন ব্যবহৃত হলে, ইউজারদের কুইয়ারি লোড বিভিন্ন সার্ভারে ভাগ করা যায়। এইভাবে, বেশিরভাগ রিড অপারেশন সেকেন্ডারি সার্ভারগুলোর মাধ্যমে পরিচালিত হয়, যার ফলে প্রাইমারি সার্ভারের উপর লোড কমে যায় এবং পারফরম্যান্স বৃদ্ধি পায়।
  3. ডেটা ব্যাকআপ এবং রিকভারি: ডেটাবেস রেপ্লিকেশনটি ব্যাকআপ এবং পুনরুদ্ধারের জন্যও গুরুত্বপূর্ণ। রিপ্লিকা সার্ভারের মাধ্যমে ডেটার একটি কপি অন্য জায়গায় সংরক্ষণ করা যায়, যা মূল সার্ভারে কোনো সমস্যা হলে কাজে আসে।
  4. স্কেলেবিলিটি: রেপ্লিকেশন মারিয়া ডিবি সিস্টেমে স্কেলিং সহজ করে তোলে। নতুন রিপ্লিকা সার্ভার যুক্ত করে রিড-হেভি লোড শেয়ার করা যায় এবং পারফরম্যান্স বাড়ানো যায়।
  5. ডাটাবেস ম্যানেজমেন্ট: মারিয়া ডিবি তে রেপ্লিকেশন ডেটাবেস ম্যানেজমেন্ট সহজ করে, কারণ একাধিক সার্ভারকে একই ডেটাবেসের উপরে কাজ করার জন্য একসাথে কনফিগার করা যায়। এটি ডেটা ম্যানিপুলেশন এবং আপডেটের সময় সহজ করে তোলে।

MariaDB Data Replication কনফিগারেশন

মারিয়া ডিবি তে রেপ্লিকেশন কনফিগার করার জন্য, প্রাথমিকভাবে আপনাকে একটি Master-Slave (বা Primary-Replica) কনফিগারেশন সেটআপ করতে হবে। নিচে এর কনফিগারেশন প্রক্রিয়া বর্ণনা করা হল।


1. প্রাইমারি (Master) সার্ভার কনফিগারেশন

প্রথমে প্রাইমারি সার্ভারের my.cnf ফাইলে কিছু সেটিংস যোগ করতে হবে।

my.cnf ফাইলের মধ্যে নিচের কনফিগারেশন সেটিংস যোগ করুন:

[mysqld]
server-id = 1
log-bin = /var/log/mysql/mysql-bin.log
binlog-do-db = my_database

এখানে:

  • server-id: প্রতিটি সার্ভারের একটি ইউনিক আইডি হতে হবে। প্রাইমারি সার্ভারের জন্য এটি 1 হতে পারে।
  • log-bin: বাইনারি লগ ফাইলকে সক্রিয় করা হয়, যাতে সব ট্রানজেকশন লগ হয়ে থাকে এবং রিপ্লিকেশন করতে পারে।
  • binlog-do-db: নির্দিষ্ট ডেটাবেসের জন্য লগিং সক্ষম করে। এখানে my_database হল সেই ডেটাবেস যার জন্য রেপ্লিকেশন করতে চান।

এরপর, MariaDB সার্ভিসটি রিস্টার্ট করুন:

sudo systemctl restart mariadb

2. রিপ্লিকা (Slave) সার্ভার কনফিগারেশন

রিপ্লিকা সার্ভারে my.cnf ফাইলেও কিছু কনফিগারেশন পরিবর্তন করতে হবে।

my.cnf ফাইলে নিচের সেটিংস যোগ করুন:

[mysqld]
server-id = 2
relay-log = /var/log/mysql/mysql-relay-bin.log
log-bin = /var/log/mysql/mysql-bin.log
read-only = 1

এখানে:

  • server-id: রিপ্লিকার জন্য একটি আলাদা ইউনিক আইডি দিতে হবে, যেমন 2
  • relay-log: রেপ্লিকার লগ ফাইল যেখানে মূল সার্ভারের বাইনারি লগ সঞ্চিত থাকবে।
  • read-only: রিপ্লিকার উপর লেখা নিষিদ্ধ করা হয়, যাতে কেবলমাত্র রিড অপারেশন করা যায়।

এবার MariaDB সার্ভিসটি রিস্টার্ট করুন:

sudo systemctl restart mariadb

3. Master থেকে Replication User তৈরি করা

প্রাইমারি সার্ভারে একটি রিপ্লিকেশন ইউজার তৈরি করতে হবে, যাতে রিপ্লিকা সার্ভার এটির মাধ্যমে ডেটা রেপ্লিকেট করতে পারে। এই কাজটি করতে প্রাইমারি সার্ভারে লগইন করুন:

CREATE USER 'replica_user'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'replica_user'@'%';
FLUSH PRIVILEGES;

এখানে:

  • replica_user: রিপ্লিকেশন ইউজারের নাম।
  • password: ইউজারের পাসওয়ার্ড।

4. Replica সার্ভারে Replication শুরু করা

রিপ্লিকা সার্ভারে লগইন করুন এবং নিচের SQL কমান্ডটি চালান:

STOP SLAVE;
CHANGE MASTER TO MASTER_HOST='master_ip', MASTER_USER='replica_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=  106;
START SLAVE;

এখানে:

  • MASTER_HOST: প্রাইমারি সার্ভারের IP অ্যাড্রেস।
  • MASTER_USER: পূর্বে তৈরি করা রিপ্লিকেশন ইউজারের নাম।
  • MASTER_PASSWORD: রিপ্লিকেশন ইউজারের পাসওয়ার্ড।
  • MASTER_LOG_FILE: প্রাইমারি সার্ভারের বাইনারি লগ ফাইলের নাম।
  • MASTER_LOG_POS: লগ ফাইলের পজিশন যেখানে রিপ্লিকেশন শুরু হবে।

এটি রিপ্লিকার মাধ্যমে ডেটা সিঙ্ক্রোনাইজেশন শুরু করবে।


5. Replication Status চেক করা

রিপ্লিকেশন কনফিগারেশনের সফলতা নিশ্চিত করতে, রিপ্লিকা সার্ভারে নিচের কমান্ডটি চালান:

SHOW SLAVE STATUS\G

আপনি যদি Slave_IO_Running এবং Slave_SQL_Running উভয় ক্ষেত্রেই Yes দেখতে পান, তবে রেপ্লিকেশন সঠিকভাবে কাজ করছে।


রেপ্লিকেশন ফিচার ও স্ট্র্যাটেজি

  • Master-Slave Replication: এক প্রাইমারি সার্ভার এবং এক বা একাধিক রিপ্লিকা সার্ভার থাকে, যেখানে রিপ্লিকাগুলি শুধু রিড অপারেশন সম্পাদন করে।
  • Master-Master Replication: দুইটি সার্ভার একে অপরের মাস্টার এবং রিপ্লিকা হিসাবে কাজ করে। এটি ডেটা পরিবর্তন এবং রিড অপারেশন উভয়ের জন্য ব্যবহার করা হয়।
  • Circular Replication: একাধিক সার্ভারের মধ্যে ডেটা রেপ্লিকেশন হয় এবং প্রতিটি সার্ভার অপরটির জন্য মাস্টার এবং রিপ্লিকা হিসাবে কাজ করে।

সারাংশ

মারিয়া ডিবি তে Data Replication ডেটাবেসের রেডানডেন্সি, স্কেলেবিলিটি, এবং পারফরম্যান্স বৃদ্ধির জন্য অত্যন্ত গুরুত্বপূর্ণ। এটি বিভিন্ন সার্ভারে ডেটা কপি করে ডেটাবেসের ডাউনটাইম কমাতে, লোড ব্যালান্স করতে, এবং ফেইলওভার সক্ষম করতে সহায়তা করে। রেপ্লিকেশন কনফিগারেশন প্রাইমারি এবং রিপ্লিকা সার্ভারের মধ্যে সঠিকভাবে সিঙ্ক্রোনাইজেশন নিশ্চিত করার জন্য গুরুত্বপূর্ণ। Proper configuration and management of replication settings can provide high availability and improved performance for database systems.

Content added By
Promotion

Are you sure to start over?

Loading...