Vi gör en dump (säkerhetskopia) av databasen med hjälp av verktyget mysqldump. Säkerhetskopiering av MySQL-databaser Dagbok Maxim Bogolepov Säkerhetskopiering av mysql-databaser

Hej alla! Det finns situationer när det uppstår olika oförutsedda situationer efter att ha installerat ett nytt tillägg eller tema på en webbutiks webbplats. De består i att det kan dyka upp fel på sajten som inte fanns där tidigare, eller att sajten inte svarar alls. För att vara förberedd på sådana situationer måste du göra säkerhetskopior av din webbplats eller säkerhetskopia. Helst bör de skapas manuellt varje gång du installerar en ny modul på webbplatsen, eller utför operationer som påverkar databasen eller webbplatsfilerna. Jag gör säkerhetskopior varje vecka för säkerhets skull. Jag får bara alltid många uppdateringar på en vecka.

Säkerhetskopiera webbplatsfiler manuellt

Som regel har bra värdleverantörer sina egna säkerhetskopieringssystem. Den gör en säkerhetskopia av din webbplats med en viss period, vanligtvis flera dagar. Det är klart att du inte helt ska lita på hosting för säkerhetskopiering. Hur kan du då göra en säkerhetskopia? Vi kommer använda .

Det första steget är att skapa en säkerhetskopia av dina filer. För att göra detta, gå till avsnittet "WebFTP". Här väljer vi webbplatsen vars filer vi vill säkerhetskopiera och går till dess mapp. Sedan, för snabbare nedladdning, måste filerna först zippas. Du kan arkivera filer med eller utan komprimering. Jag skulle rekommendera att inte komprimera filerna och lägga till dem i arkivet i deras normala form, för att inte skada dem i framtiden. Vi väljer de kataloger och filer vi behöver, i rullgardinsmenyn nedan, välj åtgärden "Packa till arkiv". Vi ger den ett namn, som helst anger datum och tid när kopian skapades. Klicka på knappen "Kör".

Vi väntar ett tag på att arkivet ska skapas. Efter det laddar du ner det till din dator. Säkerhetskopieringen av filerna är klar.

Manuell säkerhetskopiering av databas

Låt oss nu gå vidare till ett lika viktigt steg - säkerhetskopiering av databas. Om webbhotellet inte ger möjlighet att göra detta automatiskt, måste du i sådana fall, för att spara kopior på din dator, exportera databasen. Detta görs enligt följande. Gå till avsnittet "Databaser" och klicka på länken "PHPMyAdmin" mittemot den önskade databasen.

I den öppna fliken anger du ditt användarnamn och lösenord, så kommer vi till MySQL-databasens kontrollpanel. Klicka på namnet på databasen (1) som du vill reservera och gå till fliken "Exportera" (2).

Välj en metod med ett minimum av inställningar och klicka på "Vidarebefordra". Därefter börjar nedladdningen av sql-filen med en kopia av databasen.

Återställa en databas från en säkerhetskopia

För att återställa databasen från den här filen måste du också logga in på MySQL-databasens kontrollpanel, ta bort alla befintliga tabeller i databasen och sedan gå till fliken "Importera". Där väljer du den tidigare skapade filen och klickar på knappen "Låt oss gå". Systemet kommer att ladda ner det och meddela dig att operationen är klar. Alla tabeller som den innehöll när säkerhetskopian skapades kommer att skapas i databasen.

Återställer filer från en säkerhetskopia

Med filåterställning är allt lite enklare. Vi går till avsnittet "WebFTP", sedan till mappen på din webbplats, tar bort alla filer i mappen på din webbplats och klickar på "Ladda upp fil". Välj det tidigare skapade arkivet och klicka på "Ladda upp fil". Vi väntar på att nedladdningen ska slutföras.

När arkivet har laddats ner och visas i filpanelen måste du packa upp det. Och allt är klart. Eller, utan att ta bort filerna, kan du helt enkelt ladda ner arkivet och packa upp det och ersätta det. Om packningen lyckades betyder det att alla filer har ersatts från säkerhetskopian. Men jag brukar ta bort filerna först och sedan packa upp säkerhetskopian.

