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

क्रोंटैब/क्रोन के साथ MySQL डेटाबेस को स्वचालित रूप से जांचें और अनुकूलित करें

MySQL एक बहुत ही लोकप्रिय मुफ़्त लेकिन शक्तिशाली डेटाबेस सिस्टम है। लेकिन महान डेटाबेस में भी, निरंतर अद्यतन के कारण टेबल ओवरहेड के साथ खंडित हो सकते हैं, या डेटाबेस में संग्रहीत डेटा पर ऑपरेशन को हटा सकते हैं और सम्मिलित कर सकते हैं। इसके अलावा, यह भी संभावना है कि डेटाबेस दूषित हो सकते हैं। इस प्रकार, डेटाबेस पर स्वास्थ्य जांच करना और MySQL सर्वर को नियमित रूप से अनुकूलित करना एक महत्वपूर्ण कार्य है।

यदि डेटाबेस व्यवस्थापकों को सर्वर में लॉगिन करना है या डेटाबेस को एक-एक करके या तालिका द्वारा मैन्युअल रूप से अनुकूलित करने के लिए phpMyAdmin लॉन्च करना है तो यह थोड़ा परेशानी भरा है। कभी-कभी डीबी व्यवस्थापक बस काम करना भूल जाता है या अनुकूलन की आवृत्ति को कम समय पर सेट कर सकता है। यह अनुशंसा की जाती है कि व्यस्त सर्वर पर MySQL डेटाबेस में प्रत्येक तालिका को दिन में कम से कम एक बार चेक किया जाए।

Linux/Unix/CentOS/FreeBSD में crontab फ़ंक्शन का उपयोग करके MySQL प्रक्रिया के अनुकूलन को स्वचालित करना संभव है। MySQL डेटाबेस को चेक और ऑप्टिमाइज़ करने के लिए क्रॉन जॉब को mysqlcheck क्लाइंट यूटिलिटी का उपयोग करके बनाया जा सकता है, जो MySQL इंस्टालेशन आता है। mysqlcheck क्लाइंट MySQL डेटाबेस में तालिकाओं की जाँच, मरम्मत, अनुकूलन और विश्लेषण कर सकता है।

एक नया क्रॉन जॉब बनाने के लिए, सर्वर में रूट या किसी अन्य उपयोगकर्ता के रूप में लॉगिन करें, और फिर crontab फ़ाइल को संपादित करें (अधिकांश ऑपरेटिंग सिस्टम में, crontab -e पाठ की निम्न पंक्ति में जोड़ने के लिए डिफ़ॉल्ट पाठ संपादक में crontab फ़ाइल खोलेगा। cPanel का उपयोग करने वाले उपयोगकर्ताओं के लिए, "क्रॉन जॉब" पर क्लिक करें जहाँ आप दैनिक, प्रति घंटा और अन्य अंतराल पर क्रॉस्टैब सेट कर सकते हैं। अनुभवी वेबमास्टर rc.hourly या rc.daily या अन्य क्रॉन निर्देशिका में एक crontab फ़ाइल भी सेट कर सकते हैं। ध्यान दें कि यदि आप एक MySQL या सामान्य उपयोगकर्ता के रूप में लॉगिन करते हैं, जिसमें सभी डेटाबेस तक पहुंच नहीं है, तो सभी डेटाबेस को अनुकूलित करना संभव नहीं है, जब तक कि रूट के लिए उपयोगकर्ता आईडी और पासवर्ड नीचे दिए गए उदाहरण में निर्दिष्ट नहीं किया गया हो।

0 1 * * * mysqlcheck -Aao --auto-repair -u root -p[password] > /dev/null

उपरोक्त कथन में "mysqlcheck [विकल्प] -ऑल-डेटाबेस" के समान सिंटैक्स है, जहां -ऑल-डेटाबेस पैरामीटर डिफ़ॉल्ट क्रिया है कोई डेटाबेस निर्दिष्ट नहीं है इसलिए छोड़ा जा सकता है। यह कमांड प्रतिदिन सुबह 1 बजे सभी डेटाबेस का स्वचालित रूप से विश्लेषण और अनुकूलन करने के लिए mysqlcheck क्लाइंट चलाएगा। ध्यान दें कि रूट के लिए -p और आपके पासवर्ड के बीच कोई जगह नहीं है। आप अपनी पसंद के अनुसार चलने का समय बदल सकते हैं, और mysqlcheck कमांड के विकल्प भी बदल सकते हैं। यदि आप केवल कुछ डेटाबेस या डेटाबेस के बिना कुछ तालिकाओं की जाँच और अनुकूलन करना चाहते हैं, तो निम्न सिंटैक्स का उपयोग करें:

mysqlcheck [options] db_name [tables]
mysqlcheck [options] --databases DB1 [DB2 DB3...]

आप उपरोक्त कमांड से -ऑटो-रिपेयर स्विच को हटाना चाह सकते हैं, क्योंकि टेबल रिपेयर ऑपरेशन से कुछ परिस्थितियों में डेटा हानि हो सकती है, ऑपरेशन के कारणों में शामिल हैं, लेकिन फाइल सिस्टम त्रुटियों तक सीमित नहीं हैं। उन लोगों के लिए जिन्होंने MySQL डेटाबेस के कैरेक्टर सेट और कॉलेशन को बदल दिया है, उन्हें भी -डिफॉल्ट-कैरेक्टर-सेट विकल्प का उपयोग करने की आवश्यकता हो सकती है। सभी उपलब्ध स्विच और उपलब्ध विकल्पों के बारे में अधिक जानकारी यहां पाई जा सकती है।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ubuntu 14.04 पर MySQL स्थापित करें

  2. पहले से मौजूद डेटाबेस के आसपास फ्लास्क एप्लिकेशन कैसे बनाएं?

  3. MYSQLI_REPORT_STRICT का उपयोग करके mysqli को अपवाद कैसे बनाया जाए?

  4. मैसकल सबस्ट्रिंग के उदाहरणों की गणना करता है, फिर इसके अनुसार ऑर्डर करें

  5. मैं लैरवेल माइग्रेशन के साथ टाइमस्टैम्प कॉलम का डिफ़ॉल्ट मान वर्तमान टाइमस्टैम्प पर कैसे सेट कर सकता हूं?