Izrađujemo dump (backup) baze podataka pomoću uslužnog programa mysqldump. Izrada sigurnosne kopije MySQL baza podataka Dnevnik Maxim Bogolepov Sigurnosna kopija mysql baza podataka

Bok svima! Postoje situacije kada se nakon instaliranja novog proširenja ili teme na web stranici internetske trgovine pojave razne nepredviđene situacije. Sastoje se u činjenici da se na web-mjestu mogu pojaviti pogreške kojih prije nije bilo ili web-mjesto uopće ne reagira. Kako biste bili spremni na takve situacije, morate napraviti sigurnosnu kopiju svoje stranice ili backup. U idealnom slučaju, trebali bi se kreirati ručno svaki put kada instalirate novi modul na web-mjesto ili izvodite operacije koje utječu na bazu podataka ili datoteke web-mjesta. Sigurnosne kopije izrađujem svaki tjedan za svaki slučaj. Jednostavno uvijek dobijem puno ažuriranja u tjednu.

Ručno sigurnosno kopiranje datoteka stranice

Dobri pružatelji usluga hostinga u pravilu imaju vlastiti sustav za sigurnosno kopiranje podataka. Izrađuje sigurnosnu kopiju vaše stranice s određenim periodom, obično nekoliko dana. Jasno je da se ne biste trebali u potpunosti oslanjati na hosting za backup. Kako onda možete napraviti sigurnosnu kopiju? Koristit ćemo se .

Prvi korak je stvaranje sigurnosne kopije vaših datoteka. Da biste to učinili, idite na odjeljak "WebFTP". Ovdje odabiremo mjesto čije datoteke želimo sigurnosno kopirati i idemo u njegovu mapu. Zatim, za brže preuzimanje, datoteke se prvo moraju komprimirati. Datoteke možete arhivirati sa ili bez kompresije. Preporučio bih da ne komprimirate datoteke i da ih dodate u arhivu u njihovom normalnom obliku, kako ih u budućnosti ne biste oštetili. Odabiremo direktorije i datoteke koje su nam potrebne, na donjem padajućem popisu odaberite radnju "Pakiraj u arhivu". Dajemo mu naziv, po mogućnosti navodeći datum i vrijeme kada je kopija stvorena. Pritisnite gumb "Pokreni".

Čekamo neko vrijeme da se arhiva napravi. Nakon toga preuzmite ga na svoje računalo. Sigurnosna kopija datoteka je spremna.

Ručno sigurnosno kopiranje baze podataka

Sada prijeđimo na jednako važan korak - sigurnosno kopiranje baze podataka. Ako hosting ne pruža mogućnost da to učinite automatski, tada u takvim slučajevima, kako biste spremili kopije na svoje računalo, trebate izvesti bazu podataka. To se radi na sljedeći način. Idite na odjeljak "Baze podataka" i kliknite vezu "PHPMyAdmin" nasuprot željene baze podataka.

U otvorenoj kartici unesite svoje korisničko ime i lozinku i dolazimo do upravljačke ploče MySQL baze podataka. Kliknite na naziv baze (1) koju želite rezervirati i idite na karticu “Izvoz” (2).

Odaberite metodu s minimalnim postavkama i kliknite "Naprijed". Nakon čega će započeti preuzimanje sql datoteke s kopijom baze podataka.

Vraćanje baze podataka iz sigurnosne kopije

Za vraćanje baze podataka iz ove datoteke također ćete se morati prijaviti na upravljačku ploču MySQL baze podataka, izbrisati sve postojeće tablice u bazi podataka i zatim otići na karticu "Uvoz". Tamo odaberite prethodno stvorenu datoteku i kliknite na gumb "Idemo". Sustav će ga preuzeti i obavijestiti vas da je operacija završena. Sve tablice koje je sadržavala u trenutku izrade sigurnosne kopije bit će stvorene u bazi podataka.

Vraćanje datoteka iz sigurnosne kopije

S oporavkom datoteka sve je malo jednostavnije. Idemo u odjeljak "WebFTP", zatim u mapu vaše stranice, izbrišemo sve datoteke unutar mape vaše stranice i kliknemo "Učitaj datoteku". Odaberite prethodno stvorenu arhivu i kliknite "Učitaj datoteku". Čekamo završetak preuzimanja.

Nakon što se arhiva preuzme i prikaže na ploči s datotekama, trebate je raspakirati. I sve je spremno. Ili, bez brisanja datoteka, možete jednostavno preuzeti arhivu i raspakirati je te zamijeniti. Ako je raspakiranje bilo uspješno, to znači da su sve datoteke zamijenjene iz sigurnosne kopije. Ali obično prvo izbrišem datoteke, a zatim raspakiram sigurnosnu kopiju.

