Pravimo dump (backup) baze podataka koristeći uslužni program mysqldump. Pravljenje sigurnosne kopije MySQL baza podataka Dnevnik Maxim Bogolepov Backup mysql baza podataka

Zdravo svima! Postoje situacije kada se nakon instaliranja nove ekstenzije ili teme na web stranicu internetske trgovine javljaju razne nepredviđene situacije. One se sastoje u činjenici da se na stranici mogu pojaviti greške koje ranije nisu postojale, ili stranica možda uopće ne reagira. Da biste se pripremili za takve situacije, potrebno je da napravite rezervne kopije vaše stranice ili rezervne kopije. U idealnom slučaju, trebalo bi ih kreirati ručno svaki put kada instalirate novi modul na lokaciju ili izvršite operacije koje utječu na bazu podataka ili datoteke stranice. Pravim sigurnosne kopije svake sedmice za svaki slučaj. Uvijek dobijem mnogo novosti u sedmici.

Ručno pravljenje rezervnih kopija datoteka web lokacije

Po pravilu, dobri hosting provajderi imaju svoj sistem rezervne kopije podataka. Pravi sigurnosnu kopiju vaše stranice u određenom periodu, obično nekoliko dana. Jasno je da se ne treba u potpunosti oslanjati na hosting za backup. Kako onda možete napraviti rezervnu kopiju? Koristićemo .

Prvi korak je kreiranje sigurnosne kopije vaših datoteka. Da biste to učinili, idite na odjeljak "WebFTP". Ovdje biramo lokaciju čije datoteke želimo napraviti sigurnosnu kopiju i idemo u njen folder. Zatim, radi bržeg preuzimanja, datoteke se prvo moraju zipovati. Možete arhivirati datoteke sa ili bez kompresije. Preporučio bih vam da ne komprimirate datoteke, već da ih dodate u arhivu u njihovom normalnom obliku, kako ih ne biste oštetili u budućnosti. Odabiremo direktorije i datoteke koje su nam potrebne, na padajućoj listi ispod, odabiremo akciju "Pack to archive". Dajemo mu ime, po mogućnosti navodeći datum i vrijeme kada je kopija kreirana. Kliknite na dugme „Pokreni“.

Čekamo neko vrijeme da se arhiva napravi. Nakon toga, preuzmite ga na svoj računar. Rezervna kopija datoteka je spremna.

Ručni backup baze podataka

Sada pređimo na jednako važan korak - sigurnosno kopiranje baze podataka. Ako hosting ne pruža mogućnost da se to uradi automatski, onda u takvim slučajevima, da biste sačuvali kopije na svom računaru, morate izvesti bazu podataka. To se radi na sljedeći način. Idite na odjeljak “Baze podataka” i kliknite na vezu “PHPMyAdmin” nasuprot željene baze podataka.

U otvorenoj kartici unesite svoje korisničko ime i lozinku i dolazimo do kontrolne table MySQL baze podataka. Kliknite na naziv baze podataka (1) koju želite da rezervišete i idite na karticu „Izvoz“ (2).

Odaberite metodu s minimalnim postavkama i kliknite na "Proslijedi". Nakon toga će početi preuzimanje sql datoteke s kopijom baze podataka.

Vraćanje baze podataka iz sigurnosne kopije

Da biste vratili bazu podataka iz ove datoteke, također ćete se morati prijaviti na kontrolnu ploču MySQL baze podataka, izbrisati sve postojeće tablice u bazi podataka i zatim otići na karticu „Uvoz“. Tamo odaberite prethodno kreiranu datoteku i kliknite na dugme "Idemo". Sistem će ga preuzeti i obavijestiti vas da je operacija završena. Sve tabele koje je sadržavao u trenutku kreiranja sigurnosne kopije biće kreirane u bazi podataka.

Vraćanje datoteka iz sigurnosne kopije

