মাইএসকিএল-বিন ফাইলগুলি মুছে ফেলা কি নিরাপদ?


92

আমি মাইএসকিউএল মধ্যে এমএম আত্ম আছে, এবং আমি আলিঙ্গন বক্সে কিছু মুক্ত স্থান অপ্রয়োজনীয় ফাইল মুছে ফেলার হতে চাই, আমি এই জুড়ে এসেছিল mysql-binফাইল ভিতরে /var/db/mysql/আছে ঐ ফাইল শত শত মত mysql-bin.000123, mysql-bin.000223ইত্যাদি আমি করে MySQL রেপ্লিকেশন পরীক্ষা করেছি show master statusএবং show slave statusতারা নির্দিষ্ট কিছু পজিশনে কিছু মাইএসকিএল-বিন ফাইল ব্যবহার করে, তবে আমার ধারণা অন্যান্য সমস্ত ফাইল ফাইলগুলি অবশিষ্টাংশ যা আর ব্যবহার করা হবে না। এই ক্ষেত্রে প্রতিলিপি বর্তমানে নির্দেশ করছে এমন ফাইলগুলি বাদ দিয়ে mys সমস্ত মাইএসকিএল-বিন ফাইলগুলি মুছে ফেলা নিরাপদ?

যদি এটি মুছে ফেলা নিরাপদ হয়, তবে এই ফাইলগুলি ব্যবহার না হয়ে গেলে স্বয়ংক্রিয়ভাবে মোছার জন্য আমি কি কিছু করতে পারি ?

উত্তর:


136

দয়া করে কেবল ওএসে এগুলি মুছবেন না।

আপনার জন্য মাইএসকিএল্ডকে এটি করতে দেওয়া দরকার। এখানে কীভাবে মাইএসকিএলডি পরিচালনা করে:

ফাইলটি mysql-bin.[index]বাইনারি লগগুলি মাইএসকিএলডিডি তৈরি এবং স্বয়ংক্রিয়ভাবে ঘোরানো একটি তালিকা রাখে। এর সাথে মিলে বিনলোগগুলি পরিষ্কার করার পদ্ধতিগুলি হ'ল mysql-bin.[index]:

PURGE BINARY LOGS TO 'binlogname';
PURGE BINARY LOGS BEFORE 'datetimestamp';

এটি আপনার সুনির্দিষ্ট বাইনগ বা টাইমস্ট্যাম্পের আগে সমস্ত বাইনারি লগগুলি সাফ করবে।

উদাহরণস্বরূপ, যদি আপনি চালান

PURGE BINARY LOGS TO 'mysql-bin.000223';

এটি এর আগে সমস্ত বাইনারি লগগুলি মুছে ফেলবে mysql-bin.000223

আপনি যদি চালান

PURGE BINARY LOGS BEFORE DATE(NOW() - INTERVAL 3 DAY) + INTERVAL 0 SECOND;

এটি 3 দিন আগে মধ্যরাতের আগে সমস্ত বাইনারি লগগুলি মুছে ফেলবে।

আপনি যদি বিনলোগটি স্বয়ংক্রিয়ভাবে ঘুরিয়ে রাখতে চান এবং 3 দিন রাখুন তবে কেবল এটি সেট করুন:

mysql> SET GLOBAL expire_logs_days = 3;

তারপরে এটি যুক্ত করুন /etc/my.cnf

[mysqld]
expire_logs_days=3

এবং mysqld এগুলি আপনার জন্য লগ মুছে ফেলবে

স্লোভ স্ট্যাটাস দেখান \ জি

এটি গুরুত্বপূর্ণ। আপনি যখন চালান SHOW SLAVE STATUS\G, আপনি মাস্টার থেকে দুটি বাইনারি লগ দেখতে পাবেন:

  • Master_Log_File
  • Relay_Master_Log_File

যখন প্রতিরূপের সামান্য বা কোনও ল্যাগ নেই এগুলি সাধারণত একই মান হয়। যখন অনেকগুলি প্রতিলিপি পিছিয়ে যায়, এই মানগুলি পৃথক হয়। কেবল এটিকে সহজ করতে, যা আছে Relay_Master_Log_Fileতা চয়ন করুন এবং মাস্টারের কাছে ফিরে যান এবং চালান

