Vi lager en dump (sikkerhetskopi) av databasen ved å bruke mysqldump-verktøyet. Lage en sikkerhetskopi av MySQL-databaser Dagbok Maxim Bogolepov Sikkerhetskopiering av mysql-databaser

Hei alle sammen! Det er situasjoner når det oppstår ulike uforutsette situasjoner etter å ha installert en ny utvidelse eller et nytt tema på en nettbutikks nettside. De består i at det kan dukke opp feil på siden som ikke var der før, eller at siden ikke reagerer i det hele tatt. For å være forberedt på slike situasjoner må du ta sikkerhetskopier av nettstedet eller sikkerhetskopien. Ideelt sett bør de opprettes manuelt hver gang du installerer en ny modul på nettstedet, eller utfører operasjoner som påvirker databasen eller nettstedfilene. Jeg tar sikkerhetskopier hver uke for sikkerhets skyld. Jeg får bare alltid mange oppdateringer i løpet av en uke.

Manuell sikkerhetskopiering av nettstedsfiler

Som regel har gode hostingleverandører sitt eget sikkerhetskopieringssystem. Den lager en sikkerhetskopi av nettstedet ditt med en viss periode, vanligvis flere dager. Det er klart at du ikke helt bør stole på hosting for sikkerhetskopiering. Hvordan kan du da lage en sikkerhetskopi? Vi vil bruke.

Det første trinnet er å lage en sikkerhetskopi av filene dine. For å gjøre dette, gå til "WebFTP"-delen. Her velger vi nettstedet hvis filer vi vil sikkerhetskopiere og går til mappen. Deretter, for raskere nedlasting, må filene først zippes. Du kan arkivere filer med eller uten komprimering. Jeg vil anbefale å ikke komprimere filene, og legge dem til arkivet i normal form, for ikke å skade dem i fremtiden. Vi velger katalogene og filene vi trenger, i rullegardinlisten nedenfor velger du handlingen "Pack til arkiv". Vi gir den et navn, fortrinnsvis med angivelse av dato og klokkeslett da kopien ble opprettet. Klikk på "Kjør"-knappen.

Vi venter en stund på at arkivet skal opprettes. Etter det laster du den ned til datamaskinen din. Sikkerhetskopien av filene er klar.

Manuell sikkerhetskopiering av database

La oss nå gå videre til et like viktig trinn - sikkerhetskopiering av database. Hvis hostingen ikke gir muligheten til å gjøre dette automatisk, må du i slike tilfeller eksportere databasen for å lagre kopier på datamaskinen din. Dette gjøres som følger. Gå til "Databaser"-delen og klikk på "PHPMyAdmin"-koblingen ved siden av ønsket database.

I den åpne fanen skriver du inn brukernavnet og passordet ditt, så kommer vi til kontrollpanelet for MySQL-databasen. Klikk på navnet på databasen (1) du ønsker å reservere og gå til "Eksporter"-fanen (2).

Velg en metode med et minimum av innstillinger og klikk "Videresend". Deretter starter nedlastingen av sql-filen med en kopi av databasen.

Gjenopprette en database fra en sikkerhetskopi

For å gjenopprette databasen fra denne filen, må du også logge på MySQL-databasens kontrollpanel, slette alle eksisterende tabeller i databasen og deretter gå til "Import"-fanen. Der velger du den tidligere opprettede filen og klikker på "La oss gå" -knappen. Systemet vil laste det ned og varsle deg om at operasjonen er fullført. Alle tabellene som den inneholdt på det tidspunktet sikkerhetskopien ble opprettet, vil bli opprettet i databasen.

Gjenopprette filer fra en sikkerhetskopi

Med filgjenoppretting er alt litt enklere. Vi går til "WebFTP"-delen, deretter til mappen på nettstedet ditt, sletter alle filene i mappen på nettstedet ditt og klikker på "Last opp fil". Velg det tidligere opprettede arkivet og klikk "Last opp fil". Vi venter på at nedlastingen skal fullføres.

Etter at arkivet er lastet ned og vises i filpanelet, må du pakke det ut. Og alt er klart. Eller, uten å slette filene, kan du ganske enkelt laste ned arkivet og pakke det ut og erstatte det. Hvis utpakkingen var vellykket, betyr dette at alle filene er erstattet fra sikkerhetskopien. Men jeg pleier å slette filene først og deretter pakke ut sikkerhetskopien.