Du kan också ladda ner filer med en FTP-klient, till exempel FileZilla. Jag skrev om hur man arbetar med honom. Vi ansluter till vårt ftp-konto via klienten, går till mappen med webbplatsfilerna och kopierar dem helt enkelt till din dator. På samma sätt kan de laddas upp från din dator till webbhotellet. Glöm bara inte att kopiera och ersätta.

Glöm inte säkerheten på din webbplats, ta säkerhetskopior på allvar eftersom du aldrig vet när de kan komma till användning.

Med vänlig hälsning, Schmidt Nikolay

Hej kära läsare av bloggsidan. Idag vill jag prata om konceptet att säkerhetskopiera filer och databaser för din resurs.

Ja, naturligtvis, många värdar () gör säkerhetskopior automatiskt och om något händer kan du vända dig till dem för att få hjälp. Men som de säger: lita på värden, men gör inte ett misstag själv.

Situationer där du kan förlora dina projektdata, du kan citera mycket, och du har säkert själv hört talas om det. Du bör inte lita på din värds barmhärtighet. Du måste göra en säkerhetskopia själv och lagra den på din dator.

Detta kommer att vara mycket mer pålitligt och lugnare. Om ditt internetprojekt trots allt har kollapsat och det inte finns något att återställa det från, pröva lyckan i Webarchive (skrivet om det mer detaljerat här), eftersom det ständigt gör ögonblicksbilder av de allra flesta webbplatser på Internet .

Hur man säkerhetskopierar webbplatsfiler med FileZilla

Som du säkert redan vet, webbplatser skapad på basis av vilken motor som helst, vare sig det är Joomla, WordPress eller SMF, består av två viktiga delar:

  1. För det första är dessa de faktiska filerna för motorn och tilläggen installerade i den, bilder och...
  2. Och för det andra är dessa databaser där texterna till dina artiklar, inlägg etc. lagras.

Databasen (DB) kan också lagra inställningar för vissa parametrar för motorn och dess tillägg. Jag har redan skrivit om detta i en artikel om. En sådan organisation har många fördelar.

Det betyder att vår uppgift handlar om att backa upp all denna rikedom. Dessutom bestäms frekvensen av säkerhetskopiering av databas vanligtvis av frekvensen av ny information som dyker upp i ditt projekt. Det optimala sättet, enligt mig, är att kopiera databasen dagligen. Lyckligtvis väger de vanligtvis inte särskilt mycket och sådana säkerhetskopieringar utförs mycket snabbt. Du bör förmodligen uppdatera säkerhetskopior av dina projektfiler först efter att du har gjort några ändringar i dem: installerat några tillägg, uppdaterat motorversionen, etc.

Låt oss kanske börja med att vår första assistent ringde FileZilla, även om du kan använda vilken annan FTP-hanterare som helst istället, upp till , men jag föredrar denna speciella gratisprogramvara. Jag har redan beskrivit dem i detalj i artikeln ovan, därför kommer vi inte att uppehålla oss i detalj (om du vill, läs själv, särskilt om att lagra lösenord i det här programmet och problemen med det).

Låt oss titta på hur man säkerhetskopierar filer med det. När du har tillgång till din värdserver bör du gå till rotmappen (vanligtvis kallad public_html eller htdocs). Fjärrservern i Filezil visas till höger och innehållet på din dator visas till vänster.

Om du planerar att göra säkerhetskopior regelbundet, råder jag dig att skapa en mapp på din dators hårddisk med ett "talande" namn, och inuti det finns kataloger med namnen på dina projekt. Inuti dessa kataloger kan du skapa mappar med aktuellt datum, till vilka filerna i ditt webbprojekt kommer att kopieras. Tack vare detta blir det sedan lättare att navigera genom säkerhetskopior och ta bort mycket föråldrade för att frigöra utrymme.

Öppna nu på vänster sida av FileZilla mappen där säkerhetskopieringen kommer att utföras, och på höger sida - rotmappen på webbplatsen. Jag råder dig att aktivera möjligheten att visa dolda filer i inställningarna för detta program: i toppmenyn, välj "Server" - "Tvinga dolda filer att visas".