Datoteke možete preuzeti i pomoću FTP klijenta, kao što je FileZilla. Pisao sam o tome kako raditi s njim. Povezujemo se s našim ftp računom preko klijenta, idemo u mapu s datotekama stranice i jednostavno ih kopiramo na svoje računalo. Na isti način se mogu prenijeti s vašeg računala na hosting. Samo ne zaboravite kopirati i zamijeniti.

Ne zaboravite na sigurnost svoje stranice, sigurnosne kopije shvatite ozbiljno jer nikad ne znate kada vam mogu dobro doći.

Srdačan pozdrav, Schmidt Nikolay

Pozdrav, dragi čitatelji bloga. Danas želim razgovarati o konceptu sigurnosne kopije datoteka i baza podataka vašeg resursa.

Da, naravno, mnogi hosteri () automatski rade sigurnosne kopije i, ako se nešto dogodi, možete im se obratiti za pomoć. Ali kako kažu: oslonite se na domaćina, ali nemojte sami pogriješiti.

Situacije u kojima možete izgubiti svoje podatke o projektu, možete navesti puno, a vjerojatno ste i sami čuli za to. Ne treba se oslanjati na milost domaćina. Morate sami napraviti sigurnosnu kopiju i pohraniti je na svoje računalo.

To će biti mnogo pouzdanije i smirenije. Ako je ipak vaš internetski projekt propao, a nema ga iz čega vratiti, okušajte sreću u Webarchiveu (ovdje se o tome detaljnije piše), jer on neprestano radi snimke velike većine stranica na internetu. .

Kako napraviti sigurnosnu kopiju datoteka web stranica pomoću FileZille

Kao što vjerojatno već znate, stranice stvoren na temelju bilo kojeg motora, bilo Joomla, WordPress ili SMF, sastoje se od dva važna dijela:

  1. Prvo, ovo su stvarne datoteke motora i ekstenzije instalirane u njemu, slike i...
  2. I drugo, to su baze podataka u kojima se pohranjuju tekstovi vaših članaka, postova i sl.

Baza podataka (DB) također može pohraniti postavke za neke parametre motora i njegovih proširenja. O tome sam već pisao u članku o. Takva organizacija ima mnoge prednosti.

To znači da se naš zadatak svodi na podupiranje svog tog bogatstva. Štoviše, učestalost sigurnosnog kopiranja baze podataka obično je određena učestalošću pojavljivanja novih informacija na vašem projektu. Optimalan način, po mom mišljenju, je svakodnevno kopiranje baze podataka. Srećom, obično nemaju veliku težinu i takve se sigurnosne kopije izvode vrlo brzo. Vjerojatno biste trebali ažurirati sigurnosne kopije svojih projektnih datoteka tek nakon što ste napravili neke promjene u njima: instalirali neka proširenja, ažurirali verziju motora itd.

Počnimo, možda, s našim prvim pomoćnikom koji se zove FileZilla, iako umjesto toga možete koristiti bilo koji drugi FTP upravitelj, do , ali više volim ovaj poseban besplatni softver. Već sam ih detaljno opisao u gornjem članku, stoga se nećemo detaljno zadržavati na ovome (ako želite, pročitajte sami, posebno o pohranjivanju lozinki u ovom programu i problemima povezanim s njim).

Pogledajmo kako napraviti sigurnosnu kopiju datoteka pomoću njega. Nakon što imate pristup svom poslužitelju za hosting, trebali biste otići u korijensku mapu (obično se naziva public_html ili htdocs). Udaljeni poslužitelj u Filezilu prikazan je s desne strane, a sadržaj vašeg računala prikazan je s lijeve strane.

Ako planirate redovito izrađivati ​​sigurnosne kopije, savjetujem vam da na tvrdom disku računala stvorite mapu s "govorećim" imenom, au njoj se nalaze direktoriji s nazivima vaših projekata. Unutar ovih direktorija možete kreirati mape s trenutnim datumom u koje će se kopirati datoteke vašeg web projekta. Zahvaljujući tome, bit će lakše kretati se kroz sigurnosne kopije i brisati vrlo zastarjele kako bi se oslobodio prostor.

Sada otvorite na lijevoj strani FileZilla mapu u kojoj će se sigurnosna kopija izvršiti, a na desnoj strani - korijensku mapu web stranice. Savjetujem vam da omogućite mogućnost prikazivanja skrivenih datoteka u postavkama ovog programa: u gornjem izborniku odaberite "Poslužitelj" - "Prisilno prikazivanje skrivenih datoteka".

