Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

तारीख की मुहर लगी फाइलों को साफ करने के लिए लॉगरोटेट करें

लॉगरोटेट घुमाए गए लॉग फ़ाइल नामों की शाब्दिक रूप से क्रमबद्ध सूची में क्रम के अनुसार फ़ाइलों को हटा देता है, और फ़ाइल आयु (फ़ाइल के अंतिम संशोधन समय का उपयोग करके) द्वारा भी हटाता है

  • घुमाएं घुमाई गई फ़ाइलों की अधिकतम संख्या है, जो आपको मिल सकती है। यदि घुमाए गए लॉग फ़ाइलों की संख्या अधिक है, तो उनके नाम शाब्दिक रूप से क्रमबद्ध किए जाते हैं और शाब्दिक रूप से सबसे छोटे हटा दिए जाते हैं।

  • अधिकतम घुमाए गए लॉग फ़ाइलों को हटाने के लिए एक और मानदंड परिभाषित करता है। दी गई संख्या से अधिक पुरानी होने के कारण कोई भी घुमाई गई लॉग फ़ाइल हटा दी जाती है। ध्यान दें, कि फ़ाइल के अंतिम संशोधन समय से दिनांक का पता लगाया जाता है, फ़ाइल नाम से नहीं।

  • तारीख प्रारूप घुमाए गए फ़ाइलों में दिनांक के लिए विशिष्ट स्वरूपण की अनुमति देता है। मैन पेज नोट करता है कि प्रारूप का परिणाम शाब्दिक रूप से सही सॉर्टिंग में होगा

  • कल की तारीख एक दिन पहले लॉग फ़ाइल नामों में तिथियों का उपयोग करने की अनुमति देता है।

दैनिक रोटेट की गई फ़ाइलों (उदा. 7) में दिए गए दिनों को रखने के लिए, आपको rotate सेट करना होगा 7 के मान तक और आप maxage . को अनदेखा कर सकते हैं , यदि आपकी फ़ाइलें वास्तव में प्रतिदिन बनाई और घुमाई जाती हैं।

यदि कुछ दिनों के लिए लॉग निर्माण नहीं होता है, उदा। 14 दिनों के लिए, घुमाई गई लॉग फ़ाइलों की संख्या अभी भी वही (7) रहेगी।

maxage हमेशा पुरानी फ़ाइलों को हटाकर "लॉग नहीं बनाए गए" परिदृश्यों में स्थिति में सुधार करेगा। बिना लॉग उत्पादन के 7 दिनों के बाद कोई घुमाई गई लॉग फाइल मौजूद नहीं होगी।

आप dateformat . का उपयोग नहीं कर सकते जैसा कि ओपी दिखाता है, क्योंकि यह शाब्दिक रूप से क्रमबद्ध नहीं है। dateformat के साथ खिलवाड़ करना संभवतः आपके द्वारा वास्तव में चाही गई अन्य घुमाई गई लॉग फ़ाइलों को हटाने का परिणाम होगा।

युक्ति :-d . के साथ कमांड लाइन से logrotate चलाएँ ड्राई रन करने का विकल्प:आप देखेंगे कि लॉगरोटेट क्या करेगा लेकिन वास्तव में कुछ भी नहीं करता है। फिर -v . का उपयोग करके मैन्युअल रन करें (क्रिया) ताकि आप पुष्टि कर सकें कि जो किया गया है वह वही है जो आप चाहते हैं।

समाधान:क्रॉन द्वारा बनाए गए स्वच्छ लॉग

अवधारणा है:

क्रॉन को लॉग फाइल बनाने और अपडेट करने दें, लेकिन फाइल बनाने के लिए छोटे संशोधन करें, डिफ़ॉल्ट dateext का उपयोग करते समय लॉगरोटेट मानक फ़ाइल नामों का पालन करें।

/data/tier2/scripts/logs/recover_standby_SID.log-`date +\%Y\%m\%d`.log