Uz oporavak datoteka, sve je malo jednostavnije. Idemo u odjeljak “WebFTP”, zatim u mapu vaše web stranice, izbrišemo sve datoteke unutar mape vaše web stranice i kliknite na “Upload file”. Odaberite prethodno kreiranu arhivu i kliknite na "Učitaj datoteku". Čekamo da se preuzimanje završi.

Nakon što se arhiva preuzme i prikaže na panelu datoteka, potrebno je da je raspakujete. I sve je spremno. Ili, bez brisanja datoteka, možete jednostavno preuzeti arhivu i raspakirati je i zamijeniti. Ako je raspakivanje bilo uspješno, to znači da su svi fajlovi zamijenjeni iz sigurnosne kopije. Ali obično prvo izbrišem datoteke, a zatim raspakujem sigurnosnu kopiju.

Također možete preuzeti datoteke koristeći FTP klijent, kao što je FileZilla. Pisao sam o tome kako raditi s njim. Povezujemo se sa našim ftp nalogom preko klijenta, idemo u fasciklu sa fajlovima sajta i jednostavno ih kopiramo na vaš računar. Na isti način se mogu učitati sa vašeg računara na hosting. Samo ne zaboravite kopirati i zamijeniti.

Ne zaboravite na sigurnost vaše stranice, sigurnosne kopije shvatite ozbiljno jer nikad ne znate kada bi vam mogle dobro doći.

Srdačan pozdrav, Schmidt Nikolay

Pozdrav, dragi čitaoci blog stranice. Danas želim govoriti o konceptu sigurnosne kopije datoteka i baza podataka vašeg resursa.

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

Situacije u kojima možete izgubiti podatke o projektu, možete mnogo toga citirati, a vjerovatno ste i sami čuli za to. Ne treba se oslanjati na milost svog domaćina. Morate sami napraviti rezervnu kopiju i pohraniti je na svoj računar.

Ovo će biti mnogo pouzdanije i mirnije. Ako je ipak vaš internet projekat propao i nemate ga iz čega vratiti, okušajte sreću u Webarchiveu (o tome je detaljnije napisano ovdje), jer on stalno pravi snimke velike većine web stranica na internetu .

Kako napraviti sigurnosnu kopiju datoteka web stranice koristeći FileZilla

Kao što verovatno već znate, web stranice kreiran na bazi bilo kojeg motora, bilo da je to Joomla, WordPress ili SMF, sastoji se od dva važna dijela:

  1. Prvo, ovo su stvarni fajlovi motora i ekstenzija instaliranih u njemu, slike i...
  2. I drugo, to su baze podataka u kojima se pohranjuju tekstovi vaših članaka, postova itd.

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

Dakle, naš zadatak se svodi na to da pohranimo sve ovo bogatstvo. Štaviše, učestalost sigurnosnog kopiranja baze podataka obično je određena učestalošću novih informacija koje se pojavljuju 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 sigurnosne kopije se izvode vrlo brzo. Vjerovatno biste trebali ažurirati sigurnosne kopije vaših projektnih datoteka tek nakon što ste napravili neke promjene u njima: instalirali neke ekstenzije, ažurirali verziju motora itd.

