Gazduire Zenon n

Sunteți lucrează la proiectul dvs. de web, care folosește o bază de date MySQL. Desigur, fiecare proiect serios sugerează că va crea periodic o copie de rezervă a tuturor datelor utilizate în lucrare. Aceasta este abordarea standard de facto. Mai mult decât atât, fără ca acest lucru este imposibil de a garanta continuitatea vizitatorii site-ului. În cazul în care site-ul oferă servicii de afaceri, disponibilitatea de rezervă este o necesitate de-a dreptul.

Faceți o copie a tuturor HTML- statice și alte documente ușor. De asemenea, este ușor de periodic „amâna într-o parte“ și o copie a scenariului. Mult mai dificilă este sarcina de a crea o copie (de rezervă în continuare) o structură dinamică ca date de baze de date MySQL. Principalele dificultăți care apar înainte de administratorul plasat pe un site de găzduire, de obicei, sunt:

1. Lipsa accesului fizic la fișierele bazei de date. De obicei, furnizorii de hosting oferă posibilitatea de a lucra cu baza de date numai prin script-uri speciale sau MySQL-client, dar nu dau dreptul de a avea acces direct la fișierele care conțin date de la MySQL-bază de date.

2. Absența administratorului de cunoștințe despre cum să faci trebuie să faci copie de rezervă. De obicei, această problemă se produce numai atunci când „vremuri grele.“ Aceasta este, în caz de eșec, invazia de hackeri sau în alte situații de urgență. Webmasteri nu sunt pur și simplu gata pentru o copie de rezervă imediată și să înceapă să studieze cu frenezie documentația pentru MySQL, pe măsură ce timpul trece.

Cum de a face o bază de date MySQL

Programul Acolo mysqldump. Acesta vă permite să efectuați rapid și ușor operații pentru a crea copii de rezervă ale bazelor de date MySQL. Mysqldump, de asemenea, face posibilă pentru a face ajustări foarte fine pentru a gestiona procesul de creare a bazei de date de backup-uri sau tabele individuale. Putem spune că mysqldump - este principalul instrument pe care trebuie să le utilizați în cazul în care, dacă faci MySQL de rezervă.

ia imediat o sarcină simplă, care vor fi rezolvate cu ajutorul mysqldump, și să vedem ce e ceea ce. Acolo există web hosting, baze de date pe care le DBNAME alocat furnizorului de hosting. Acolo gazda HOST, care găzduiește serverul MySQL, Login pentru a-l, portul portul pe care rulează serverul, și parola trece. Cu toate aceste date, putem arunca (benă, copie) DBNAME de bază astfel (realizată în unix coajă):

> Mysqldump -uLOGIN -PPORT -hHOST -pPASSDBNAME> dump.txt

După executarea acestei comenzi în fișierul dump.txt vom avea o copie a DBNAME MySQL-bază de date. Acest lucru se va întâmpla doar în caz, desigur, în cazul în care toți parametrii specificați adevărat, în conformitate cu setările de găzduire lor. Imediat trebuie să spun că mysqldump programul produce rezultate de ieșire direct la tine pe STDIN, adică, pe ecran. Trebuie să redirecționeze de ieșire într-un fișier. De exemplu, la fel ca în acest caz - „> dump.txt“. Dacă acest lucru nu se face, iar baza mare, va ajunge la ecranul de toate acele megabytes de informații pe care le conține.

Noi vorbim un pic despre ceea ce face mysqldump. Acest program creează o restaurare a scenariului dvs. de date. Adică, producția de mysqldump - acest lucru nu este unele date binare abstracte și greu de citit, și un text script inteligent. De exemplu, în cazul în care baza de date are un test de masă, care a fost un întreg câmp test2 tip de date și o singură intrare „1111“, atunci mysqldump va crea despre acest scenariu:

Astfel, mysqldump „descrie“ toate tabelele și de a crea INSERT-comandă pentru a recupera datele din tabele. Așa că am să redirecționeze ieșirea mysqldump într-un fișier text, care apoi vor fi utilizate pentru a restabili. Luați în considerare un proces - o reconstrucție a copiei de rezervă de bază.

Pentru a restaura programul va folosi MySQL standard, care este inclus în pachetul MySQL cu mysqldump. Să presupunem că avem o copie de siguranță în fișierul dump.txt. Trebuie să-l readucă la o bază de lucru. De exemplu, vom șterge accidental baza noastra de date, iar acum încearcă să corecteze acest ghinion. Facem acest lucru.

> Mysql -uLOGIN -PPORT -hHOST -pPASSDBNAME“, după cum puteți - asta e cheia.

Un alt sfat foarte utile cu privire la utilizarea mysqldump în mediul de găzduire. De obicei, atunci când se utilizează găzduirea utilizatorului unele restricții. De exemplu, nu se poate lua mai mult de o anumită cantitate de memorie fizică (RAM, memorie RAM). mysqldump implicit pune la dispoziție tot primit din datele MySQL server, în memorie, și apoi scrie totul pe disc. Prin urmare, în cazul în care furnizorul de dă să luați, de exemplu, 30MB de memorie, iar baza, o copie pe care le face folosind mysqldump, ocupă 50MB, desigur, există o eroare - mysqldump nu va funcționa corect și nu va reuși, ceea ce va spune. Pentru a „obține“, a mysqldump pentru a scrie date direct pe disc, mai degrabă decât stocarea lor, chiar și temporar, în memorie, utilizați --quick cheie. Acest lucru se va rezolva problema.

În cazul în care o bază de date are o cantitate mare, atunci puteți arhiva imediat groapa, și reducerea bazei pentru a transfera date mysql comanda din arhiva, de exemplu, după cum urmează:

  • mysqldump -u<логин1> -p -h<хост1> -P<порт1> <база1> | gzip -c> dump.gz
  • gunzip -CD dump.gz | mysql -u<логин2> -p -h<хост2> -P<порт2> <база2>

    Unii furnizori de a impune o limită a limita dimensiunea maximă a fișierului, care poate fi operat de către utilizator. La volume foarte mari de date descarcate dimensiunea fișierului poate depăși această limită. În acest caz, baza de portare este posibil să nu arunce și a alerga mysqldump drept și mysql comanda:

  • mysqldump -q -u -P -h -p | mysql -u -P -h -p

    automatizare Backup

    Acum, gândiți-vă cum am putea automatiza procesul de creare a backup de baze de date. Deci, există un program - cron. Acesta vă permite să executați procesele din ori specificate de utilizator sau la intervale specificate. Imediat specifica - cron există, în general, numai sub Unix, așa că, dacă utilizați funcțiile de găzduire de Windows, verificați cu furnizorul dvs. de găzduire cu privire la modul cel mai bine pentru a rula procesul la momentul potrivit. Oricum, probabil, acest articol va fi de interes numai pentru utilizatorii UNIX.

    În unix shell rula -e crontab și de a crea o regulă pentru a rula procesul de creare de copii ale bazei de date:

    0 0 * * * / usr / local / bin / mysqldump -uLOGIN -PPORT -hHOST -pPASSDBNAME | gzip -c> `data "+ \% Y - \% m - \".` .gz

    / Director-cu-arhive -name „* .gz“ -mtime 7, vă va șterge fișierele care sunt „mai vechi“ șapte zile. Citiți documentația find - este disponibil pe om găsi comandă în coajă unix.