Du kan også laste ned filer ved hjelp av en FTP-klient, for eksempel FileZilla. Jeg skrev om hvordan jeg kan jobbe med ham. Vi kobler til ftp-kontoen vår gjennom klienten, går til mappen med nettstedfilene og kopierer dem ganske enkelt til datamaskinen din. På samme måte kan de lastes opp fra datamaskinen din til hostingen. Bare ikke glem å kopiere og erstatte.

Ikke glem sikkerheten til nettstedet ditt, ta sikkerhetskopier på alvor fordi du aldri vet når de kan komme til nytte.

Med vennlig hilsen Schmidt Nikolay

Hei, kjære lesere av bloggsiden. I dag vil jeg snakke om konseptet med å sikkerhetskopiere filer og databaser for ressursen din.

Ja, selvfølgelig, mange hostere () utfører sikkerhetskopiering automatisk, og hvis noe skjer, kan du henvende deg til dem for å få hjelp. Men som de sier: stol på vertskapet, men ikke gjør en feil selv.

Situasjoner der du kan miste prosjektdataene dine, du kan sitere mye, og du har sikkert selv hørt om det. Du bør ikke stole på vertens nåde. Du må ta en sikkerhetskopi selv og lagre den på datamaskinen din.

Dette vil være mye mer pålitelig og roligere. Hvis, tross alt, Internett-prosjektet ditt har kollapset, og det ikke er noe å gjenopprette det fra, så prøv lykken i Webarchive (skrevet mer detaljert om det her), fordi det stadig tar øyeblikksbilder av de aller fleste nettsteder på Internett .

Hvordan sikkerhetskopiere nettstedsfiler ved hjelp av FileZilla

Som du sikkert allerede vet, nettsteder opprettet på grunnlag av en hvilken som helst motor, det være seg Joomla, WordPress eller SMF, består av to viktige deler:

  1. For det første er dette de faktiske filene til motoren og utvidelsene installert i den, bilder og...
  2. Og for det andre er dette databaser hvor tekstene til artiklene dine, innlegg osv. lagres.

Databasen (DB) kan også lagre innstillinger for noen parametere for motoren og dens utvidelser. Jeg har allerede skrevet om dette i en artikkel om. En slik organisasjon har mange fordeler.

Dette betyr at vår oppgave kommer ned til å sikkerhetskopiere all denne rikdommen. Dessuten bestemmes hyppigheten av sikkerhetskopiering av databasen vanligvis av frekvensen av ny informasjon som vises på prosjektet ditt. Den optimale måten, etter min mening, er å kopiere databasen daglig. Heldigvis veier de vanligvis ikke så mye, og slike sikkerhetskopier utføres veldig raskt. Du bør sannsynligvis oppdatere sikkerhetskopier av prosjektfilene dine først etter at du har gjort noen endringer i dem: installert noen utvidelser, oppdatert motorversjonen osv.

La oss kanskje starte med at vår første assistent ringte FileZilla, selv om du kan bruke hvilken som helst annen FTP-manager i stedet, opptil , men jeg foretrekker denne spesielle gratis programvareopprettelse. Jeg har allerede beskrevet dem i noen detalj i artikkelen ovenfor, derfor vil vi ikke dvele ved dette i detalj (hvis du vil, les selv, spesielt om lagring av passord i dette programmet og problemene forbundet med det).

La oss se på hvordan du sikkerhetskopierer filer ved å bruke den. Når du har tilgang til vertsserveren din, bør du gå til rotmappen (vanligvis kalt public_html eller htdocs). Den eksterne serveren i Filezil vises til høyre, og innholdet på datamaskinen vises til venstre.

Hvis du planlegger å ta sikkerhetskopier regelmessig, anbefaler jeg deg å lage en mappe på datamaskinens harddisk med et "talende" navn, og inne i den er det kataloger med navnene på prosjektene dine. Inne i disse katalogene kan du opprette mapper med gjeldende dato, som filene til webprosjektet ditt vil bli kopiert til. Takket være dette blir det lettere å navigere gjennom sikkerhetskopier og slette svært utdaterte for å frigjøre plass.

Åpne nå på venstre side av FileZilla mappen der sikkerhetskopieringen skal utføres, og på høyre side - rotmappen til nettstedet. Jeg anbefaler deg å aktivere muligheten til å vise skjulte filer i innstillingene til dette programmet: i toppmenyen, velg "Server" - "Tving skjulte filer til å vises".

