sql >> Database teknologi >  >> RDS >> Mysql

Tjek og optimer MySQL-databasen automatisk med Crontab/Cron

MySQL er et meget populært gratis, men kraftfuldt databasesystem. Men selv i store databaser kan tabellerne blive fragmenteret med overhead på grund af kontinuerlig opdatering, eller slette og indsætte handling på data, der er gemt i databasen. Derudover er det også mulighed for, at databaserne kan blive beskadiget. Derfor er det en vigtig opgave at udføre sundhedstjek på databasen og optimere MySQL-serveren regelmæssigt.

Det er lidt besværligt, hvis databaseadministratorerne skal logge ind på serveren eller starte phpMyAdmin for at optimere databaserne én efter én eller tabel for tabel manuelt. Nogle gange glemmer DB-admin simpelthen at udføre jobbet eller indstiller frekvensen af ​​optimering til mindre tider. Det anbefales, at alle tabeller i MySQL-databaser kontrolleres mindst én gang om dagen på en travl server.

Det er muligt at automatisere optimeringen af ​​MySQL-processen ved at bruge crontab-funktionen i Linux/Unix/CentOS/FreeBSD. Cron-jobbet til at kontrollere og optimere MySQL-databaser kan oprettes ved at bruge mysqlcheck-klientværktøjet kommer MySQL-installation. mysqlcheck-klienten kan tjekke, reparere, optimere og analysere tabeller i MySQL-databasen.

For at oprette et nyt cron-job skal du logge ind på serveren som root eller en anden bruger og derefter redigere crontab-filen (i de fleste operativsystemer, crontab -e vil åbne crontab-filen i standard teksteditor) for at tilføje i den følgende tekstlinje. For brugere, der bruger cPanel, skal du klikke på "Cron job", hvor du kan konfigurere crontab med daglige, timelige og andre intervaller. Erfaringswebmastere kan også oprette en crontab-fil i rc.hourly eller rc.daily eller en anden cron-mappe. Bemærk, at hvis du logger ind som MySQL eller normal bruger uden adgangsrettigheder til alle databaser, er det ikke muligt at optimere alle databaser, medmindre bruger-id og adgangskode til root er angivet som i eksemplet nedenfor.

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

Ovenstående sætning har en syntaks svarende til "mysqlcheck [options] -all-databases", hvor -all-databases-parameteren er standardhandlingen, er ingen databaser angivet og kan derfor udelades. Kommandoen vil køre mysqlcheck-klienten for automatisk at analysere og optimere alle databaser kl. 1 om morgenen hver dag. Bemærk, at der ikke er mellemrum mellem -p og din adgangskode til root. Du kan ændre køretiden efter dine præferencer og også ændre mulighederne for mysqlcheck-kommandoen. Hvis du blot vil kontrollere og optimere bestemte databaser eller visse tabeller uden databasen, skal du bruge følgende syntaks:

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

Du ønsker måske at fjerne –auto-repair switch fra ovenstående kommando, da en tabelreparationsoperation kan forårsage datatab under nogle omstændigheder, operationen på grund af årsager inkluderer, men er ikke begrænset til, filsystemfejl. For dem, der har ændret tegnsættet og sammenstillingen af ​​MySQL-databaser, kan det også være nødvendigt at bruge -default-character-set option. Mere information om alle tilgængelige kontakter og muligheder kan findes her.


  1. Hvorfor er der huller i min IDENTITY-kolonneværdier?

  2. Sådan opretter du et beregnet felt i en Microsoft Access-forespørgsel

  3. Eksporter data fra en MySQL-database

  4. Forstå Lock Granularity i MySQL