Detta är nödvändigt för att dolda filer, som .htaccess, ska inkluderas i din säkerhetskopia. Därefter väljer du alla objekt på din webbplats i rotkatalogen samtidigt som du håller ned Skift-knappen på ditt tangentbord. Högerklicka på de markerade objekten och välj objektet från snabbmenyn "Ladda ner".

Säkerhetskopiering av filer kommer att börja, vilket kan ta ganska lång tid - beroende på antalet och den totala vikten av objekten som kopieras, samt serverns hastighet. Men du behöver inte titta på processen att skapa en säkerhetskopia. Medan du kopierar kan du självklart göra ditt jobb utan att stänga Filezilla.

I slutet av processen kommer du att må bättre packa allt nedladdat i ett arkiv, eftersom detta avsevärt kan minska volymen och antalet lagrade objekt. Efter arkiveringen lämnar du bara ett arkiv, och raderar allt nedladdat - allt blir snyggt och snyggt. För att återställa webbplatsfiler från en sådan säkerhetskopia: du måste packa upp den och kopiera innehållet i arkivet till servern på ett sätt som liknar det som beskrivs ovan.

Det är sant att om du packade filerna i ett ZIP-arkiv kan du ladda upp det till servern och packa upp det där (beskrivs här hur). Men i det här fallet kan vissa problem uppstå senare, som kan lösas med PHP-medel (läs länken om åtkomsträttigheter och ändra Cmod programmatiskt).

Hur man gör en databassäkerhetskopiering med phpMyAdmin

Låt oss se hur man säkerhetskopierar en databas med phpMyAdmin-skriptet. Den kan nås från din värdkontrollpanel. Om du har det måste du följa följande sökväg för att starta phpMyAdmin: hitta området som heter "Databaser" på cPanels huvudsida och klicka på ikonen för detta skript där.

Om ditt webbhotell inte har tillgång till detta skript, då du du kan göra det själv till rotmappen på din webbplats och få tillgång till din databas genom den. Du kan ladda ner programmet härifrån.

Efter att ha laddat ner arkivet till din dator måste du packa upp det och ladda upp den resulterande mappen (för enkelhetens skull kan du först byta namn på den till phpmyadmin) till rotkatalogen. I allmänhet är det allt. Nu återstår bara att ange följande URL i adressfältet i din webbläsare: http://vash_sait.ru/phpmyadmin

I vilket fall som helst kommer PhpMyAdmin-programfönstret att öppnas, med vilket vi enkelt kan säkerhetskopiera dina projektdatabaser. Det här är programmets huvudsida (på vissa webbplatser har jag en något föråldrad version, men jag har precis vant mig vid den):

Om du är på någon annan phpMyAdmin-sida måste du klicka på huset som är markerat i bilden för att komma till huvudsidan. På ett konto hos hostaren kan du ha många databaser och därför måste du först välja från vänstermenyn bas, som du vill säkerhetskopiera.

Du kan se listan över databaser i programfönstret till vänster (under husikonen). För att göra en databassäkerhetskopiering måste du klicka på fliken "Exportera" ovanför tabelllistan.

Markera rutan längst ned på sidan som öppnas "gzip". Och klicka på "ok"-knappen.

Det är sant att detta är i den gamla (bekväma) versionen av skriptet. Nu erbjuds du som standard att snabbt ladda ner databasen utan komprimering, och om du vill anpassa något (inklusive aktivering av dess gzip-komprimering i farten), måste du markera rutan "Normal" och välja gzip bland många andra inställningar, vilket inte är särskilt bekvämt enligt min mening.

Som ett resultat, efter en tid (vilket beror på serverns hastighet, dess belastning och storleken på din databas), öppnas en standarddialogruta för kopiering, där du måste välja platsen för att spara säkerhetskopian av denna databas.

Återställa en databas från en tidigare skapad säkerhetskopia

För att återställa en databas från en säkerhetskopia måste du fortsätta enligt följande. Först måste du rensa den befintliga databasen från alla tabeller. För att göra detta loggar du in i programmet phpMyAdmin, väljer önskad databas som du vill återställa i den vänstra kolumnen.