Dette er nødvendig for at skjulte filer, for eksempel .htaccess, skal inkluderes i sikkerhetskopien. Deretter velger du alle objektene på nettstedet ditt i rotkatalogen mens du holder nede Shift-knappen på tastaturet. Høyreklikk på de valgte objektene og velg elementet fra hurtigmenyen "Nedlasting".

Sikkerhetskopiering av filer vil begynne, noe som kan ta ganske lang tid - avhengig av antall og totalvekt på objektene som kopieres, samt hastigheten til serveren. Men du trenger ikke å se på prosessen med å lage en sikkerhetskopi. Mens du kopierer, kan du gjøre jobben din uten å stenge Filezilla, selvfølgelig.

På slutten av prosessen vil du føle deg bedre pakke alt nedlastet inn i ett arkiv, fordi dette kan redusere volumet og antall lagrede objekter betydelig. Etter arkivering lar du bare ett arkiv ligge, og sletter alt nedlastet - alt blir fint og ryddig. For å gjenopprette nettstedsfiler fra en slik sikkerhetskopi: du må pakke den ut og kopiere innholdet i arkivet til serveren på en måte som ligner på den som er beskrevet ovenfor.

Riktignok, hvis du pakket filene inn i et ZIP-arkiv, kan du laste det opp til serveren og pakke det ut der (beskrevet her hvordan). Men i dette tilfellet kan det oppstå noen problemer senere, som kan løses med PHP-midler (les lenken om tilgangsrettigheter og endring av Cmod programmatisk).

Hvordan lage en database backup ved hjelp av phpMyAdmin

La oss se hvordan du sikkerhetskopierer en database ved hjelp av phpMyAdmin-skript. Den kan nås fra vertskontrollpanelet. Hvis du har det, må du følge følgende sti for å starte phpMyAdmin: finn området kalt "Databaser" på cPanel-hovedsiden og klikk på ikonet til dette skriptet der.

Hvis hostingen din ikke har tilgang til dette skriptet, må du du kan gjøre det selv til rotmappen på nettstedet ditt og få tilgang til databasen din gjennom den. Du kan laste ned programmet herfra.

Etter å ha lastet ned arkivet til datamaskinen din, må du pakke det ut og laste opp den resulterende mappen (for enkelhets skyld kan du først gi det nytt navn til phpmyadmin) til rotkatalogen. Generelt er det alt. Nå gjenstår det bare å skrive inn følgende URL i adressefeltet til nettleseren din: http://vash_sait.ru/phpmyadmin

Uansett vil PhpMyAdmin-programvinduet åpnes, som vi enkelt kan ta backup av prosjektdatabasene dine med. Dette er hovedsiden til programmet (på noen nettsteder har jeg en litt utdatert versjon, men jeg har akkurat blitt vant til den):

Hvis du er på en annen phpMyAdmin-side, må du klikke på huset som er markert i bildet for å komme til hovedsiden. På én konto hos hosteren kan du ha mange databaser og derfor må du først velge fra venstremenyen utgangspunkt, som du vil sikkerhetskopiere.

Du kan se listen over databaser i programvinduet til venstre (under husikonet). For å lage en sikkerhetskopi av databasen må du klikke på fanen "Eksport" over listen over tabeller.

Merk av i boksen nederst på siden som åpnes "gzip". Og klikk på "ok"-knappen.

Riktignok er dette i den gamle (praktiske) versjonen av manuset. Nå, som standard, tilbys du raskt å laste ned databasen uten komprimering, og hvis du vil tilpasse noe (inkludert aktivering av gzip-komprimering på et øyeblikk), må du krysse av i "Normal"-boksen og velge gzip blant mange andre innstillinger , noe som ikke er veldig praktisk etter min mening.

Som et resultat, etter en tid (som avhenger av hastigheten til serveren, dens belastning og størrelsen på databasen), vil en standard kopidialog åpnes, der du må velge plasseringen for å lagre sikkerhetskopien av denne databasen.

Gjenopprette en database fra en tidligere opprettet sikkerhetskopi

For å gjenopprette en database fra en sikkerhetskopi, må du fortsette som følger. Først må du tømme den eksisterende databasen for alle tabeller. For å gjøre dette, logger du på phpMyAdmin-programmet, velger ønsket database som du vil gjenopprette i venstre kolonne.