Počnimo, možda, s našim prvim pozvanim pomoćnikom FileZilla, iako umjesto toga možete koristiti bilo koji drugi FTP menadžer, do , ali ja više volim ovu konkretnu izradu besplatnog softvera. Već sam ih detaljno opisao u gornjem članku, stoga se nećemo detaljnije zadržavati na tome (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 hosting serveru, trebali biste otići u korijenski folder (obično se zove public_html ili htdocs). Udaljeni server u Filezilu je prikazan sa desne strane, a sadržaj vašeg računara sa leve strane.

Ako planirate redovno praviti sigurnosne kopije, onda vam savjetujem da na tvrdom disku vašeg računala napravite mapu s "govornim" imenom, a unutar nje se nalaze direktoriji s nazivima vaših projekata. Unutar ovih direktorija možete kreirati foldere s trenutnim datumom, u koje će se kopirati datoteke vašeg web projekta. Zahvaljujući tome, tada će biti lakše kretati se kroz sigurnosne kopije i brisati one vrlo zastarjele kako biste oslobodili prostor.

Sada na lijevoj strani FileZilla otvorite mapu u kojoj će se napraviti sigurnosna kopija, a na desnoj strani - root folder web stranice. Savjetujem vam da omogućite mogućnost prikazivanja skrivenih datoteka u postavkama ovog programa: u gornjem meniju odaberite "Server" - "Prisilno prikazivanje skrivenih fajlova".

Ovo je neophodno kako bi skrivene datoteke, kao što je .htaccess, bile uključene u vašu sigurnosnu kopiju. Zatim birate sve objekte na vašoj web lokaciji u korijenskom direktoriju dok držite pritisnutu tipku Shift na tipkovnici. Desnom tipkom miša kliknite na odabrane objekte i odaberite stavku iz kontekstnog izbornika "Skinuti".

Počinje backup fajla, što može potrajati dosta vremena - ovisno o broju i ukupnoj težini objekata koji se kopiraju, kao i brzini servera. Ali ne morate gledati proces kreiranja sigurnosne kopije. Dok kopirate, možete se baviti svojim poslom bez zatvaranja Filezilla, naravno.

Na kraju procesa osjećat ćete se bolje sve preuzeto spakovati 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 web mjesta iz takve sigurnosne kopije: morat ćete je raspakirati i kopirati sadržaj arhive na server na način sličan gore opisanom.

Istina, ako ste spakovali datoteke u ZIP arhivu, onda ih možete otpremiti na server i tamo raspakovati (ovdje je opisano kako). Ali u ovom slučaju kasnije mogu nastati neki problemi, koji se mogu riješiti PHP sredstvima (pročitajte link o pravima pristupa i programskoj promjeni Cmoda).

Kako napraviti rezervnu kopiju baze podataka koristeći phpMyAdmin

Hajde da vidimo kako napraviti rezervnu kopiju baze podataka pomoću phpMyAdmin skripte. Može se pristupiti sa vašeg hosting kontrolnog panela. Ako jeste, onda da biste pokrenuli phpMyAdmin, trebate slijediti sljedeću putanju: pronaći područje pod nazivom “Baze podataka” na glavnoj stranici cPanela i tamo kliknuti na ikonu ove skripte.

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

Nakon što preuzmete arhivu na svoj računar, morate je raspakovati i prenijeti rezultirajuću mapu (radi jednostavnosti, prvo je možete preimenovati u phpmyadmin) u korijenski direktorij. Generalno, to je sve. Sada ostaje samo da unesete sljedeći URL u adresnu traku vašeg pretraživača: http://vash_sait.ru/phpmyadmin

U svakom slučaju, otvoriće se prozor programa PhpMyAdmin sa kojim možemo lako napraviti rezervnu kopiju baza podataka vaših projekata. Ovo je glavna stranica programa (na nekim stranicama imam malo zastarjelu verziju, ali sam se tek navikao):

Ako se nalazite na nekoj drugoj phpMyAdmin stranici, onda da biste došli do glavne stranice, potrebno je da kliknete na kuću označenu na slici. Na jednom računu kod hostera možete imati mnogo baza podataka i zato morate prvo izabrati sa lijevog menija baza, koji želite da napravite rezervnu kopiju.

Listu baza podataka možete vidjeti u prozoru programa na lijevoj strani (ispod ikone kuće). Da biste napravili sigurnosnu kopiju baze podataka, morat ćete kliknuti na karticu "izvoz" iznad liste tabela.

Na dnu stranice koja se otvori potvrdite izbor u polju "gzip". I kliknite na dugme "ok".

Istina, ovo je u staroj (zgodnoj) 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 njene gzip kompresije u hodu), morat ćete označiti okvir “Normalno” i odabrati gzip među mnogim drugim podešavanja, što po mom mišljenju nije baš zgodno.

Kao rezultat, nakon nekog vremena (što ovisi o brzini servera, njegovom opterećenju i veličini vaše baze podataka), otvorit će se standardni dijalog za kopiranje u kojem morate odabrati lokaciju za spremanje sigurnosne kopije ove baze podataka.

