Cum de a face o bază de date MySQL
program care vă permite să efectuați rapid și ușor operații pentru a crea copii de rezervă ale bazelor de date MySQL Există mysqldump. 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ă):
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.
Asta este, forțele mysql-client pentru a se conecta la server și rulați scriptul pe care le avem la dispoziție. După rularea acestei comenzi în tabelele bazei de date și datele vor fi salvate. Rețineți că acestea sunt doar în convalescență după un scenariu de la dump.txt. Adică, în cazul în care tabelele care sunt menționate în baza de date haldei există deja și au o structură diferită, există în mod clar o eroare. Doar uita-te la script-ul și de lucru pe bază, și imaginați-vă că executați manual comenzi de script-ul. Dacă sunteți sigur că totul va fi bine - în condiții de siguranță restaurat.
Luați în considerare opțiunile mysqldump mai subțiri:
--baze de date vă permite să facă acest lucru, care va include recuperarea script-ul mysqldump CREEAZĂ BAZA DE DATE / * comenzi! 33333 DACĂ NU EXISTĂ * / DBNAME și UTILIZARE DBNAME. Acest lucru va crea o bază de lucru „de la zero“. Aceasta este, fără utilizarea --databases însemna că utilizatorul restabilește o bază de date unică și indică în mod clar în cazul în care aveți nevoie pentru a pune datele care urmează să fie restaurate. În cazul în care copia de rezervă este creat pentru a face o copie pe deplin de lucru a datelor, de exemplu, pe de altă MySQL-server, trebuie să utilizați această opțiune;
--all-baze de date vă permite să realizați copii ale tuturor bazelor de date care există în acest MySQL server. Dacă faceți copii de numai câteva baze, trebuie doar să le specificați prin spațiul liber, la apelul mysqldump din linia de comandă (vezi mai sus.);
cheie --help. Programul mysqldump are mai multe versiuni. Vezi ce caracteristici sunt susținute de versiunea dvs. specifice, puteți utiliza această opțiune;
--add-drop-tabel - cheia care va face mysqldump pentru a adăuga masa finală picătură de comandă script-ul înainte de a crea tabel. Acest lucru va evita unele greșeli atunci când restaurarea bazei de date dintr-o copie de rezervă. Desigur, trebuie să se ia în considerare faptul că tabelele sunt în copia de lucru (în cazul în care tabelul cu același nume există în copia de rezervă), înainte de restaurarea de rezervă va fi șters din baza de date primară și recreat de rezervă;
--fără date. Cu această cheie, puteți face rapid o copie a structurii de masă / de baze de date, fără date în sine. De exemplu, ați creat un tabel complex și-ar dori să salveze viitorul structurii sale, precum și datele care sunt în acest tabel, în copia de rezervă nu este necesară;
--= Rezultatul-fișier. - Această cheie poate fi utilizat pentru a redirecționa de ieșire într-un fișier. Puteți utiliza standardul unix-redirect „>“ comandă, după cum puteți - asta e cheia. Cineva de genul asta;
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.
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:
Ne rezervam dreptul de a cron și să aștepte pentru rezultate. Deci, în fiecare zi vom avea o copie de rezervă a bazei de date de pe disc. Puteți găsi rapid fișierul dorit de numele său și de a restabili ceea ce a mers prost, de exemplu. Apropo, dacă doriți să automatizeze eliminarea fișierelor vechi, încercați să utilizați cron și de a găsi o echipă care există de obicei în unix. Lansarea periodic găsi
/ 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.