I vinduet som åpnes med tabellene til denne databasen, gå helt ned til bunnen og under listen over tabeller klikk på "Velg alle". Deretter, igjen nederst på siden, velger du elementet "Med markert" fra rullegardinlisten "Slett".

Et vindu åpnes med en liste over alle tabeller som skal slettes. Du klikker på "Ja"-knappen.

Du kan nå gjenopprette databasen fra en tidligere laget sikkerhetskopi. For å gjøre dette, velg bokmerket "Import":

I vinduet som åpnes, klikk på "Velg fil"-knappen og finn den tidligere sikkerhetskopien av denne databasen på harddisken din. Klikk på "Videresend"-knappen (eller "OK" i eldre versjoner av skriptet) nederst på siden og vent til nedlastingen er ferdig (tiden igjen avhenger av hastigheten på serveren og størrelsen på databasen) . Alle.

Når du har oppdaterte sikkerhetskopier av filer og databaser på datamaskinen, kan du sove rolig. De kan også brukes når du flytter et nettsted til en annen hosting.

Overføring av et nettsted til en ny hosting

Så hvordan kan vi overføre nettstedet til et nytt sted? Etter kjøp av hosting vil du få tilgang til hostingserveren via FTP, som du vil gå inn i Filezila-programmet for å få tilgang til serveren.

Pakk først ut sikkerhetskopidataene på datamaskinen og plasser dem i rotmappen, på samme måte som prosessen beskrevet ovenfor. Uten å vente på at filene skal kopieres, kan du begynne å gjenopprette databasetabeller fra en sikkerhetskopi laget på den gamle plasseringen til ressursen din.

Men for dette må du først gå til en ny hosting (hvor tabellene du lagret vil bli kopiert senere). Du vil lære hvordan du gjør dette fra artikkelen om phpMyAdmin, koblingen som jeg ga rett ovenfor. Vær oppmerksom på at du mest sannsynlig ikke vil kunne velge samme navn på databasen og dens bruker som på ditt tidligere bosted. Faktum er at hosting vanligvis legger til påloggingen din til databasenavnet du velger.

Derfor, etter å ha fullført kopieringen av filene og databasen, før du får tilgang til nettstedet fra nettleseren, bør du angi riktig endringer i motorinnstillingene for nettstedet ditt. For å gjøre dette, må du igjen få tilgang til nettstedfilene via FTP og gjøre endringer i konfigurasjonsfilene til en eller annen motor (Joomla, WordPress, SMF, etc.). La oss se på innstillingene for hver motor separat.

Hva du skal endre i WordPress-innstillingene når du migrerer det

Overføring av en blogg til WordPress krever endring av følgende innstillinger. Du må åpne filen for redigering ved hjelp av FileZilla WP-CONFIG.PHP, som ligger i rotkatalogen på serveren. I den må du redigere linjene som er ansvarlige for navnet på databasen og brukeren.

// ** MySQL-innstillinger - Du kan få dem fra verten din ** // /** Databasenavn for WordPress */ define("WP_CACHE", true); //Lagt til av WP-Cache Manager define("DB_NAME", "skriv inn det nye navnet på databasen din her"); /** MySQL brukernavn */ define("DB_USER", "skriv inn nytt brukernavn her"); /** MySQL-databasepassord */ define("DB_PASSWORD", "anipiimaaxai"); /** MySQL-server - noen ganger må du endre denne verdien, for eksempel på Masterhost */ define("DB_HOST", "localhost"); /** Databasekoding brukt ved oppretting av tabeller. */ define("DB_CHARSET", "utf8"); /** Databasekartlegging. IKKE ENDRE DENNE VERDEN. */ define("DB_COLLATE", "");

Etter redigering, lagre denne filen tilbake og du kan vurdere at overføringen av WordPress til den nye hostingen har vært vellykket. Hvis du endrer domenenavnet når du overfører bloggen din, må du åpne sikkerhetskopi av databasen med SQL-utvidelsen i et tekstredigeringsprogram for at alt skal fungere korrekt (trekk det ut fra gzip-arkivet).