Vraćanje baze podataka iz prethodno kreirane sigurnosne kopije

Da biste vratili bazu podataka iz sigurnosne kopije, morate postupiti na sljedeći način. Prvo, morate obrisati postojeću bazu podataka svih tabela. Da biste to učinili, prijavite se u program phpMyAdmin, u lijevoj koloni odaberete željenu bazu podataka koju želite vratiti.

U prozoru koji se otvori sa tabelama ove baze podataka spustite se na sam dno i ispod liste tabela kliknite na "Označi sve". Zatim, ponovo na dnu stranice, sa padajuće liste izaberite stavku „S označenim“. "Izbriši".

Otvoriće se prozor sa listom svih tabela koje treba obrisati. Kliknete na dugme „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 dugme „Odaberi datoteku“ i pronađite prethodno napravljenu rezervnu kopiju ove baze podataka na svom čvrstom disku. Kliknite na dugme “Proslijedi” (ili “OK” u starijim verzijama skripte) na dnu stranice i pričekajte da se preuzimanje završi (vrijeme opet ovisi o brzini servera i veličini baze podataka) . Sve.

Ako imate ažurirane sigurnosne kopije datoteka i baze podataka na svom računaru, možete mirno spavati. Mogu se koristiti i prilikom premještanja stranice na drugi hosting.

Prebacivanje stranice na novi hosting

Dakle, kako možemo prenijeti stranicu na novu lokaciju? Nakon kupovine hostinga, dobićete podatke za pristup hosting serveru putem FTP-a, koje ćete uneti u Filezila program za pristup serveru.

Prvo, raspakirajte podatke sigurnosne kopije na vašem računalu i stavite ih u korijenski direktorij, slično gore opisanom procesu. Bez čekanja da se datoteke kopiraju, možete započeti vraćanje tablica baze podataka iz sigurnosne kopije napravljene na staroj lokaciji vašeg resursa.

Ali za to morate prvo otići na novi hosting (gdje će tabele koje ste sačuvali biti kopirane kasnije). Naučit ćete kako to učiniti iz članka o phpMyAdmin-u, link do kojeg sam dao malo iznad. Napominjemo da najvjerovatnije nećete moći odabrati isto ime za bazu podataka i njenog korisnika kao u vašem prethodnom mjestu stanovanja. Činjenica je da hosting obično dodaje vašu prijavu imenu baze podataka koje odaberete.

Stoga, nakon završetka kopiranja datoteka i baze podataka, prije pristupanja stranici iz pretraživača, trebate unijeti odgovarajući promjene postavki motora vaše web stranice. Da biste to učinili, morat ćete ponovo pristupiti datotekama stranice putem FTP-a i izvršiti promjene u konfiguracijskim datotekama jednog ili drugog motora (Joomla, WordPress, SMF, itd.). Pogledajmo postavke za svaki motor posebno.

Šta promijeniti u postavkama WordPress-a prilikom migracije

Prenošenje bloga na WordPress će zahtijevati promjenu sljedećih postavki. Morat ćete otvoriti datoteku za uređivanje pomoću FileZilla WP-CONFIG.PHP, koji se nalazi u korijenskom direktoriju na serveru. U njemu trebate urediti linije odgovorne za ime baze podataka i korisnika.

// ** MySQL postavke - Možete ih dobiti od vašeg hosta ** // /** Ime baze podataka za WordPress */ define("WP_CACHE", true); //Dodao WP-Cache Manager define("DB_NAME", "ovdje unesite novo ime vaše baze podataka"); /** MySQL korisničko ime */ define("DB_USER", "ovdje unesite novo korisničko ime"); /** Lozinka baze podataka MySQL */ define("DB_PASSWORD", "anipiimaaxai"); /** MySQL server - ponekad morate promijeniti ovu vrijednost, na primjer, na Masterhost */ define("DB_HOST", "localhost"); /** Kodiranje baze podataka koje se koristi prilikom kreiranja tabela. */ define("DB_CHARSET", "utf8"); /** Mapiranje baze podataka. NEMOJTE MIJENJATI OVU VRIJEDNOST. */ define("DB_COLLATE", "");