PURGE BINARY LOGS TO 'Whatever Relay_Master_Log_File Is';

এইভাবে, প্রতিলিপি বাধাগ্রস্ত হয় না।


1
দয়া করে একটি টাইপো দ্রষ্টব্য - আন্ডারস্কোর, ড্যাশ না: [mysqld] expire_logs_days=3(এবং আপনি অন্তর্ভুক্ত করা আবশ্যক [mysqld]অধ্যায়
changokun

পছন্দ করুন my.cnf ড্যাশ গ্রহণ করবে। SET GLOBAL expire_logs_days = 3;মাইএসকিএল ক্লায়েন্ট থেকে চালানো সেগুলি গ্রহণ করবে না। মাইএসকিউএল ডক্সের উদাহরণ: dev.mysql.com/doc/refman/5.5/en/mysqld-option-tables.html
RolandoMySQLDBA

এটি আমার পক্ষে কাজ করে। প্রশ্ন, ... mysql> SET GLOBAL expire_logs_days = 3;এবং expire-logs-days=3মধ্যে পার্থক্য কি /etc/my.cnf.. তারা কি একই? এই বাড়াবাড়ি নাকি? বা, এটি SET GLOBAL...যোগ করার পরে চালানো গুরুত্বপূর্ণ expire-logs-days=..? ধন্যবাদ।
নিনো পাওলো

স্পষ্টতই সমস্ত লগগুলি সরিয়ে ফেলুন: PURGE BINARY LOGS BEFORE DATE(NOW());কেন এর জন্য কোনও বুদ্ধিমান ডিফল্ট নেই? আমার কোথাও নেই, স্পষ্টতা কখনও লগ ফাইলের আকারকে কিছুটা বিশাল পরিমাণে পরিবর্তিত করে না। আমার 10.0 গিগাবাইট লগ ফাইল ছিল, এই কমান্ডটি চালানোর পরে আমার মাইএসকিএল.বিন ফোল্ডারটির আকার 1.6 জিবিতে সঙ্কুচিত হয়েছে।
মাইকেল ট্রাউ

20

এটি সত্যই আপনার ব্যাকআপ কৌশলের উপর নির্ভর করে। বাইনারি লগগুলি প্রায় রাখার অন্যতম প্রধান কারণ হ'ল আপনার ডাটাবেসটিকে 'পয়েন্ট-ইন-টাইম'-এ পুনরুদ্ধার করা। যদি আপনার ডাটাবেস ক্রাশ হয় এবং পুনরুদ্ধারের প্রয়োজন হয়, আপনি সর্বশেষতম ব্যাকআপটি পুনরুদ্ধার করবেন এবং তারপরে সম্পূর্ণ ব্যাকআপের অবস্থানের সাথে শুরু করে বাইনারি লগগুলি খেলবেন।

সুতরাং, যদি আপনি প্রতিদিন একটি পুরো ব্যাকআপ করেন এবং আপনার কাছে 7 দিনের মূল্য বাইনারি লগ থাকে তবে সম্ভবত আপনি 4-6 দিনের মূল্যমানের বাইনারি লগগুলি মুছতে পারবেন। expire_logs_daysসেটিংটি সহ কত দিনের বাইনারি লগ রাখা হয় তা আপনি নিয়ন্ত্রণ করতে পারেন ।

আপনি যে বাইনারি লগগুলি লাগবেন না সেগুলি মুছে ফেলতে পারেন প্রথমে আপনি দেখতে চান যে প্রাচীনতম লগটি রাখতে চান তা:

ls -lh /path/to/binary/logs/mysql-bin.0*

এবং তারপরে mysql তে:

mysql> PURGE BINARY LOGS TO 'mysql-bin.XXXXX';

4

এটা চেষ্টা কর:

RESET MASTER;

নথি যেমন বলেছেন:

রিসেট মাস্টার আপনাকে বাইনারি লগিং শুরু হওয়ার আগে মাস্টারটিকে তার অবস্থায় ফিরিয়ে দিতে কোনও বাইনারি লগ ফাইল এবং তাদের সম্পর্কিত বাইনারি লগ সূচক ফাইল মুছতে সক্ষম করে।

এটি সম্পর্কিত সমস্ত বাইনারি লগ ফাইলগুলি মুছবে, যা আপনি যা চান তা নাও করতে পারে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.