Deretter, bruk den innebygde "søk og erstatt", finn alle referanser til den gamle nettadressen til bloggen din og erstatt den nye adressen (for eksempel vasy.ru med vova.ru). Etter dette, lagre filen med databasesikkerhetskopien og "Importer" den i phpMyAdmin-programmet.

Etter at du har logget på WordPress-administrasjonsområdet, må du angi riktig absolutt bane til objektene til bloggen din (den har endret seg fordi du flyttet WordPress til en annen hosting). Den absolutte banen settes via parameteren UPLOAD_PATH i de globale WP-innstillingene. Du kan komme til disse innstillingene ved å legge til følgende bane til URL-en til hovedsiden:

/wp-admin/options.php

For bloggadressen min vil det se slik ut:

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

Men først må du logge på WordPress admin. les linken som følger med.

Hva må endres i Joomla-innstillinger når du bytter hosting

Overføring av et Joomla-nettsted til en annen hosting vil kreve endring av følgende innstillinger. Du må åpne for redigering KONFIGURASJON.PHP i rotmappen til serveren. Finn linjene i den som er ansvarlige for å få tilgang til databasen:

Var $user = "skriv inn nytt brukernavn her"; var $db = "skriv inn ditt nye databasenavn her";

I tillegg må du også endre den absolutte banen til mappene for lagring av logger og midlertidige filer i Joomla. Du må endre det på disse linjene:

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

Overføring av SMF-forumet til en ny hosting

Migrering av forumet til SMF vil kreve endring av noen innstillinger. Du må åpne den for redigering SETTINGS.PHP fra forumets rotmapp. Akkurat som i tilfellet med Joomla, her må du også ikke bare endre navnet på databasen og SMF-brukeren, men også de absolutte banene til forummappen og forummappen SOURCES.

########## Databaseinformasjon ########## $db_server = "localhost"; $db_name = "skriv inn ditt nye databasenavn her"; $db_user = "skriv inn nytt brukernavn her"; $db_passwd = "hoighaebaeto"; $db_prefix = "smf_"; $db_persist = 0; $db_error_send = 1; ########## Kataloger/filer ########## # Merk: Disse katalogene må ikke endres med mindre du flytter ting. $boarddir = "/home/xxxx/public_html/forum"; # Den absolutte banen til forumets mappe. (ikke bare "."!) $sourcedir = "/home/xxxx/public_html/forum/Sources"; # Sti til Sources-katalogen.

Men i tillegg til dette, etter å ha overført SMF til en ny hosting, må du endre den absolutte banen til den installerte mappen. For å gjøre dette, må du gå til forumets admin-område og velge "Gjeldende tema" fra venstre kolonne. I vinduet som åpnes, i området "Temamappe", skriver du inn den absolutte banen til ønsket mappe.

Hvordan begynne å jobbe med en nettside umiddelbart etter at den er overført til en ny hosting

Du knyttet ditt (nettsted, i mitt tilfelle) til den. Eller du, i samsvar med ovenstående, utførte overføringen. I prinsippet spiller det ingen rolle, men du må uansett knytte den nye serveren til domenet. For å gjøre dette finner du den nye verten din i kontrollpanelet til registraren din (hvor du kjøpte domenenavnet).

Du kan se DNS-serveradressene i brevet som den nye hosteren sender deg. Nøyaktig hvor du må angi disse DNS-ene i registrarpanelet, det er vanskelig å si sikkert, men det bør ikke begraves dypt og ligge synlig. Som en siste utvei, kontakt teknisk støtte.

Så til tross for vellykket overføring av nettstedet til en ny vert, må du fortsatt gjøre det vente fra flere timer til et par dager mens domenet ditt blir delegert. Inntil denne prosessen er fullført, vil ikke ressursen din være tilgjengelig på det nye stedet.

Noen ganger kan hosting-eieren i et brev angi en teknisk adresse der du kan få tilgang til ressursen din mens postene på alle DNS-servere på Internett oppdateres. Men dette skjer ikke alltid. I tillegg, for eksempel, for WordPress, vil den tekniske adressen ikke tillate deg å fullt ut begynne å jobbe med den nylig overførte bloggen, fordi denne motoren er strengt knyttet til domenenavnet.