Ovo je neophodno kako bi skrivene datoteke, kao što je .htaccess, bile uključene u vašu sigurnosnu kopiju. Zatim odabirete sve objekte na svojoj stranici u korijenskom direktoriju dok držite pritisnut gumb Shift na tipkovnici. Kliknite desnom tipkom miša na odabrane objekte i odaberite stavku iz kontekstnog izbornika "Preuzimanje datoteka".

Započet će backup datoteka, što može potrajati dosta dugo - ovisno o broju i ukupnoj težini objekata koji se kopiraju, kao i brzini poslužitelja. Ali ne morate gledati proces stvaranja sigurnosne kopije. Dok kopirate, možete se baviti svojim poslom, naravno, bez zatvaranja Filezille.

Na kraju procesa osjećat ćete se bolje spakirajte sve preuzeto u jednu arhivu, jer to može značajno smanjiti volumen i broj pohranjenih objekata. Nakon arhiviranja ostavljate samo jednu arhivu, a brišete sve preuzeto - sve će biti lijepo i uredno. Da biste vratili datoteke stranice iz takve sigurnosne kopije: morat ćete je raspakirati i kopirati sadržaj arhive na poslužitelj na način sličan gore opisanom.

Istina, ako ste datoteke spakirali u ZIP arhivu, možete je prenijeti na poslužitelj i tamo raspakirati (ovdje je opisano kako). Ali u ovom slučaju kasnije se mogu pojaviti neki problemi, koji se mogu riješiti pomoću PHP-a (pročitajte vezu o pravima pristupa i programskoj promjeni Cmod-a).

Kako napraviti sigurnosnu kopiju baze podataka koristeći phpMyAdmin

Pogledajmo kako sigurnosno kopirati bazu podataka pomoću skripte phpMyAdmin. Može mu se pristupiti s upravljačke ploče vašeg hostinga. Ako imate, onda da biste pokrenuli phpMyAdmin, morate slijediti sljedeći put: pronađite područje pod nazivom “Baze podataka” na glavnoj stranici cPanela i tamo kliknite ikonu ove skripte.

Ako vaš hosting nema pristup ovoj skripti, onda vi možete to učiniti sami u korijensku mapu svoje stranice i preko nje pristupite svojoj bazi podataka. Program možete preuzeti ovdje.

Nakon preuzimanja arhive na vaše računalo, morate je raspakirati i prenijeti rezultirajuću mapu (radi jednostavnosti, prvo je možete preimenovati u phpmyadmin) u korijenski direktorij. Općenito, to je sve. Sada sve što preostaje je unijeti sljedeći URL u adresnu traku vašeg preglednika: http://vash_sait.ru/phpmyadmin

U svakom slučaju, otvorit će se prozor programa PhpMyAdmin s kojim možemo jednostavno napraviti backup vaših projektnih baza. Ovo je glavna stranica programa (na nekim stranicama imam malo zastarjelu verziju, ali tek sam se navikao na nju):

Ako ste na bilo kojoj drugoj phpMyAdmin stranici, tada da biste došli do glavne stranice, morate kliknuti na kuću označenu na slici. Na jednom računu kod hostera možete imati mnogo baza podataka i zato prvo morate izabrati iz lijevog izbornika baza, koje želite sigurnosno kopirati.

Popis baza podataka možete vidjeti u prozoru programa s lijeve strane (ispod ikone kućice). Kako biste napravili sigurnosnu kopiju baze podataka, morat ćete kliknuti na karticu "Izvoz" iznad popisa tablica.

Pri dnu stranice koja se otvori označite okvir "gzip". I kliknite gumb "OK".

Istina, ovo je u staroj (prikladnoj) verziji skripte. Sada vam se prema zadanim postavkama nudi brzo preuzimanje baze podataka bez kompresije, a ako želite nešto prilagoditi (uključujući aktiviranje njezine gzip kompresije u hodu), morat ćete označiti okvir "Normalno" i odabrati gzip među mnogim drugim postavke , što po mom mišljenju nije baš zgodno.

Kao rezultat toga, nakon nekog vremena (koje ovisi o brzini poslužitelja, njegovom opterećenju i veličini vaše baze podataka), otvorit će se standardni dijaloški okvir za kopiranje u kojem morate odabrati mjesto za spremanje sigurnosne kopije ove baze podataka.

Vraćanje baze podataka iz prethodno stvorene sigurnosne kopije

Za vraćanje baze podataka iz sigurnosne kopije morate postupiti na sljedeći način. Najprije morate očistiti postojeću bazu podataka od svih tablica. Za to se prijavite u program phpMyAdmin, u lijevom stupcu odaberete željenu bazu podataka koju želite vratiti.