I fönstret som öppnas med tabellerna i denna databas, gå ner till botten och under listan med tabeller klicka på "Välj alla". Sedan, återigen längst ned på sidan, välj objektet "Med markerad" från rullgardinsmenyn "Radera".

Ett fönster öppnas med en lista över alla tabeller som ska raderas. Du klickar på knappen "Ja".

Du kan nu återställa databasen från en tidigare gjord säkerhetskopia. För att göra detta, välj bokmärket "Importera":

I fönstret som öppnas klickar du på knappen "Välj fil" och hittar den tidigare säkerhetskopian av denna databas på din hårddisk. Klicka på knappen "Vidarebefordra" (eller "OK" i äldre versioner av skriptet) längst ner på sidan och vänta tills nedladdningen är klar (tiden beror återigen på serverns hastighet och storleken på databasen) . Allt.

Med uppdaterade säkerhetskopior av filer och säkerhetskopior av databas på din dator kan du sova lugnt. De kan också användas när du flyttar en webbplats till ett annat webbhotell.

Överföra en webbplats till ett nytt webbhotell

Så, hur kan vi överföra webbplatsen till en ny plats? Efter att du har köpt hosting kommer du att förses med data för att komma åt hostingservern via FTP, som du kommer in i Filezila-programmet för att få tillgång till servern.

Packa först upp säkerhetskopieringsdatan på din dator och placera den i rotmappen, liknande processen som beskrivs ovan. Utan att vänta på att filerna ska kopieras kan du börja återställa databastabeller från en säkerhetskopia som gjorts på den gamla platsen för din resurs.

Men för detta måste du först gå till en ny hosting (där tabellerna du sparade kommer att kopieras senare). Du kommer att lära dig hur du gör detta från artikeln om phpMyAdmin, länken som jag gav precis ovan. Observera att du med största sannolikhet inte kommer att kunna välja samma namn för databasen och dess användare som på din tidigare bostadsort. Faktum är att hosting vanligtvis lägger till din inloggning till det databasnamn du väljer.

Därför, efter att ha avslutat kopieringen av filerna och databasen, innan du kommer åt webbplatsen från webbläsaren, bör du ange lämplig ändringar i inställningarna för din webbplatsmotor. För att göra detta måste du återigen komma åt webbplatsfilerna via FTP och göra ändringar i konfigurationsfilerna för en eller annan motor (Joomla, WordPress, SMF, etc.). Låt oss titta på inställningarna för varje motor separat.

Vad du ska ändra i WordPress-inställningarna när du migrerar det

För att överföra en blogg till WordPress måste du ändra följande inställningar. Du måste öppna filen för redigering med FileZilla WP-CONFIG.PHP, som finns i rotkatalogen på servern. I den måste du redigera raderna som ansvarar för namnet på databasen och användaren.

// ** MySQL-inställningar - Du kan få dem från din värd ** // /** Databasnamn för WordPress */ define("WP_CACHE", true); //Tillagt av WP-Cache Manager define("DB_NAME", "skriv in det nya namnet på din databas här"); /** MySQL användarnamn */ define("DB_USER", "ange nytt användarnamn här"); /** MySQL-databaslösenord */ define("DB_PASSWORD", "anipiimaaxai"); /** MySQL-server - ibland behöver du ändra detta värde, till exempel på Masterhost */ define("DB_HOST", "localhost"); /** Databaskodning som används vid skapande av tabeller. */ define("DB_CHARSET", "utf8"); /** Databaskartläggning. ÄNDRA INTE DETTA VÄRDE. */ define("DB_COLLATE", "");

Efter redigering, spara denna fil tillbaka och du kan anse att överföringen av WordPress till det nya webbhotellet har lyckats. Om du ändrar domännamnet när du överför din blogg, måste du öppna säkerhetskopian av databasen med SQL-tillägget i en textredigerare för att allt ska fungera korrekt (extrahera det från gzip-arkivet).

Använd sedan det inbyggda "sök och ersätt", hitta alla referenser till den gamla webbadressen till din blogg och ersätt dess nya adress (till exempel vasy.ru med vova.ru). Efter detta, spara filen med databasbackupen och "Importera" den i phpMyAdmin-programmet.

