कृपया उन्हें केवल OS में हटाएं नहीं।
आप mysqld आप के लिए ऐसा करने की जरूरत है। यहाँ है कैसे mysqld इसे प्रबंधित करता है:
फ़ाइल mysql-bin.[index]
सभी बाइनरी लॉग्स की सूची रखता है जो mysqld ने उत्पन्न की है और ऑटो-रोटेटेड है। के साथ संयोजन के रूप में बाहर की सफाई के लिए तंत्र 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 उन्हें आपके लिए लॉग हटा देगा
शोव STATUS \ G है
यह महत्वपूर्ण है। जब आप चलते हैं 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';
इस तरह, प्रतिकृति बाधित नहीं होती है।
[mysqld] expire_logs_days=3
(और आपको[mysqld]
अनुभाग में शामिल होना चाहिए