দাস
যদি আপনার স্ল্যাভগুলি মাস্টার না হয় তবে স্লেভদের মোটেই বাইনারি লগিংয়ের দরকার নেই। আপনি স্লেভ দ্বারা জমে থাকা রিলে লগ স্পেসের পরিমাণে একটি ক্যাপ লাগাতে পারেন। 4 জি-তে রিলে লগগুলি থ্রোটল করার জন্য, relay_log_space_limit
প্রতিটি স্ল্যাভে /etc/my/.cnf যুক্ত করুন
[mysqld]
relay_log_space_limit=4G
এবং mysql পুনরায় আরম্ভ করুন
যদি আপনি এটি সেট করতে না পারেন তবে কমপক্ষে আপনার কাছে এমন এক ধরণের সতর্কতা থাকা উচিত যা SHOW SLAVE STATUS\G
কিনা Relay_Log_Space
(রিলে লগ দ্বারা ব্যবহৃত মোট বাইট) মূল্য দেয় এবং পরীক্ষা করে ।
শ্রীরামকৃষ্ণ
মাস্টার হিসাবে, আপনি expire_logs_days
1 এ সেট করতে পারেন তবে আপনার জন্য আমার কাছে একটি কঠোর সতর্কতা রয়েছে ...
যদি প্রতিলিপি বিরতি দেয়, আপনার এটি ঠিক করার জন্য আপনার 1 দিন রয়েছে। অন্যথায়, মাস্টারের একটি বাইনারি লগটি ঘোরানো হতে পারে এবং প্রতিলিপি পুনরুদ্ধার করতে আপনি কোনও পরিবর্তন মাস্টার চালাতে পারবেন না। আমি expire_logs_days
মাস্টার উপর 3 এ চলে যেতে হবে ।
পরামর্শ # 1
আপনার যদি রাতারাতি বাল্ক প্রসেসিং করতে থাকে SET SQL_LOG_BIN=0;
তবে সেশন শুরু করার সাথে সাথে মাস্টারটিতে বাল্ক প্রক্রিয়া চালানো উচিত । এটি অবশ্যই স্লেভের প্রতিলিপি তৈরি করবে না। আপনি উভয় স্লেভের সমান্তরালে একই বাল্ক লোড সম্পাদন করতে পারেন।
পরামর্শ # 2
মাস্টার বাইনারি লগগুলি সংগ্রহের জন্য আপনি যা করতে পারেন তা হ'ল এটি।
SHOW SLAVE STATUS\G
উভয় দাস চালান । তাকান Relay_Master_Log_File
। এটি মাস্টারের বাইনারি লগ উপস্থাপন করে যার শেষ কমান্ড স্লেভের উপর কার্যকর হয়েছিল।
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 10.4.92.250
Master_User: replicant
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.009677
Read_Master_Log_Pos: 855227755
Relay_Log_File: relay-bin.000674
Relay_Log_Pos: 757296783
Relay_Master_Log_File: mysql-bin.009590
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 757296646
Relay_Log_Space: 94274010765
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 80561
1 row in set (0.00 sec)
এই উদাহরণে, রিলে_মাস্টার_লগ_ফाइलটি মাইএসকিএল-বিন.009590। এর আগে সমস্ত বাইনারি লগগুলি মাস্টার থেকে সরানো যায়। আপনি মাস্টার এ চালাতে পারেন:
PURGE BINARY LOGS TO 'mysql-bin.009590';
এটি পুরানো লগগুলি মুছে ফেলবে এবং কৌশলগুলিতে এখনও প্রতিলিপি রেখে দেবে।
বিচারকার্য স্থগিত রাখার আদেশ
বাইনারি লগগুলি এমন ফাইলগুলি হয় যেগুলি সিরিয়ালি সংকলিত হয় (কোনও ফিফোর কাতারের মতো) সমস্ত সম্পূর্ণ এসকিউএল লেনদেনকে এসকিউএল বিবৃতি বা একটি সারি পরিবর্তন হিসাবে হয়। রিলে লগ এমন একটি ফাইল যা দূরবর্তী সার্ভার (ওরফে মাস্টার) থেকে বাইনারি লগ এন্ট্রি সংগ্রহ করে।
মাইএসকিউএল প্রতিরূপে
- মাস্টার অবশ্যই এর বাইনারি লগ সক্ষম থাকতে হবে
- স্লেভ রিলে লগগুলি সংকলন করে
- রিলে লগে সমস্ত এসকিউএল প্রক্রিয়া করা হয়, এটি মুছে ফেলা হয়
- একটি স্লেভে, যখন কোনও ডিবি সার্ভারে আরও বেশি রিলে লগ থাকে, এটি ইঙ্গিত করতে পারে যে প্রতিলিপি পিছনে পড়েছে কারণ আইও থ্রেড একটি মাস্টার থেকে এসকিউএল সংগ্রহ করছে যে এসকিউএল থ্রেড রিলে লগগুলি প্রসেস করতে পারে।
- রিলে_লগ_স্পেস_লিমিট ব্যবহার করে অনুলিপিটিকে পাইলিং করা এবং সম্ভাব্যত ডিস্কটি পূরণ করা থেকে বিরত করে। নিয়ম # 3 এর উপর ভিত্তি করে রিলে লগগুলি আবর্তিত হয়
- কোনও ডিবি সার্ভারের পক্ষে উভয়ই মাস্টার এবং স্লেভ হওয়া সম্ভব। এটিই একমাত্র পরিস্থিতিতে যার অধীনে স্লেভের অবশ্যই বাইনারি লগ সক্ষম থাকতে হবে। সেই দৃশ্যে, একটি ডিবি সার্ভারে বাইনারি লগ এবং রিলে লগ উভয়ই থাকবে।
যদি আপনি কোনও দাসের কাছে ব্যর্থ হন এবং আপনি এটিকে মাস্টার বানাতে চান
- পরিষেবা mysql স্টপ
- যোগ
log-bin=mysql-bin
স্লেভ উপর /etc/my.cnf করতে
- পরিষেবা mysql শুরু
আপনাকে স্লোভের ডেটা সদ্য প্রচারিত মাস্টারের কাছে সেটআপ করতে হবে এবং স্ল্যাভের ডেটা সদ্য প্রচারিত মাস্টারের সাথে মিলেছে কিনা তা নিশ্চিত করতে হবে
আপডেট 2012-08-13 17:47 ইডিটি
মাইএসকিউএল ডকুমেন্টেশন অন relay-log
অপশন অনুযায়ী আপনার এটি সংজ্ঞায়িত করা উচিত। এখানে কেন:
মাইএসকিউএল সার্ভার অপশনকে যে পদ্ধতিতে পার্স করে সেই কারণে, আপনি যদি এই বিকল্পটি নির্দিষ্ট করে থাকেন তবে আপনাকে অবশ্যই একটি মান সরবরাহ করতে হবে; ডিফল্ট বেসনামটি কেবল তখনই ব্যবহৃত হয় যখন বিকল্পটি সুনির্দিষ্টভাবে নির্দিষ্ট না করা হয়। যদি আপনি কোনও মান উল্লেখ না করে --relay-log অপশনটি ব্যবহার করেন তবে অপ্রত্যাশিত আচরণের ফলস্বরূপ; এই আচরণটি অন্যান্য ব্যবহৃত বিকল্পগুলির উপর নির্ভর করে, তারা নির্দিষ্ট করা ক্রমে এবং কমান্ড লাইনে বা কোনও বিকল্প ফাইলে সেগুলি নির্দিষ্ট করা আছে file মাইএসকিউএল কীভাবে সার্ভার বিকল্পগুলি পরিচালনা করে সে সম্পর্কে আরও তথ্যের জন্য বিভাগ 4.2.3, "প্রোগ্রাম বিকল্পগুলি নির্দিষ্ট করে" দেখুন।