När du har loggat in på WordPress-administratörsområdet måste du göra det ange den korrekta absoluta sökvägen till objekten i din blogg (den har ändrats eftersom du flyttade WordPress till en annan värd). Den absoluta sökvägen ställs in via parametern UPLOAD_PATH i de globala WP-inställningarna. Du kan komma till dessa inställningar genom att lägga till följande sökväg till webbadressen till huvudsidan:

/wp-admin/options.php

För min bloggadress kommer det se ut så här:

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

Men först måste du logga in på WordPress admin. läs länken som tillhandahålls.

Vad behöver ändras i Joomla-inställningar när man byter värd

Att överföra en Joomla-webbplats till ett annat webbhotell kräver att följande inställningar ändras. Du måste öppna för redigering CONFIGURATION.PHP i serverns rotmapp. Hitta raderna i den som är ansvariga för att få tillgång till databasen:

Var $user = "ange nytt användarnamn här"; var $db = "ange ditt nya databasnamn här";

Dessutom måste du också ändra den absoluta sökvägen till mapparna för att lagra loggar och temporära filer i Joomla. Du måste ändra det på dessa rader:

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

Överför SMF-forumet till en ny värd

Att flytta forumet till SMF kommer att kräva att vissa inställningar ändras. Du måste öppna den för redigering SETTINGS.PHP från forumets rotmapp. Precis som i fallet med Joomla, här behöver du inte bara ändra namnet på databasen och SMF-användaren, utan även de absoluta sökvägarna till forummappen och forummappen SOURCES.

########## Databasinformation ########## $db_server = "localhost"; $db_name = "skriv in ditt nya databasnamn här"; $db_user = "ange nytt användarnamn här"; $db_passwd = "hoighaebaeto"; $db_prefix = "smf_"; $db_persist = 0; $db_error_send = 1; ########## Kataloger/filer ########## # Notera: Dessa kataloger behöver inte ändras om du inte flyttar saker. $boarddir = "/home/xxxx/public_html/forum"; # Den absoluta sökvägen till forumets mapp. (inte bara "."!) $sourcedir = "/home/xxxx/public_html/forum/Sources"; # Sökväg till Sources-katalogen.

Men förutom detta, efter att ha överfört SMF till en ny värd, måste du ändra den absoluta sökvägen till den för närvarande installerade mappen. För att göra detta måste du gå till forumets administratörsområde och välja "Aktuellt tema" från den vänstra kolumnen. I fönstret som öppnas, i området "Temamapp", anger du den absoluta sökvägen till önskad mapp.

Hur man börjar arbeta med en webbplats direkt efter att den har överförts till ett nytt webbhotell

Du bifogade din (webbplats, i mitt fall) till den. Eller så har du i enlighet med ovan genomfört överföringen. I princip spelar det ingen roll, men du måste associera den nya servern till domänen ändå. För att göra detta hittar du din nya värd i kontrollpanelen hos din registrar (där du köpte domännamnet).

Du kan se DNS-serveradresserna i brevet som din nya värd skickar till dig. Var exakt du måste ange dessa DNS i registrarpanelen, det är svårt att säga säkert, men det bör inte begravas djupt och ligga i osynligt. Som en sista utväg, kontakta teknisk support.

Så trots den framgångsrika överföringen av webbplatsen till en ny värd måste du fortfarande göra det vänta från flera timmar till ett par dagar medan din domän delegeras. Tills denna process är slutförd kommer din resurs inte att vara tillgänglig på din nya plats.

Ibland kan värdägaren i ett brev ange en teknisk adress där du kan komma åt din resurs medan posterna på alla DNS-servrar på Internet uppdateras. Men detta händer inte alltid. Dessutom, till exempel för WordPress, kommer den tekniska adressen inte att tillåta dig att helt börja arbeta med den nyligen överförda bloggen, eftersom denna motor är strikt knuten till domännamnet.