Nakon uređivanja, sačuvajte ovu datoteku nazad i možete smatrati da je prijenos WordPress-a na novi hosting bio uspješan. Ako promijenite ime domene prilikom prijenosa vašeg bloga, tada ćete, kako bi sve ispravno funkcionisalo, trebati otvoriti rezervnu kopiju baze podataka sa SQL ekstenzijom u uređivaču teksta (izvucite je iz gzip arhive).

Zatim, koristeći ugrađenu funkciju „pretraži i zamijeni“, pronađite sve reference na stari URL vašeg bloga i zamijenite njegovu novu adresu (na primjer, vasy.ru sa vova.ru). Nakon toga, sačuvajte datoteku sa sigurnosnom kopijom baze podataka i “Uvezite” je u program phpMyAdmin.

Nakon što se prijavite u WordPress admin područje, morat ćete unesite ispravnu apsolutnu putanju na objekte vašeg bloga (promijenjeno je jer ste premjestili WordPress na drugi hosting). Apsolutna putanja se postavlja preko parametra UPLOAD_PATH u globalnim postavkama WP-a. Do ovih postavki možete doći dodavanjem sljedeće staze na URL glavne stranice:

/wp-admin/options.php

Za moju adresu bloga to će izgledati ovako:

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

Ali prvo se morate prijaviti na WordPress administratora. pročitajte priloženi link.

Šta treba 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 CONFIGURATION.PHP u root folderu servera. Pronađite u njemu linije koje su odgovorne za pristup bazi podataka:

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

Osim toga, također ćete morati promijeniti apsolutnu putanju do mapa za pohranjivanje dnevnika i privremenih datoteka u Joomli. Morate ga promijeniti u ovim redovima:

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

Prebacivanje SMF foruma na novi hosting

Premještanje foruma na SMF će zahtijevati promjenu nekih postavki. Morat ćete ga otvoriti za uređivanje SETTINGS.PHP iz korijenskog foldera foruma. Kao iu slučaju Joomle, ovdje ćete također morati promijeniti ne samo ime baze podataka i SMF korisnika, već i apsolutne putanje do foldera foruma i foldera IZVORI foruma.

########## Informacije o bazi podataka ########## $db_server = "localhost"; $db_name = "ovdje unesite ime 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/fajlovi ########## # Napomena: Ovi direktoriji se ne moraju mijenjati osim ako ne premjestite stvari. $boarddir = "/home/xxxx/public_html/forum"; # Apsolutna putanja do fascikle foruma. (ne samo "."!) $sourcedir = "/home/xxxx/public_html/forum/Sources"; # Putanja do direktorijuma Izvori.

Ali osim toga, nakon prijenosa SMF-a na novi hosting, morat ćete promijeniti apsolutnu putanju do trenutno instalirane mape. Da biste to učinili, morat ćete otići u administrativnu oblast foruma i odabrati “Trenutna tema” iz lijevog stupca. U prozoru koji se otvori, u oblasti „Fascikla tema“ upisujete apsolutnu putanju do željene fascikle.

Kako početi raditi s web-stranicom odmah nakon što je prebacite na novi hosting

Vi ste priložili svoju (u mom slučaju web stranicu) uz to. Ili ste, u skladu sa gore navedenim, izvršili prijenos. U principu, nije važno, ali ćete ionako morati da povežete novi server sa domenom. Da biste to učinili, pronaći ćete svoj novi host u kontrolnoj tabli vašeg registratora (gdje ste kupili naziv domene).

Adrese DNS servera možete vidjeti u pismu koje će vam poslati vaš novi hoster. Gdje tačno potrebno je da unesete ove DNS u panel registratora, teško je sa sigurnošću reći, ali ne treba ga duboko zakopavati i ležati na vidiku. U krajnjem slučaju, kontaktirajte tehničku podršku.