Men eieren av verten angir alltid IP-adressen til den nye serveren i brevet. Ved å bruke den kan du få tilgang til ressursen din uten å vente på DNS-registrering. Men i dette tilfellet er det bare du som får tilgang og bare på datamaskinen der du gjør innstillingene beskrevet nedenfor. Så du må gjøre følgende:

  1. bruk hvilken som helst filbehandler, åpne for redigering (følg denne lenken finner du en detaljert artikkel om hvor denne filen er plassert, hvordan du finner den i Windows 7 og hva som skal skrives i den), som ligger i følgende bane: c:\ Windows\System32 \drivere\etc\hosts
  2. på slutten av HOSTS-innholdet må du legge til linjen: 109.77.43.4-nettstedet hvor det i begynnelsen er IP-adressen til den nye serveren, og etter den, atskilt med et mellomrom, domenet
  3. lagre denne filen og du kan trygt skrive inn adressen til ressursen du nettopp har overført i nettleseren din (det kan hende du må tilbakestille DNS-cachen på datamaskinen - les om dette i artikkelen rett ovenfor om Hosts-filen)

Dermed, uten å vente på at domenet skal delegeres, kan du allerede sjekke funksjonaliteten til den overførte ressursen og om nødvendig fikse alt før det blir tilgjengelig for alle andre besøkende. Etter at domenet er delegert, trenger du fjerne lagt til linje i HOSTS.

Du kan også se på en video om emnet fra en kjent nettstedbygger i RuNet:

Vel, og et utvalg videoveiledninger om overføring av et Joomla CMS-nettsted til hosting Jeg råder deg til å se. De spilles automatisk etter hverandre, og hvis du vil, kan du bytte til neste leksjon ved å bruke den tilsvarende knappen på spillerpanelet eller velge ønsket leksjon fra rullegardinmenyen i øvre venstre hjørne av spillervinduet:

Nyt å se!

Lykke til! Vi sees snart på sidene til bloggsiden

Du kan være interessert

1. februar 2012 kl. 00:33

Sikkerhetskopiere data i MySQL

  • MySQL

Database backup er en ting som alltid må konfigureres for allerede kjørende prosjekter direkte på "live" produksjonsservere.
Denne situasjonen er lett å forklare. Helt i begynnelsen er ethvert prosjekt fortsatt tomt, og det er rett og slett ingenting å kopiere. I den raske utviklingsfasen er hodene til noen få utviklere utelukkende opptatt med å skru inn funksjoner og dikkedarer, samt fikse kritiske feil med en frist på «i forgårs». Og først når prosjektet "tar av" kommer erkjennelsen av at hovedverdien til systemet er den akkumulerte databasen, og dens feil vil være en katastrofe.
Denne oversiktsartikkelen er for de hvis prosjekter allerede har nådd dette punktet, men stekehanen har ennå ikke tatt agnet.

1. Kopiering av databasefiler

MySQL-databasen kan kopieres hvis du midlertidig slår av MySQL-serveren og ganske enkelt kopierer filene fra mappen /var/lib/mysql/db/. Hvis serveren ikke er slått av, er det av åpenbare grunner sannsynlighet for tap av data og korrupsjon. For store lastede databaser er denne sannsynligheten nær 100 %. I tillegg, første gang du starter med en "skitten" kopi av databasen, vil MySQL-serveren starte prosessen med å sjekke hele databasen, noe som kan ta timer.

I de fleste live-prosjekter er det uakseptabelt å stenge databaseserveren regelmessig i lang tid. For å løse dette problemet brukes et triks basert på øyeblikksbilder av filsystemet. Et øyeblikksbilde er noe sånt som et "bilde" av filsystemet på et bestemt tidspunkt, tatt uten å kopiere dataene (og derfor raskt). Lat kopiering av objekter fungerer på lignende måte i mange moderne programmeringsspråk.
Det generelle handlingsskjemaet er som følger: alle tabeller er låst, databasefilbufferen tilbakestilles, et øyeblikksbilde av filsystemet tas, og tabellene låses opp. Etter dette blir filene rolig kopiert fra øyeblikksbildet, hvoretter det blir ødelagt. Den "blokkerende" delen av en slik prosess tar omtrent sekunder, noe som allerede er tolerabelt. Som en tilbakebetaling, i noen tid, mens øyeblikksbildet er "levende", reduseres ytelsen til filoperasjoner, noe som først og fremst påvirker hastigheten på skriveoperasjoner til databasen.