Men värdens ägare anger alltid IP-adressen till din nya server i brevet. Genom att använda den kan du komma åt din resurs utan att vänta på DNS-registrering. Men i det här fallet är det bara du som får åtkomst och endast på den dator där du gör inställningarna som beskrivs nedan. Så du måste göra följande:

  1. använd valfri filhanterare, öppna för redigering (följ den här länken hittar du en detaljerad artikel om var den här filen finns, hur du hittar den i Windows 7 och vad som ska skrivas i den), som ligger i följande sökväg: c:\ Windows\System32 \drivers\etc\hosts
  2. i slutet av HOSTS-innehållet måste du lägga till raden: 109.77.43.4-webbplatsen där det i början finns IP-adressen för den nya servern, och efter den, åtskilda av ett mellanslag, domänen
  3. spara den här filen och du kan säkert skriva in adressen till resursen som du just överförde i din webbläsare (du kan behöva återställa DNS-cachen på din dator - läs om detta i artikeln precis ovan om Hosts-filen)

Utan att vänta på att domänen ska delegeras kan du alltså redan kontrollera funktionen hos den överförda resursen och vid behov fixa allt innan det blir tillgängligt för alla andra besökare. Efter att domänen har delegerats behöver du ta bort tillagd rad i HOSTS.

Du kan också titta på en video om ämnet från en välkänd webbplatsbyggare i RuNet:

Tja, och ett urval videotutorials om att överföra en Joomla CMS-webbplats till värd Jag råder dig att titta. De kommer att spelas en efter en automatiskt, och om du vill kan du byta till nästa lektion med hjälp av motsvarande knapp på spelarpanelen eller välja önskad lektion från rullgardinsmenyn i det övre vänstra hörnet av spelarfönstret:

Njut av att titta!

Lycka till! Vi ses snart på bloggsidans sidor

Du kanske är intresserad

1 februari 2012 kl. 00:33

Säkerhetskopiera data i MySQL

  • MySQL

Databassäkerhetskopiering är en sak som alltid måste konfigureras för redan pågående projekt direkt på "live" produktionsservrar.
Denna situation är lätt att förklara. I början är alla projekt fortfarande tomt och det finns helt enkelt inget att kopiera. I fasen av snabb utveckling är cheferna för ett fåtal utvecklare uteslutande upptagna med att skruva in funktioner och krusiduller, samt att fixa kritiska buggar med en deadline på "i förrgår". Och först när projektet "tar fart" kommer insikten att systemets huvudvärde är den ackumulerade databasen, och dess misslyckande kommer att bli en katastrof.
Den här recensionsartikeln vänder sig till dem vars projekt redan har nått denna punkt, men stektuppen har ännu inte tagit betet.

1. Kopiera databasfiler

MySQL-databasen kan kopieras om du tillfälligt stänger av MySQL-servern och helt enkelt kopierar filerna från mappen /var/lib/mysql/db/. Om servern inte är avstängd, av uppenbara skäl, är dataförlust och korruption sannolikt. För stora laddade databaser är denna sannolikhet nära 100%. Dessutom, första gången du börjar med en "smutsig" kopia av databasen, kommer MySQL-servern att påbörja processen att kontrollera hela databasen, vilket kan ta timmar.

I de flesta liveprojekt är det oacceptabelt att regelbundet stänga av databasservern under en längre tid. För att lösa det här problemet används ett knep baserat på ögonblicksbilder av filsystemet. En ögonblicksbild är något som ett "foto" av filsystemet vid en viss tidpunkt, taget utan att faktiskt kopiera data (och därför snabbt). Lat kopiering av objekt fungerar på liknande sätt i många moderna programmeringsspråk.
Det allmänna åtgärdsschemat är som följer: alla tabeller är låsta, databasfilens cache återställs, en ögonblicksbild av filsystemet tas och tabellerna låses upp. Efter detta kopieras filerna tyst från ögonblicksbilden, varefter den förstörs. Den "blockerande" delen av en sådan process tar ungefär sekunder, vilket redan är acceptabelt. Som en återbetalning, under en tid, medan ögonblicksbilden är "levande", minskar prestandan för filoperationer, vilket främst påverkar hastigheten för skrivoperationer till databasen.

Vissa filsystem, som ZFS, stöder att ta ögonblicksbilder inbyggt. Om du inte använder ZFS, men har en LVM volymhanterare på din server, kan du också kopiera MySQL-databasen via ögonblicksbild. Slutligen, under *nix kan du använda R1Soft Hot Copy snapshot-drivrutinen, men den här metoden fungerar inte i openvz()-behållaren.