Dakle, uprkos uspješnom prijenosu stranice na novi domaćin, i dalje morate čekati od nekoliko sati do nekoliko dana dok je vaša domena delegirana. 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 zapisi na svim DNS serverima na Internetu ažuriraju. Ali to se ne dešava uvek. Osim toga, na primjer, za WordPress, tehnička adresa vam neće omogućiti da u potpunosti počnete raditi s novoprenesenim blogom, jer je ovaj motor striktno vezan za naziv domene.

Ali vlasnik hosta uvijek u pismu naznači IP adresu vašeg novog servera. Koristeći ga, možete pristupiti svom resursu bez čekanja na DNS registraciju. Ali u ovom slučaju, samo vi ćete dobiti pristup i to samo na računaru na kojem izvršite dolje opisana podešavanja. Dakle, potrebno je da uradite sledeće:

  1. koristeći bilo koji upravitelj datoteka, otvorite za uređivanje (slijedite ovaj link naći ćete detaljan članak o tome gdje se nalazi ova datoteka, kako je pronaći u Windows 7 i šta u njoj treba napisati), nalazi se na sljedećem putu: c:\ Windows\System32 \drivers\etc\hosts
  2. na kraju HOSTS sadržaja potrebno je dodati red: 109.77.43.4 sajt gde se na početku nalazi IP adresa novog servera, a posle nje, odvojeno razmakom, domen
  3. sačuvajte ovu datoteku i možete bezbedno da ukucate u svoj pretraživač adresu resursa koji ste upravo preneli (možda ćete morati da resetujete DNS keš memoriju na svom računaru - o tome pročitajte u članku iznad o Hosts fajlu)

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

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

Pa i izbor video tutorijali o prijenosu Joomla CMS web stranice na hosting Savjetujem ti da pogledaš. Oni će se automatski igrati jedan za drugim, a ako želite, možete se prebaciti na sljedeću lekciju koristeći odgovarajuće dugme na panelu plejera ili odabrati željenu lekciju iz padajućeg menija u gornjem levom uglu prozora plejera:

Uživajte u gledanju!

Sretno ti! Vidimo se uskoro na stranicama blog stranice

Možda ste zainteresovani

1. februar 2012. u 00:33

Izrada sigurnosne kopije podataka u MySQL

  • MySQL

Sigurnosna kopija baze podataka je stvar koja se uvijek mora konfigurirati za već pokrenute projekte direktno na "živim" proizvodnim serverima.
Ova situacija se lako objašnjava. Na samom početku, svaki projekat je još prazan i jednostavno se nema šta kopirati. U fazi naglog razvoja, glave nekolicine programera isključivo su zaokupljene uvrtanjem funkcija i sitnica, kao i ispravljanjem kritičnih grešaka sa rokom „prekjučer“. I tek kada projekat „uzleti“ dolazi spoznaja da je glavna vrijednost sistema nagomilana baza podataka, a njen neuspjeh će biti katastrofa.
Ovaj pregledni članak je za one čiji su projekti već dosegli ovu tačku, ali pečeni pijetao još nije uhvatio mamac.

1. Kopiranje datoteka baze podataka

MySQL baza podataka se može kopirati ako privremeno isključite MySQL server i jednostavno kopirate datoteke iz foldera /var/lib/mysql/db/. Ako server nije isključen, iz očiglednih razloga, vjerovatno je gubitak podataka i oštećenje. Za velike učitane baze podataka ova vjerovatnoća je blizu 100%. Osim toga, kada prvi put počnete sa „prljavom“ kopijom baze podataka, MySQL server će započeti proces provjere cijele baze podataka, što može potrajati satima.