U prozoru koji se otvori s tablicama ove baze spustite se na samo dno i ispod popisa tablica kliknite na "Odaberi sve". Zatim, ponovno na dnu stranice, s padajućeg popisa odaberite stavku "S označenim". "Izbrisati".

Otvorit će se prozor s popisom svih tablica za brisanje. Kliknite na gumb "Da".

Sada možete vratiti bazu podataka iz prethodno napravljene sigurnosne kopije. Da biste to učinili, odaberite oznaku "Uvoz":

U prozoru koji se otvori kliknite na gumb “Select file” i pronađite prethodno napravljenu sigurnosnu kopiju ove baze podataka na vašem tvrdom disku. Kliknite na gumb “Naprijed” (ili “OK” u starijim verzijama skripte) na dnu stranice i pričekajte da završi preuzimanje (vrijeme opet ovisi o brzini servera i veličini baze podataka) . Svi.

S ažuriranim sigurnosnim kopijama datoteka i baza podataka na računalu možete mirno spavati. Također se mogu koristiti prilikom premještanja stranice na drugi hosting.

Prijenos stranice na novi hosting

Dakle, kako možemo prenijeti web mjesto na novu lokaciju? Nakon kupnje hostinga dobivate podatke za pristup hosting serveru putem FTP-a koje ćete unijeti u program Filezila za pristup serveru.

Najprije raspakirajte sigurnosnu kopiju podataka na računalu i smjestite je u korijensku mapu, slično gore opisanom postupku. Bez čekanja da se datoteke kopiraju, možete početi vraćati tablice baze podataka iz sigurnosne kopije napravljene na staroj lokaciji vašeg resursa.

Ali za ovo morate prvo otići na novi hosting (gdje će se tablice koje ste spremili kasnije kopirati). Naučit ćete kako to učiniti iz članka o phpMyAdmin-u, čiju sam poveznicu dao gore. Imajte na umu da najvjerojatnije nećete moći odabrati isto ime baze podataka i njenog korisnika kao u vašem prethodnom mjestu stanovanja. Činjenica je da hosting obično dodaje vašu prijavu nazivu baze podataka koji odaberete.

Stoga, nakon završetka kopiranja datoteka i baze podataka, prije nego što pristupite stranici iz preglednika, trebate unijeti odgovarajuću promjene postavki vašeg web-mjesta. Da biste to učinili, ponovno ćete morati pristupiti datotekama stranice putem FTP-a i izvršiti izmjene u konfiguracijskim datotekama jednog ili drugog motora (Joomla, WordPress, SMF itd.). Pogledajmo postavke za svaki motor zasebno.

Što promijeniti u postavkama WordPressa prilikom migracije

Prijenos bloga na WordPress zahtijevat će promjenu sljedećih postavki. Morat ćete otvoriti datoteku za uređivanje koristeći FileZilla WP-CONFIG.PHP, koji se nalazi u korijenskom direktoriju na poslužitelju. U njemu morate urediti retke odgovorne za naziv baze podataka i korisnika.

// ** MySQL postavke - možete ih dobiti od svog hosta ** // /** Naziv baze podataka za WordPress */ define("WP_CACHE", true); //Dodao WP-Cache Manager define("DB_NAME", "ovdje unesite novi naziv svoje baze podataka"); /** MySQL korisničko ime */ define("DB_USER", "unesite novo korisničko ime ovdje"); /** Lozinka MySQL baze podataka */ define("DB_PASSWORD", "anipiimaaxai"); /** MySQL poslužitelj - ponekad morate promijeniti ovu vrijednost, na primjer, na Masterhostu */ define("DB_HOST", "localhost"); /** Kodiranje baze podataka korišteno prilikom izrade tablica. */ define("DB_CHARSET", "utf8"); /** Mapiranje baze podataka. NEMOJTE MIJENJATI OVU VRIJEDNOST. */ define("DB_COLLATE", "");

Nakon uređivanja, spremite ovu datoteku natrag i možete smatrati da je prijenos WordPressa na novi hosting bio uspješan. Ako promijenite naziv domene prilikom prijenosa svog bloga, tada da bi sve ispravno radilo, morat ćete otvoriti sigurnosnu kopiju baze podataka sa SQL ekstenzijom u uređivaču teksta (raspakirajte je iz gzip arhive).

Zatim, pomoću ugrađenog "pretraži i zamijeni", pronađite sve reference na stari URL vašeg bloga i zamijenite njegovu novu adresu (na primjer, vasy.ru s vova.ru). Nakon toga spremite datoteku sa sigurnosnom kopijom baze podataka i “uvezite” je u program phpMyAdmin.