Noen filsystemer, for eksempel ZFS, støtter å ta øyeblikksbilder naturlig. Hvis du ikke bruker ZFS, men har en LVM volumbehandling på serveren din, kan du også kopiere MySQL-databasen via øyeblikksbilde. Til slutt, under *nix kan du bruke R1Soft Hot Copy snapshot-driveren, men denne metoden vil ikke fungere i openvz()-beholderen.

For MyISAM-databaser er det et offisielt gratis verktøy mysqlhotcopy, som "riktig" kopierer MyISAM-databasefiler uten å stoppe serveren. Det er et lignende verktøy for InnoDB, men det er betalt, selv om det har flere funksjoner.

Kopiering av filer er den raskeste måten å overføre en hel database fra en server til en annen.

2. Kopiering via tekstfiler

For å lese data fra produksjonsdatabasen til backup, er det ikke nødvendig å trekke filene. Du kan velge data ved hjelp av en spørring og lagre dem i en tekstfil. For å gjøre dette, bruk SQL-kommandoen SELECT INTO OUTFILE og paret LOAD DATA INFILE . Lossing gjøres linje for linje (du kan kun velge de nødvendige linjene for lagring, som i en vanlig SELECT). Strukturen til tabellene er ikke spesifisert noe sted – programmereren må ta seg av dette. Den må også passe på å inkludere SELECT INTO OUTFILE-kommandoer i transaksjonen om nødvendig for å sikre dataintegritet. I praksis brukes SELECT INTO OUTFILE til delvis backup av svært store tabeller som ikke kan kopieres på annen måte.

I de fleste tilfeller er mysqldump-verktøyet laget av Igor Romanenko mye mer praktisk. Mysqldump-verktøyet genererer en fil som inneholder alle SQL-kommandoene som trengs for å fullstendig gjenopprette en database på en annen server. Ved å bruke separate alternativer kan du gjøre denne filen kompatibel med nesten alle DBMS (ikke bare MySQL); i tillegg er det mulig å laste ned data i CSV- og XML-formater. For å gjenopprette data fra slike formater finnes det et verktøy som heter mysqlimport.

Mysqldump-konsollverktøyet. Det er tilleggsprogrammer og analoger som lar deg administrere sikkerhetskopiering via et webgrensesnitt, for eksempel det ukrainske verktøyet Sypex Dumper (deres representant er på Habré).

Ulempene med universelle sikkerhetskopieringsverktøy til tekstfiler er den relativt lave operasjonshastigheten og manglende evne til å lage inkrementelle sikkerhetskopier.

3. Inkrementelle sikkerhetskopier

Tradisjonelt anbefales det å beholde 10 sikkerhetskopier: én for hver ukedag, samt sikkerhetskopier fra to uker, en måned og et kvartal siden – dette vil tillate deg å rulle tilbake ganske dypt i tilfelle datakorrupsjon.
Sikkerhetskopier bør definitivt ikke lagres på samme disk som live-databasen, og ikke på samme server. I tilfelle brann og andre katastrofer er det best å leie et par enheter i et datasenter i nærheten.

Disse kravene kan være et problem for store databaser. Å laste opp en sikkerhetskopi av en 100-gigabyte database over et 100-Mbit nettverk vil ta omtrent tre timer, hvor kanalen vil være fullstendig tilstoppet.
Inkrementelle sikkerhetskopier kan delvis løse dette problemet, når en fullstendig sikkerhetskopi lages, for eksempel bare på søndager, og på andre dager skrives kun data lagt til eller endret i løpet av den siste dagen. Vanskeligheten er hvordan man identifiserer nettopp disse "dataene som har endret seg i løpet av dagen."

Her er Percona XtraBackup-systemet, som inneholder en modifisert InnoDB-motor, analyserer MySQL binære logger og trekker ut nødvendig informasjon fra dem, praktisk talt uovertruffen. Den betalte InnoDB Hot Backup nevnt ovenfor har nesten de samme egenskapene.

Det generelle problemet med sikkerhetskopier er at de alltid ligger etter. I tilfelle en fatal svikt på hovedserveren, vil det være mulig å gjenopprette systemet bare med en viss "tilbakeføring" i tid, noe som vil skuffe brukerne veldig, veldig. Hvis økonomiske strømmer i systemet på en eller annen måte ble påvirket, kan et slikt "tilbakeslag" bokstavelig talt koste en pen krone.

4. Replikering