U većini živih projekata, redovno gašenje servera baze podataka na duže vreme je neprihvatljivo. Za rješavanje ovog problema koristi se trik zasnovan na snimcima sistema datoteka. Snimak je nešto poput “fotografije” sistema datoteka u određenom trenutku, snimljeno bez stvarnog kopiranja podataka (i stoga brzo). Lijeno kopiranje objekata radi na sličan način u mnogim modernim programskim jezicima.
Opšta šema radnji je sljedeća: sve tabele su zaključane, keš datoteka baze podataka je resetovan, napravljen je snimak sistema datoteka i tabele su otključane. Nakon toga, datoteke se tiho kopiraju sa snimka, nakon čega se uništava. Dio „blokiranja“ takvog procesa traje oko nekoliko sekundi, što je već podnošljivo. Kao nadoknada, neko vrijeme, dok je snimak "živ", performanse operacija s datotekama se smanjuju, što prvenstveno utiče na brzinu upisivanja u bazu podataka.

Neki sistemi datoteka, kao što je ZFS, podržavaju izvorno snimanje snimaka. Ako ne koristite ZFS, ali imate LVM upravljač volumena na svom serveru, takođe možete kopirati MySQL bazu podataka putem snimka. Konačno, pod *nix možete koristiti drajver R1Soft Hot Copy snapshot, ali ovaj metod neće raditi u openvz() kontejneru.

Za MyISAM baze podataka postoji službeni besplatni uslužni program mysqlhotcopy, koji „ispravno“ kopira datoteke MyISAM baze podataka bez zaustavljanja servera. 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 za prijenos cijele baze podataka s jednog servera na drugi.

2. Kopiranje preko tekstualnih datoteka

Da biste pročitali podatke iz proizvodne baze podataka u rezervnu kopiju, nije potrebno povlačiti datoteke. Možete odabrati podatke pomoću upita i sačuvati ih u tekstualnoj datoteci. Da biste to učinili, koristite SQL naredbu SELECT INTO OUTFILE i njen par LOAD DATA INFILE . Istovar se vrši red po red (možete odabrati samo potrebne redove za spremanje, kao u običnom SELECT). Struktura tabela nije nigde navedena - programer mora da vodi računa o tome. Također mora voditi računa o uključivanju naredbi SELECT INTO OUTFILE u transakciju ako je potrebno da se osigura integritet podataka. U praksi, SELECT INTO OUTFILE se koristi za djelomično sigurnosno kopiranje vrlo velikih tabela koje se ne mogu kopirati na bilo koji drugi način.