लॉगरोटेट का उपयोग केवल बहुत पुरानी लॉग फ़ाइलों को हटाने के लिए करें

  • मौजूदा लॉग फ़ाइल को लक्षित न करें /data/tier2/scripts/logs/recover_standby_SID.log
  • missingok का उपयोग करें लॉगरोटेट क्लीनअप होने देने के लिए
  • सेट rotate पर्याप्त उच्च, रखने के लिए लॉग फ़ाइलों की संख्या को कवर करने के लिए (कम से कम 7, यदि एक दिन में एक "घुमाया" लॉग फ़ाइल होगी, लेकिन आप इसे सुरक्षित रूप से 9999 की तरह बहुत उच्च सेट कर सकते हैं)
  • सेट maxage से 7. यह उन फ़ाइलों को हटा देगा जिनका अंतिम संशोधन समय 7 दिनों से अधिक है।
  • dateext इसका उपयोग केवल यह सुनिश्चित करने के लिए किया जाता है कि घुमाए गए जैसी दिखने वाली पुरानी फ़ाइलों के लिए खोजों को लॉगरोटेट करें।

लॉगरोटेट कॉन्फ़िगरेशन फ़ाइल इस तरह दिखेगी:

data/tier2/scripts/logs/recover_standby_SID.log {
    daily
    missingok
    rotate 9999
    maxage 7
    dateext
}

समाधान:दिन में एक बार लॉगरोटेट करके सीधे घुमाएं

मुझे यकीन नहीं है कि स्रोत पुनर्प्राप्ति स्टैंडबाय फ़ाइल कैसे बनाई जाती है, लेकिन मैं मान लूंगा, Oracle या आपकी कुछ स्क्रिप्ट नियमित रूप से या लगातार एक फ़ाइल में संलग्न हो रही है /data/tier2/scripts/logs/recover_standby_SID.log

अवधारणा है:

  • फ़ाइल को दिन में एक बार logrotate . द्वारा घुमाएं
  • पुनर्प्राप्ति डेटा वाली लॉग फ़ाइल के साथ सीधे काम करना /data/tier2/scripts/logs/recover_standby_SID.log
  • daily दिन में एक बार रोटेशन का कारण बनेगा (कैसे cron . के संदर्भ में) समझता है daily )
  • rotate 7 (या कोई भी बड़ी संख्या) पर सेट होना चाहिए।
  • maxage 7 (दिन) पर सेट करें
  • dateext डिफ़ॉल्ट लॉगरोटेट दिनांक प्रत्यय का उपयोग करने के लिए
  • dateyesterday रोटेट की गई फ़ाइलों में दिनांक प्रत्यय एक दिन पहले होने के कारण उपयोग किया जाता है।
  • missingok घुमाने के लिए कोई नई सामग्री मौजूद न होने पर भी पुरानी फ़ाइलों को साफ़ करने के लिए।

लॉगरोटेट कॉन्फिगर इस तरह दिखेगा:

data/tier2/scripts/logs/recover_standby_SID.log {
    daily
    missingok
    rotate 7
    maxage 7
    dateext
    dateyesterday
}

ध्यान दें, कि आपको copytruncate . के साथ थोड़ा खेलने की आवश्यकता हो सकती है और इसी तरह के अन्य विकल्प जो बाहरी प्रक्रिया द्वारा बनाई गई स्रोत लॉग फ़ाइल से संबंधित हैं और यह रोटेशन के कार्य पर कैसे प्रतिक्रिया करता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle TO_DATE केवल समय इनपुट के साथ किस तर्क के आधार पर दिनांक घटक जोड़ देगा?

  2. Oracle JDBC तैयार वक्तव्य अनुगामी रिक्त स्थान पर ध्यान न दें

  3. क्या वर्तमान सत्र के लिए Oracle ट्रिगर अक्षम किया जा सकता है?

  4. Oracle 10 में स्थानीय अस्थायी तालिका (संग्रहीत प्रक्रिया के दायरे के लिए)

  5. डाउनटाइम और हॉटपैच एडॉप R12.2 . में मोड लागू करते हैं