MySQL-replikeringssystemet er designet for å unngå tilbakeføringer. Ideen om replikering er basert på det faktum at i tillegg til "hoved"-serveren ("Master"), kjører MySQL-servere ("slaver") konstant, som mottar inkrementelle sikkerhetskopier fra masteren i sanntid. Dermed reduseres tilbakeføringstiden nesten til nettverksforsinkelsen. Hvis Master mislykkes, kan du raskt utnevne en av slavene til den "nye Master" og omdirigere klienter til den. I tillegg kan slaver behandle forespørsler om å lese data (SELECTs); dette kan brukes til å utføre noen beregninger eller redusere belastningen på masteren. MySQL støtter replikering ut av esken, prosessen er godt beskrevet av brukeren

I denne artikkelen vil vi se på flere praktiske eksempler på sikkerhetskopiering av databasegjenoppretting ved hjelp av mysqldump. Mysqldump-verktøyet er et effektivt verktøy for å lage en sikkerhetskopi av en MySQL-database. Den lar deg lage en *.sql-fil med en samling (dump) av alle tabeller og data i hoveddatabasen (kilde).

For å sikkerhetskopiere MyISAM-databaser er det bedre å bruke verktøyet mysqlhotcopy, som vi definitivt vil beskrive i de følgende artiklene, siden det fungerer raskere og mer effektivt med dem.


Ved bruk av mysqldump, kan du enten lage en sikkerhetskopi av lokale databaser eller gjenopprette dem til eksterne databaser. I denne artikkelen vil vi se på flere praktiske eksempler på sikkerhetskopiering av databasegjenoppretting mysqldump.

Grunnleggende kommandoer for lage en sikkerhetskopi og gjenopprette en database MySQL bruker mysqldump Det er:

I disse kommandoene:

-u– en parameter som spesifiserer påloggingen som brukes i dette tilfellet for å koble til databasen;

-s– en parameter som spesifiserer brukerpassordet for denne påloggingen. Hvis du ikke spesifiserer et passord etter denne parameteren, må du angi det i tillegg etter å ha kjørt kommandoen;

[databasenavn]– navnet på databasen hvis sikkerhetskopi må opprettes;

[backup_database_file_name].sql– brukeren kan spesifisere et hvilket som helst passende navn forn. Hvis du spesifiserer filnavnet som i eksemplet, vil en sikkerhetskopi av databasen opprettes i mappen som kommandoen ble startet fra, nemlig:
C:\Program Files\MySQL\MySQL Server 5.7\bin

For å lagre en databasesikkerhetskopi i en annen mappe, før navnet på di kommandoen, må du spesifisere banen til en slik mappe. I dette tilfellet vil kommandoene for å opprette og gjenopprette en databasesikkerhetskopi se slik ut:

# 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


Hvordan sikkerhetskopiere en MySQL-database

For å lage en sikkerhetskopi av en database, bruk bare standardkommandoen beskrevet ovenfor:

# mysqldump –u[bruker] –s[brukerpassord] [databasenavn] [backup_file_name of database] .sql

For eksempel:

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

Sikkerhetskopier flere databaser

Før du sikkerhetskopierer flere databaser samtidig, identifiser tilstedeværelsen av databasene.

For å gjøre dette, skriv inn kommandoen vise databaser(i Workbench)

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


Hvis du trenger å sikkerhetskopiere flere databaser samtidig (f.eks. min_db Og test), så for å gjøre dette må du kjøre følgende kommando:

# mysqldump -uroot -pqwerty –databaser min_db test min_db_test_backup.sql

Sikkerhetskopiering av alle databaser

Hvis det er behov for å lage en sikkerhetskopi av alle databasene i MySQL-profilen din, kan dette gjøres ved å bruke parameteren – alle databaser.

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

Sikkerhetskopier et enkelt bord

Du kan også sikkerhetskopiere en individuell databasetabell. I tilfelle du trenger å lage en kopi av tabellen wp_commentmeta fra databasen min_db, så vil kommandoen se slik ut:

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

Merk. For å vise en liste over databasetabeller, skriv inn kommandoen:
#mysqlshow –uroot –p my_db


Hvordan gjenopprette en MySQL-database fra en sikkerhetskopi

Gjenopprett MySQL-databasen fra en sikkerhetskopi laget av en av metodene beskrevet ovenfor, kan du bruke en standardmetode, som er beskrevet i begynnelsen av artikkelen.