Napredne sigurnosne kopije za MySQL baze podataka

Kad završe Sigurnosne kopije baze podataka MySQL, uobičajeno je koristiti naredbu mysqldump nema opcija. Međutim, ova naredba ima mnogo zanimljivih opcija koje vam omogućuju izvođenje naprednih sigurnosnih kopija.

Prema zadanim postavkama, Naredba mysqldump generira kopiju sql strukture svih tablica u bazi podataka naznačeno, u tekstualnoj datoteci sql. Da biste uključili samo jednu ili više tablica, unesite njihova imena iza naziva baze podataka.

Iz prozora terminala u direktoriju mysql:

 # Sigurnosna kopija jedne tablice $ mysqldump -user = korisnik --password = Ključ baze podataka tablice> backup_sql
 # Sigurnosno kopirajte tri tablice $ mysqldump -user = user --password = ključ baze podataka table1 table2 table3> backup_sql
Primjeri 1 ili 3 tablice.

1. Izuzimanje nekih tablica iz sigurnosne kopije


Kako ne bismo uključili određenu tablicu u sigurnosnu kopiju, moramo je označiti opcijom --ignore-table, čija vrijednost mora biti navedena

Na primjer, ako radite sigurnosnu kopiju baze podataka koja se zove commerce, ali ne želite da se uključi tablica pod nazivom sales, pokrenite sljedeću naredbu:

 $ mysqldump --user = korisnik -lozinka = lozinka --ignore -table = merchant.sales trgovac> backup_back.sql 
Drugim riječima, kopirajte cijelu trgovačku bazu podataka osim tablice prodaje. Ako želimo isključiti nekoliko tablica, moramo upotrijebiti sljedeću naredbu:
 $ mysqldump --user = korisnik --password = lozinka --ignore-table = commerce.sales --ignore-table = commerce.products --ignore-table = commerce. commerce cijene> backup_copy.sql
(Da biste isključili više tablica, navedite njihova imena sa što više opcija --ignore-table)

2. Ograničavanje broja zapisa u svakoj tablici


Prema zadanim postavkama, naredba mysqldump kopirat će sve zapise iz svih tablica. Ako želite prethodno filtrirati zapise, dodajte opciju --where koja vam omogućuje da naznačite uvjet tipa WHERE koji se dodaje upitima SELECT koji su napravljeni za izdvajanje svih zapisa:
 $ mysqldump --user = korisnik --password = lozinka --where = "dob> 18 I dob backup_back.sql 
Ako želimo izdvojiti samo neke zapise iz baze podataka, na primjer prvih 500
 $ mysqldump --user = user -password = lozinka --where = "1 limit 500" baza podataka> backup.sql
Izvukli bi ih s ograničenjem od 500.

3. Kopirajte samo strukturu tablica, ali ne i njihove podatke


Prema zadanim postavkama, naredba mysqldump ispisuje i strukturu tablica i sve njihove podatke. Ako vas zanima samo brisanje strukture tablica i stupaca, upotrijebite opciju --no-data. Dakle, možete stvoriti drugu bazu podataka potpuno istu, ali praznu:
 $ mysqldump --user = korisnik --password = lozinka-baza podataka bez podataka> backup_sql
Obično se umetci generiraju grupiraju u jednu izjavu kako bi spremili redove koda na sljedeći način:
 INSERT INTO table VALUES (1, 'name1'), (2, 'name2'), (3, 'name3');
Ovo je ponašanje koje može uzrokovati pogreške kod starijih sustava koji ne mogu obraditi dugačke redove. Slično, možete naići na probleme s uređivačem teksta kada pokušate otvoriti datoteku sigurnosne kopije koja sadrži ove dugačke retke.

Ako se suočimo s ovim slučajem, možemo dodati opciju --extended-insert = false kako bi se svaki INSERT pokrenuo s vlastitom izjavom:

 $ mysqldump --user = user -password = lozinka --extended -insert = false database> backup_sql
Rezultat će biti sljedeći:
 INSERT INTO table VALUES (1, 'name1'); INSERT INTO table VALUES (2, 'name2'); INSERT INTO table VALUES (3, 'name3'); 

Je li vam se svidio i pomogao ovaj vodič?Autor možete nagraditi pritiskom na ovaj gumb kako biste mu dali pozitivan bod

Vi ćete pomoći u razvoju web stranice, dijeljenje stranicu sa svojim prijateljima

wave wave wave wave wave