Nakon što se prijavite u administratorsko područje WordPressa, morat ćete unesite točan apsolutni put na objekte vašeg bloga (promijenio se jer ste premjestili WordPress na drugi hosting). Apsolutni put se postavlja preko parametra UPLOAD_PATH u globalnim WP postavkama. Do ovih postavki možete doći dodavanjem sljedeće staze URL-u glavne stranice:

/wp-admin/options.php

Za moj blog adresa će izgledati ovako:

Https://site/wp-admin/options.php

Ali prvo se morate prijaviti u WordPress admin. pročitajte navedeni link.

Što je potrebno promijeniti u Joomla postavkama prilikom promjene hostinga

Prijenos Joomla web stranice na drugi hosting će zahtijevati promjenu sljedećih postavki. Morat ćete otvoriti za uređivanje KONFIGURACIJA.PHP u korijenskoj mapi poslužitelja. Pronađite retke u njemu koji su odgovorni za dobivanje pristupa bazi podataka:

Var $user = "ovdje unesite novo korisničko ime"; var $db = "ovdje unesite naziv vaše nove baze podataka";

Osim toga, morat ćete promijeniti i apsolutni put do mapa za pohranu zapisa i privremenih datoteka u Joomli. Morate ga promijeniti u ovim redcima:

Var $log_path = "/home/xxxxx/public_html/logs"; var $tmp_path = "/home/xxxx/public_html/tmp";

Prijenos SMF foruma na novi hosting

Migracija foruma na SMF će zahtijevati promjenu nekih postavki. Morat ćete ga otvoriti za uređivanje POSTAVKE.PHP iz korijenske mape foruma. Baš kao iu slučaju Joomle, ovdje ćete morati ne samo promijeniti naziv baze podataka i SMF korisnika, već i apsolutne putanje do mape foruma i mape SOURCES foruma.

########## Informacije o bazi podataka ########## $db_server = "localhost"; $db_name = "ovdje unesite naziv vaše nove baze podataka"; $db_user = "ovdje unesite novo korisničko ime"; $db_passwd = "hoighaebaeto"; $db_prefix = "smf_"; $db_persist = 0; $db_error_send = 1; ########## Direktoriji/Datoteke ########## # Napomena: Ovi direktoriji se ne moraju mijenjati osim ako ne premjestite stvari. $boarddir = "/home/xxxx/public_html/forum"; # Apsolutni put do mape foruma. (ne samo "."!) $sourcedir = "/home/xxxx/public_html/forum/Sources"; # Put do direktorija Izvori.

Ali osim toga, nakon prijenosa SMF-a na novi hosting, morat ćete promijeniti apsolutni put do trenutno instalirane mape. Da biste to učinili, morat ćete otići u administratorsko područje foruma i odabrati "Trenutna tema" u lijevom stupcu. U prozoru koji se otvori, u području “Theme folder” upisujete apsolutni put do željene mape.

Kako početi raditi s web stranicom odmah nakon prijenosa na novi hosting

Priložio si mu svoju (web stranicu, u mom slučaju). Ili ste u skladu s navedenim izvršili prijenos. U principu je svejedno, ali svejedno ćete novi poslužitelj morati povezati s domenom. Da biste to učinili, pronaći ćete svoj novi host na upravljačkoj ploči svog registrara (gdje ste kupili naziv domene).

Adrese DNS poslužitelja možete vidjeti u pismu koje će vam novi hoster poslati. Gdje točno trebate unijeti te DNS-ove u registarsku ploču, teško je sa sigurnošću reći, ali ne bi trebalo biti duboko zakopano i ležati na vidiku. U krajnjem slučaju obratite se tehničkoj podršci.

Dakle, unatoč uspješnom prijenosu stranice na novog hosta, još uvijek morate čekati od nekoliko sati do nekoliko dana dok se vaša domena delegira. Dok se ovaj proces ne završi, vaš resurs neće biti dostupan na vašoj novoj lokaciji.

Ponekad vlasnik hostinga može u pismu navesti tehničku adresu na kojoj možete pristupiti svom resursu dok se ažuriraju zapisi na svim DNS poslužiteljima na Internetu. Ali to se ne događa uvijek. Osim toga, primjerice, za WordPress tehnička adresa neće vam omogućiti da u potpunosti počnete raditi s novoprenesenim blogom, jer je ovaj motor strogo vezan uz naziv domene.