För MyISAM-databaser finns det ett officiellt gratisverktyg mysqlhotcopy, som "korrekt" kopierar MyISAM-databasfiler utan att stoppa servern. Det finns ett liknande verktyg för InnoDB, men det är betalt, även om det har fler funktioner.

Att kopiera filer är det snabbaste sättet att överföra en hel databas från en server till en annan.

2. Kopiering via textfiler

För att kunna läsa data från produktionsdatabasen till säkerhetskopia är det inte nödvändigt att dra filerna. Du kan välja data med hjälp av en fråga och spara den i en textfil. För att göra detta, använd SQL-kommandot SELECT INTO OUTFILE och dess par LOAD DATA INFILE . Avlastning sker rad för rad (du kan bara välja de rader som behövs för att spara, som i en vanlig SELECT). Strukturen på tabellerna är inte specificerad någonstans - programmeraren måste ta hand om detta. Den måste också se till att inkludera SELECT INTO OUTFILE-kommandon i transaktionen om det behövs för att säkerställa dataintegritet. I praktiken används SELECT INTO OUTFILE för partiell säkerhetskopiering av mycket stora tabeller som inte kan kopieras på något annat sätt.

I de flesta fall är mysqldump-verktyget skapat av Igor Romanenko mycket bekvämare. Verktyget mysqldump genererar en fil som innehåller alla SQL-kommandon som behövs för att helt återställa en databas på en annan server. Med hjälp av separata alternativ kan du göra den här filen kompatibel med nästan alla DBMS (inte bara MySQL); Dessutom är det möjligt att ladda ner data i CSV- och XML-format. För att återställa data från sådana format finns det ett verktyg som heter mysqlimport.

Konsolverktyget mysqldump. Det finns dess tillägg och analoger som låter dig hantera säkerhetskopiering via ett webbgränssnitt, till exempel det ukrainska verktyget Sypex Dumper (deras representant finns på Habré).

Nackdelarna med universella säkerhetskopieringsverktyg till textfiler är den relativt låga drifthastigheten och oförmågan att göra inkrementella säkerhetskopior.

3. Inkrementella säkerhetskopior

Traditionellt rekommenderas det att behålla 10 säkerhetskopior: en för varje dag i veckan, samt säkerhetskopior från två veckor, en månad och ett kvartal sedan - detta gör att du kan rulla tillbaka ganska djupt i händelse av eventuell datakorruption.
Säkerhetskopieringar bör definitivt inte lagras på samma disk som livedatabasen, och inte på samma server. Vid bränder och andra katastrofer är det bäst att hyra ett par enheter i ett närliggande datacenter.

Dessa krav kan vara ett problem för stora databaser. Att ladda upp en säkerhetskopia av en 100-gigabyte databas över ett 100-Mbit nätverk kommer att ta cirka tre timmar, då kanalen kommer att vara helt igensatt.
Inkrementella säkerhetskopieringar kan delvis lösa detta problem, när en fullständig säkerhetskopia görs, t.ex. endast på söndagar, och på andra dagar skrivs endast data som lagts till eller ändrats under den senaste dagen. Svårigheten är hur man identifierar just denna "data som har förändrats under dagen."

Här är Percona XtraBackup-systemet, som innehåller en modifierad InnoDB-motor, analyserar MySQL binära loggar och extraherar nödvändig information från dem, praktiskt taget oöverträffad. Den betalda InnoDB Hot Backup som nämns ovan har nästan samma möjligheter.

Det allmänna problemet med säkerhetskopior är att de alltid släpar efter. I händelse av ett fatalt fel på huvudservern kommer det att vara möjligt att återställa systemet endast med en viss "återställning" i tid, vilket kommer att göra användarna mycket, mycket besvikna. Om finansiella flöden i systemet på något sätt påverkades, kan en sådan "kickback" bokstavligen kosta en ganska slant.

4. Replikering

