কম্পিউটার টিউটোরিয়াল

MySQL-এ রিপ্লিকেশন টাইপ (binlog_format) চেক ও পরিবর্তন করা

MySQL রিপ্লিকেশনে বাইনারি লগ ফরম্যাট (binlog_format) سه প্রকার হতে পারে: ROW, STATEMENT, বা MIXED। বর্তমান সেটিং চেক ও পরিবর্তন করতে SHOW VARIABLES ব্যবহার করুন।

বর্তমান রিপ্লিকেশন টাইপ চেক করুন

SHOW GLOBAL VARIABLES LIKE 'binlog_format';

নমুনা আউটপুট

+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| binlog_format | ROW   |
+---------------+-------+

রিপ্লিকেশন টাইপ পরিবর্তন করা

গ্লোবালি পরিবর্তন (সার্ভার রিস্টার্ট পর্যন্ত টিকবে)

SET GLOBAL binlog_format = 'STATEMENT';

সেশন স্তরে পরিবর্তন (শুধু বর্তমান কানেকশনের জন্য)

SET SESSION binlog_format = 'ROW';

স্থায়ী পরিবর্তন (my.cnf / my.ini)

[mysqld]
binlog_format = ROW

তিনটি ফরম্যাটের পার্থক্য

ফরম্যাটবর্ণনাফायदাঅপসাদন
ROW প্রতিটি সারি পরিবর্তন লগ করে সর্বাধিক নিরাপদ, ডেটা কনসিস্টেন্সি নিশ্চিত লগ আকার বড়, পারফরম্যান্স প্রভাবিত হতে পারে
STATEMENT SQL স্টেটমেন্ট লগ করে লগ আকার ছোট, পারফরম্যান্স ভালো Non-deterministic ক্যোয়ারির জন্য অননিরাপদ
MIXED প্রয়োজন অনুযায়ী ROW/STATEMENT স্যুইচ করে স متعادل সমাধান কয়েকশন জটিল লজিকের কারণে বাগ হতে পারে

সুপারিশ

MySQL 5.7+ এবং 8.0-এ ডিফল্ট ROW। অধিকাংশ প্রোডাকশন পরিবেশে ROW বা MIXED ব্যবহার করা উচিত ডেটা ইন্টিগ্রিটির জন্য।

সেশন পরিবর্তন যাচাই

SET SESSION binlog_format = 'ROW';
SHOW VARIABLES LIKE 'binlog_format';

আউটপুট

+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| binlog_format | ROW   |
+---------------+-------+
  1. MySQL-এ বর্তমান নির্বাচিত ডেটাবেস কীভাবে জানবেন?

  2. MySQL-এ TIME ডেটা টাইপ ব্যবহার করুন

  3. MySQL-এ TIMESTAMP কলাম সেট আছে কিনা যাচাই করা (WHERE DueDate > 0)

  4. MySQL ভার্সন কীভাবে চেক করবেন