Ali vlasnik hosta uvijek u pismu navodi IP adresu vašeg novog poslužitelja. Koristeći ga, možete pristupiti svom resursu bez čekanja na DNS registraciju. Ali u ovom slučaju, samo ćete vi dobiti pristup i samo na računalu na kojem ste izvršili postavke opisane u nastavku. Dakle, trebate učiniti sljedeće:

  1. koristeći bilo koji upravitelj datoteka, otvoren za uređivanje (slijedite ovu poveznicu i naći ćete detaljan članak o tome gdje se ova datoteka nalazi, kako je pronaći u sustavu Windows 7 i što treba pisati u njoj), koja se nalazi na sljedećoj stazi: c:\ Windows\System32 \drivers\etc\hosts
  2. na kraju HOSTS sadržaja potrebno je dodati redak: 109.77.43.4 site gdje se na početku nalazi IP adresa novog poslužitelja, a iza nje, odvojena razmakom, domena
  3. spremite ovu datoteku i možete sigurno upisati u svoj preglednik adresu resursa koji ste upravo prenijeli (možda ćete morati resetirati DNS predmemoriju na svom računalu - pročitajte o ovome u gornjem članku o datoteci Hosts)

Dakle, bez čekanja da se domena delegira, već možete provjeriti funkcionalnost prenesenog resursa i, ako je potrebno, sve popraviti prije nego što postane dostupan svim ostalim posjetiteljima. Nakon što je domena delegirana, trebat će vam uklonite dodani redak u HOSTS.

Također možete pogledati video na tu temu od poznatog graditelja web stranica u RuNetu:

Pa i izbor video upute o prijenosu Joomla CMS web stranice na hosting Savjetujem vam da pogledate. One će se automatski reproducirati jedna za drugom, a ako želite, možete se prebaciti na sljedeću lekciju pomoću odgovarajućeg gumba na ploči playera ili odabrati željenu lekciju iz padajućeg izbornika u gornjem lijevom kutu prozora playera:

Uživajte u gledanju!

Sretno ti! Vidimo se uskoro na stranicama bloga

Moglo bi vas zanimati

1. veljače 2012. u 00:33

Sigurnosno kopiranje podataka u MySQL

  • MySQL

Sigurnosno kopiranje baze podataka stvar je koja se uvijek mora konfigurirati za već pokrenute projekte izravno na "živim" proizvodnim poslužiteljima.
Ova situacija se lako objašnjava. Svaki projekt na samom početku još je prazan i jednostavno se nema što kopirati. U fazi ubrzanog razvoja, glave nekolicine developera isključivo su zaokupljene šarafanjem mogućnosti i sitnica, kao i ispravljanjem kritičnih bugova s ​​rokom do “prekjučer”. I tek kada projekt “zaživi” dolazi do spoznaje da je glavna vrijednost sustava nagomilana baza podataka, a njezin kvar će biti katastrofa.
Ovaj pregledni članak je za one čiji su projekti već došli do ove točke, ali pečeni pijetao još nije zagrizao mamac.

1. Kopiranje datoteka baze podataka

MySQL baza podataka može se kopirati ako privremeno isključite MySQL poslužitelj i jednostavno kopirate datoteke iz mape /var/lib/mysql/db/. Ako poslužitelj nije isključen iz očiglednih razloga, vjerojatan je gubitak i oštećenje podataka. Za velike opterećene baze podataka ova je vjerojatnost blizu 100%. Osim toga, kada prvi put počnete s "prljavom" kopijom baze podataka, MySQL poslužitelj će započeti proces provjere cijele baze podataka, što može trajati satima.

U većini živih projekata, redovno gašenje poslužitelja baze podataka na duže vrijeme je neprihvatljivo. Za rješavanje ovog problema koristi se trik temeljen na snimkama datotečnog sustava. Snimka je nešto poput "fotografije" datotečnog sustava u određenom trenutku, snimljena bez stvarnog kopiranja podataka (i stoga brzo). Lijeno kopiranje objekata radi na sličan način u mnogim modernim programskim jezicima.
Opća shema radnji je sljedeća: sve tablice se zaključavaju, predmemorija datoteke baze podataka se poništava, snima se snimka datotečnog sustava i tablice se otključavaju. Nakon toga, datoteke se tiho kopiraju iz snimke, nakon čega se ona uništava. “Blokirajući” dio takvog procesa traje oko nekoliko sekundi, što je već podnošljivo. Kao povrat, neko vrijeme, dok je snimka "živa", performanse operacija datoteka se smanjuju, što prvenstveno utječe na brzinu operacija pisanja u bazu podataka.

Neki datotečni sustavi, poput ZFS-a, izvorno podržavaju snimanje snimki. Ako ne koristite ZFS, ali imate LVM volume manager na vašem poslužitelju, također možete kopirati MySQL bazu podataka putem snimke. Konačno, pod *nixom možete koristiti R1Soft Hot Copy drajver za snimku, ali ova metoda neće raditi u spremniku openvz().

Za baze podataka MyISAM postoji službeni besplatni uslužni program mysqlhotcopy, koji "ispravno" kopira datoteke baze podataka MyISAM bez zaustavljanja poslužitelja. Postoji sličan uslužni program za InnoDB, ali se plaća, iako ima više mogućnosti.