MySQL-replikeringssystemet är utformat för att undvika återställningar. Idén med replikering är baserad på det faktum att förutom "huvudservern" ("Master"), MySQL-servrar ("slavar") ständigt körs, som tar emot inkrementella säkerhetskopior från mastern i realtid. Således reduceras återställningstiden nästan till nätverksfördröjningen. Om Master misslyckas kan du snabbt utse en av slavarna som den "nya Master" och omdirigera klienter till den. Dessutom kan slavar behandla förfrågningar om att läsa data (SELECTs); detta kan användas för att utföra vissa beräkningar eller minska belastningen på mastern. MySQL stöder replikering direkt, processen är väl beskriven av användaren

I den här artikeln kommer vi att titta på flera praktiska exempel på att säkerhetskopiera databasåterställning med mysqldump. Verktyget mysqldump är ett effektivt verktyg för att skapa en säkerhetskopia av en MySQL-databas. Det låter dig skapa en *.sql-fil med en samling (dump) av alla tabeller och data i huvuddatabasen (källa).

För att säkerhetskopiera MyISAM-databaser är det bättre att använda verktyget mysqlhotcopy, som vi definitivt kommer att beskriva i följande artiklar, eftersom det fungerar snabbare och mer effektivt med dem.


Genom att använda mysqldump, kan du antingen skapa en säkerhetskopia av lokala databaser eller återställa dem till fjärrdatabaser. I den här artikeln kommer vi att titta på flera praktiska exempel på säkerhetskopiering av databasåterställning mysqldump.

Grundläggande kommandon för skapa en säkerhetskopia och återställa en databas MySQL använder mysqldump Det finns:

I dessa kommandon:

-u– en parameter som anger vilken inloggning som används i detta fall för att ansluta till databasen;

-s– en parameter som anger användarlösenordet för denna inloggning. Om du inte anger ett lösenord efter den här parametern, måste du efter att ha kört kommandot ange det ytterligare;

[Databas namn]– Namnet på den databas vars säkerhetskopia måste skapas;

[backup_database_file_name].sql– användaren kan ange vilket lämpligt namn som helst för säkerhetskopieringsfilen för databasen. Om du anger filnamnet som i det angivna exemplet kommer en säkerhetskopia av databasen att skapas i mappen från vilken kommandot startades, nämligen:
C:\Program Files\MySQL\MySQL Server 5.7\bin

För att spara en databassäkerhetskopiering i en annan mapp, innan namnet på databassäkerhetskopieringsfilen i kommandot, måste du ange sökvägen till en sådan mapp. I det här fallet kommer kommandona för att skapa och återställa en databassäkerhetskopiering se ut så här:

# 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


Hur man säkerhetskopierar en MySQL-databas

För att skapa en säkerhetskopia av en databas, använd bara standardkommandot som beskrivs ovan:

# mysqldump –u[användare] – sid[user_password] [database_name] [backup_file_name of database] .sql

Till exempel:

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

Säkerhetskopiera flera databaser

Innan du säkerhetskopierar flera databaser samtidigt, identifiera förekomsten av databaserna.

För att göra detta, skriv in kommandot visa databaser(i Workbench)

eller # mysqlshow –uroot -s(i konsolen).


Om du behöver säkerhetskopiera flera databaser samtidigt (t.ex. min_db Och testa), för att göra detta måste du köra följande kommando:

# mysqldump -uroot -pqwerty –databaser mitt_db test my_db_test_backup.sql

Säkerhetskopiering av alla databaser

Om det finns ett behov av att skapa en säkerhetskopia av alla databaser i din MySQL-profil kan detta göras med hjälp av parametern – alla databaser.

# mysqldump -uroot -pqwerty – alla databaser all-databases_backup.sql

Säkerhetskopiera ett enda bord

Du kan också säkerhetskopiera en enskild databastabell. Om du behöver skapa en kopia av tabellen wp_commentmeta från databasen min_db, då kommer kommandot att se ut så här:

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

Notera. För att se en lista över databastabeller, skriv in kommandot:
#mysqlshow –uroot –p my_db


Hur man återställer en MySQL-databas från en säkerhetskopia

Återställ MySQL-databas från en säkerhetskopia skapad med någon av metoderna som beskrivs ovan kan du använda en standardmetod, som beskrivs i början av artikeln.