sql >> Databasteknik >  >> RDS >> Mysql

Kontrollera och optimera MySQL-databasen automatiskt med Crontab/Cron

MySQL är ett mycket populärt gratis men kraftfullt databassystem. Men även i stora databaser kan tabellerna bli fragmenterade med overhead på grund av kontinuerlig uppdatering, eller radera och infoga operation på data lagrad i databasen. Dessutom är det också möjligt att databaserna kan skadas. Därför är det en viktig uppgift att utföra hälsokontroll av databasen och optimera MySQL-servern regelbundet.

Det är lite besvärligt om databasadministratörerna måste logga in på servern eller starta phpMyAdmin för att optimera databaserna en efter en eller tabell för tabell manuellt. Ibland kan DB-administratören helt enkelt glömma bort att göra jobbet eller ställa in frekvensen för optimering till mindre tider. Det rekommenderas att alla tabeller i MySQL-databaser kontrolleras minst en gång om dagen på en upptagen server.

Det är möjligt att automatisera optimeringen av MySQL-processen genom att använda crontab-funktionen i Linux/Unix/CentOS/FreeBSD. Cron-jobbet för att kontrollera och optimera MySQL-databaser kan skapas med hjälp av mysqlcheck-klientverktyget kommer MySQL-installationen. mysqlcheck-klienten kan kontrollera, reparera, optimera och analysera tabeller i MySQL-databasen.

För att skapa ett nytt cron-jobb, logga in på servern som root eller någon annan användare och redigera sedan crontab-filen (i de flesta operativsystem, crontab -e kommer att öppna crontab-filen i standardtextredigeraren) för att lägga till i följande textrad. För användare som använder cPanel, klicka på "Cron jobb" där du kan ställa in crontab med dagliga, timmes och andra intervall. Erfarenhetswebbansvariga kan också skapa en crontab-fil i rc.hourly eller rc.daily eller annan cron-katalog. Observera att om du loggar in som en MySQL eller normal användare utan åtkomstbehörighet till alla databaser, är det inte möjligt att optimera alla databaser, såvida inte användar-ID och lösenord för root anges som i exemplet nedan.

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

Ovanstående uttalande har en syntax som liknar "mysqlcheck [options] –all-databases", där parametern –all-databases är standardåtgärden är ingen databaser specificerad och kan därför utelämnas. Kommandot kommer att köra mysqlcheck-klienten för att automatiskt analysera och optimera alla databaser klockan 1 varje dag. Observera att det inte finns mellanslag mellan -p och ditt lösenord för root. Du kan ändra körtiden efter dina önskemål och även ändra alternativen för kommandot mysqlcheck. Om du bara vill kontrollera och optimera vissa databaser eller vissa tabeller utan databasen, använd följande syntax:

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

Du kanske vill ta bort –auto-repair switch från kommandot ovan, eftersom en tabellreparationsoperation kan orsaka dataförlust under vissa omständigheter. Operationen på grund av orsaker inkluderar men är inte begränsad till filsystemfel. För de som har ändrat teckenuppsättningen och sammanställningen av MySQL-databaser kan också behöva använda –default-character-set alternativet. Mer information om alla tillgängliga switchar och tillgängliga alternativ finns här.


  1. Varför är SELECT utan kolumner giltigt

  2. Laddar data från en textfil till en tabell i oracle

  3. Hur vet man att installerad Oracle Client är 32-bitars eller 64-bitars?

  4. oracle systimestamp (sysdate) till millisekunder