Kopiranje datoteka je najbrži način prijenosa cijele baze podataka s jednog poslužitelja na drugi.

2. Kopiranje putem tekstualnih datoteka

Za čitanje podataka iz proizvodne baze podataka u sigurnosnu kopiju, nije potrebno povlačiti datoteke. Podatke možete odabrati pomoću upita i spremiti ih u tekstualnu datoteku. Da biste to učinili, koristite SQL naredbu SELECT INTO OUTFILE i njen par LOAD DATA INFILE. Istovar se vrši redak po redak (možete odabrati samo potrebne retke za spremanje, kao u običnom SELECT-u). Struktura tablica nigdje nije navedena - o tome mora voditi računa programer. Također mora voditi računa o uključivanju naredbi SELECT INTO OUTFILE u transakciju ako je potrebno kako bi se osigurao integritet podataka. U praksi se SELECT INTO OUTFILE koristi za djelomičnu sigurnosnu kopiju vrlo velikih tablica koje se ne mogu kopirati ni na koji drugi način.

U većini slučajeva, uslužni program mysqldump koji je stvorio Igor Romanenko mnogo je praktičniji. Uslužni program mysqldump generira datoteku koja sadrži sve SQL naredbe potrebne za potpuno vraćanje baze podataka na drugom poslužitelju. Koristeći zasebne opcije, ovu datoteku možete učiniti kompatibilnom s gotovo svim DBMS-ovima (ne samo s MySQL); osim toga, moguće je preuzeti podatke u CSV i XML formatima. Za oporavak podataka iz takvih formata postoji uslužni program koji se zove mysqlimport.

Uslužni program konzole mysqldump. Postoje njegovi dodaci i analozi koji vam omogućuju upravljanje sigurnosnom kopijom putem web sučelja, na primjer, ukrajinski alat Sypex Dumper (njihov predstavnik je na Habréu).

Nedostaci univerzalnih pomoćnih programa za sigurnosno kopiranje tekstualnih datoteka su relativno niska brzina rada i nemogućnost izrade inkrementalnih sigurnosnih kopija.

3. Inkrementalne sigurnosne kopije

Tradicionalno se preporučuje čuvanje 10 sigurnosnih kopija: po jedna za svaki dan u tjednu, kao i sigurnosne kopije od prije dva tjedna, mjesec i kvartal - to će vam omogućiti da se prilično duboko vratite unatrag u slučaju bilo kakvog oštećenja podataka.
Sigurnosne kopije nikako ne bi trebale biti pohranjene na istom disku kao živa baza podataka, a ne na istom poslužitelju. U slučaju požara i drugih katastrofa, najbolje je unajmiti nekoliko jedinica u obližnjem podatkovnom centru.

Ovi zahtjevi mogu biti problem za velike baze podataka. Prijenos sigurnosne kopije baze podataka od 100 gigabajta preko mreže od 100 Mbita trajat će oko tri sata, tijekom kojih će kanal biti potpuno začepljen.
Inkrementalne sigurnosne kopije mogu djelomično riješiti ovaj problem, kada se potpuna sigurnosna kopija radi, recimo, samo nedjeljom, a ostalim danima se zapisuju samo podaci dodani ili promijenjeni tijekom proteklog dana. Poteškoća je u tome kako prepoznati upravo te "podatke koji su se promijenili tijekom dana".

Ovdje je praktički bez premca Percona XtraBackup sustav koji sadrži modificirani InnoDB engine, analizira MySQL binarne zapise i iz njih izvlači potrebne informacije. Gore spomenuti InnoDB Hot Backup ima gotovo iste mogućnosti.

Opći problem sa svim sigurnosnim kopijama je da uvijek kasne. U slučaju kobnog kvara glavnog poslužitelja, sustav će biti moguće vratiti samo s nekim "povratkom" na vrijeme, što će vrlo, vrlo razočarati svoje korisnike. Ako bi se na neki način utjecalo na financijske tijekove u sustavu, takav "povraćaj" može doslovno stajati priličan novčić.

4. Replikacija

Sustav replikacije MySQL je dizajniran da izbjegne povrate. Ideja replikacije temelji se na činjenici da osim "glavnog" poslužitelja ("Master"), stalno rade MySQL poslužitelji ("slaves"), koji primaju inkrementalne sigurnosne kopije od glavnog u stvarnom vremenu. Dakle, vrijeme vraćanja smanjeno je gotovo na kašnjenje mreže. Ako Master ne uspije, možete brzo imenovati jednog od robova kao "novog Mastera" i preusmjeriti klijente na njega. Osim toga, podređeni uređaji mogu obraditi zahtjeve za čitanje podataka (SELECT); ovo se može koristiti za izvođenje nekih izračuna ili smanjenje opterećenja na masteru. MySQL podržava replikaciju izvan okvira, korisnik je dobro opisao postupak