U većini slučajeva, uslužni program mysqldump koji je kreirao Igor Romanenko mnogo je praktičniji. Uslužni program mysqldump generira datoteku koja sadrži sve SQL naredbe potrebne za potpuno obnavljanje baze podataka na drugom poslužitelju. Koristeći zasebne opcije, ovu datoteku možete učiniti kompatibilnom sa gotovo svim DBMS-ima (ne samo 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 za konzolu 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 uslužnih programa za pravljenje rezervnih kopija tekstualnih datoteka su relativno mala brzina rada i nemogućnost pravljenja inkrementalnih rezervnih kopija.

3. Inkrementalne sigurnosne kopije

Tradicionalno se preporučuje čuvanje 10 rezervnih kopija: po jednu za svaki dan u sedmici, kao i sigurnosne kopije od prije dvije sedmice, mjesec i četvrtinu - to će vam omogućiti da se vratite prilično duboko u slučaju bilo kakvog oštećenja podataka.
Sigurnosne kopije svakako ne bi trebale biti pohranjene na istom disku kao živa baza podataka, a ne na istom serveru. U slučaju požara i drugih nepogoda, najbolje je iznajmiti nekoliko jedinica u obližnjem data centru.

Ovi zahtjevi mogu predstavljati problem za velike baze podataka. Upload rezervne kopije baze podataka od 100 gigabajta preko mreže od 100 Mbit će trajati oko tri sata, tokom kojih će kanal biti potpuno začepljen.
Inkrementalno pravljenje rezervnih kopija može djelimično riješiti ovaj problem, kada se pravi potpuni backup, recimo, samo nedjeljom, a ostalim danima se upisuju samo podaci dodani ili promijenjeni tokom proteklog dana. Poteškoća je u tome kako prepoznati baš te „podatke koji su se promijenili tokom dana“.

Ovde, Percona XtraBackup sistem, koji sadrži modifikovani InnoDB engine, analizira MySQL binarne logove i izvlači potrebne informacije iz njih, praktično nema premca. Gore spomenuti plaćeni InnoDB Hot Backup ima gotovo iste mogućnosti.

Opšti problem sa bilo kojim rezervnim kopijama je taj što uvek kasne. U slučaju fatalnog kvara glavnog servera, sistem će biti moguće vratiti samo uz malo „povratka“ na vrijeme, što će jako, jako razočarati njegove korisnike. Ako su finansijski tokovi u sistemu na neki način bili pogođeni, takav „povratak“ može bukvalno koštati popriličan peni.

4. Replikacija

MySQL sistem replikacije je dizajniran da izbjegne vraćanje. Ideja replikacije se zasniva na činjenici da pored „glavnog“ servera („Master“), stalno rade MySQL serveri („slave“), koji primaju inkrementalne rezervne kopije od glavnog servera u realnom vremenu. Time se vrijeme vraćanja svodi gotovo na kašnjenje mreže. Ako Master ne uspije, možete brzo imenovati jednog od slaveova kao “novog Master” i preusmjeriti klijente na njega. Osim toga, slave mogu obraditi zahtjeve za čitanje podataka (SELECTs); ovo se može koristiti za izvođenje nekih proračuna ili smanjenje opterećenja na masteru. MySQL podržava replikaciju iz kutije, proces je dobro opisao korisnik

U ovom članku ćemo pogledati nekoliko praktičnih primjera oporavka baze podataka pomoću mysqldump-a. Uslužni program mysqldump je efikasan alat za kreiranje rezervne kopije MySQL baze podataka. Omogućava vam da kreirate *.sql datoteku sa kolekcijom (dumpom) svih tabela i podataka glavne baze podataka (izvor).

Da biste napravili sigurnosnu kopiju MyISAM baza podataka, bolje je koristiti alat mysqlhotcopy, koje ćemo svakako opisati u narednim člancima, jer s njima radi brže i efikasnije.


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

Osnovne naredbe za kreiranje sigurnosne kopije i vraćanje baze podataka MySQL koristeći mysqldump Tu je:

U ovim naredbama:

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

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

[ime baze podataka]– naziv baze podataka čiju rezervnu kopiju treba napraviti;

[backup_database_file_name].sql– korisnik može odrediti bilo koje prikladno ime za datoteku sigurnosne kopije baze podataka. Ako navedete naziv datoteke kao u datom primjeru, sigurnosna kopija baze podataka će biti kreirana u folderu iz kojeg je naredba pokrenuta, i to:
C:\Program Files\MySQL\MySQL Server 5.7\bin

Da biste spremili sigurnosnu kopiju baze podataka u drugu mapu, prije naziva datoteke sigurnosne kopije baze podataka u naredbi, morate navesti putanju do takve mape. U ovom slučaju, naredbe za kreiranje i vraćanje sigurnosne kopije baze podataka će izgledati 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 napraviti sigurnosnu kopiju MySQL baze podataka

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

# mysqldump –u[korisnik] –str[korisnička_lozinka] [naziv_baze] [naziv rezervne_datoteke baze podataka] .sql

Na primjer:

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

Napravite sigurnosnu kopiju više baza podataka

Prije pravljenja sigurnosne kopije više baza podataka odjednom, identificirajte prisutnost baza podataka.

Da biste to učinili, unesite naredbu pokazati baze podataka(u radnom stolu)

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


Ako trebate napraviti sigurnosnu kopiju više baza podataka u isto vrijeme (npr. my_db I test), zatim da to uradite potrebno je da pokrenete sledeću naredbu:

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

Backup svih baza podataka

Ako postoji potreba za kreiranjem 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

Napravite rezervnu kopiju jedne tabele

Također možete napraviti sigurnosnu kopiju pojedinačne tabele baze podataka. U slučaju da trebate kreirati kopiju tabele wp_commentmeta iz baze podataka my_db, tada će naredba izgledati ovako:

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

Bilješka. Da vidite listu tabela 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.