U ovom ćemo članku pogledati nekoliko praktičnih primjera sigurnosne kopije oporavka baze podataka pomoću mysqldumpa. Uslužni program mysqldump učinkovit je alat za stvaranje sigurnosne kopije MySQL baze podataka. Omogućuje vam stvaranje *.sql datoteke sa zbirkom (dump) svih tablica i podataka glavne baze podataka (izvor).

Za sigurnosno kopiranje MyISAM baza podataka, bolje je koristiti alat mysqlhotcopy, koje ćemo svakako opisati u sljedećim člancima, jer s njima radi brže i učinkovitije.


Pomoću mysqldump, možete stvoriti sigurnosnu kopiju lokalnih baza podataka ili ih vratiti u udaljene baze podataka. U ovom ćemo članku pogledati nekoliko praktičnih primjera korištenja sigurnosne kopije za oporavak baze podataka mysqldump.

Osnovne naredbe za stvaranje sigurnosne kopije i vraćanje baze podataka Korištenje MySQL-a mysqldump Tamo je:

U ovim naredbama:

-u– parametar koji određuje prijavu koja se u ovom slučaju koristi za povezivanje s bazom podataka;

-str– parametar koji određuje korisničku lozinku za ovu prijavu. Ako nakon ovog parametra ne navedete lozinku, nakon pokretanja naredbe morat ćete je dodatno unijeti;

[naziv baze podataka]– naziv baze podataka čiju sigurnosnu kopiju treba izraditi;

[naziv_datoteke_sigurnosne_baze_podataka].sql– korisnik može navesti bilo koji prikladan naziv za datoteku sigurnosne kopije baze podataka. Ako navedete naziv datoteke kao u navedenom primjeru, kreirat će se sigurnosna kopija baze podataka u mapi iz koje je naredba pokrenuta, naime:
C:\Program Files\MySQL\MySQL Server 5.7\bin

Da biste spremili sigurnosnu kopiju baze podataka u drugu mapu, prije imena datoteke sigurnosne kopije baze podataka u naredbi morate navesti put do takve mape. U ovom slučaju, naredbe za stvaranje i vraćanje sigurnosne kopije baze podataka izgledat će ovako:

# mysqldump -uroot -pqwerty my_db C:\Users\Valery\Documents\MySQL_Backup\my_db-dump1.sql
# mysql -uroot -pqwerty my_db C:\Users\Valery\Documents\MySQL_Backup\my_db-dump1.sql


Kako sigurnosno kopirati MySQL bazu podataka

Za izradu sigurnosne kopije jedne baze podataka, samo koristite standardnu ​​naredbu opisanu gore:

# mysqldump –u[korisnik] –str[user_password] [database_name] [backup_file_name of database] .sql

Na primjer:

# mysqldump -uroot -pqwerty my_db > my_db-dump1.sql

Sigurnosna kopija više baza podataka

Prije sigurnosnog kopiranja više baza podataka odjednom, identificirajte prisutnost baza podataka.

Da biste to učinili, unesite naredbu prikazati baze podataka(u Workbenchu)

ili # mysqlshow –uroot -p(u konzoli).


Ako trebate sigurnosno kopirati više baza podataka u isto vrijeme (npr. moj_db I test), tada da biste to učinili morate pokrenuti sljedeću naredbu:

# mysqldump -uroot -pqwerty –baze podataka moj_db test my_db_test_backup.sql

Backup svih baza podataka

Ako postoji potreba za stvaranjem sigurnosne kopije svih baza podataka u vašem MySQL profilu, to se može učiniti pomoću parametra – sve baze podataka.

# mysqldump -uroot -pqwerty – sve baze podataka all-databases_backup.sql

Sigurnosna kopija jedne tablice

Također možete sigurnosno kopirati pojedinačnu tablicu baze podataka. U slučaju da trebate izraditi kopiju tablice wp_commentmeta iz baze podataka moj_db, tada će naredba izgledati ovako:

# mysqldump -uroot -p my_db wp_commentmeta table_ my_db-wp_commentmeta.sql

Bilješka. Za pregled popisa tablica baze podataka unesite naredbu:
#mysqlshow –uroot –p my_db


Kako vratiti MySQL bazu podataka iz sigurnosne kopije

Vratite MySQL bazu podataka iz sigurnosne kopije stvorene bilo kojom od gore opisanih metoda, možete koristiti jednu standardnu ​​metodu, koja je opisana na početku članka.