Varnostna kopija baze podatkov: PostgreSQL, MySQL, rsync, rclone, CloudBox | INTROSERV
EUR
european

EUR

usa

USD

Slovenia Sl
Ex. VAT Ex. VAT 0%

Varnostna kopija baze podatkov: PostgreSQL, MySQL, rsync, rclone, CloudBox

Varnostna kopija baze podatkov je eden najpomembnejših postopkov za zagotavljanje varnosti in zanesljivosti spletnih strani in aplikacij. Izguba podatkov se lahko zgodi iz več razlogov: okvara strežnika, napaka skrbnika, težave z nadgradnjo, zlonamerna programska oprema ali preprosto človeška napaka. Redne varnostne kopije vam omogočajo hitro obnovitev projekta brez izgube podatkov.

Ta vodnik pojasnjuje, kako varnostno kopirati baze podatkov PostgreSQL in MySQL, kako shraniti varnostne kopije na oddaljenem strežniku Linux z uporabo rsync ali scp ter kako jih naložiti v oblak z uporabo rclone.

Varnostna kopija PostgreSQL

PostgreSQL ponuja standardno orodje pg_dump, ki omogoča ustvarjanje celotne kopije baze podatkov kot SQL datoteko.

Primer ustvarjanja varnostne kopije:

pg_dump -U myuser -h localhost mydatabase > /backup/mydatabase_$(date +%F).sql

Pojasnilo parametrov:

  • -U myuser — uporabniško ime baze podatkov;
  • -h localhost — naslov strežnika (lahko se izpusti, če je lokalni);
  • mydatabase — ime baze podatkov;
  • /backup/... — pot do cilja;
  • $(date +%F) — doda trenutni datum v ime datoteke.

Za prihranek prostora takoj stisnite varnostno kopijo:

pg_dump -U myuser mydatabase | gzip > /backup/mydatabase_$(date +%F).sql.gz

Za varnostno kopiranje vseh baz podatkov na strežniku:

pg_dumpall -U myuser | gzip > /backup/postgres_all_$(date +%F).sql.gz

Varnostna kopija MySQL

Za MySQL in MariaDB uporabite orodje mysqldump.

Primer varnostne kopije ene baze podatkov:

mysqldump -u myuser -p mydatabase > /backup/mydatabase_$(date +%F).sql

Ko zaženete ta ukaz, bo sistem zahteval geslo uporabnika.

Za varnostno kopiranje vseh baz podatkov:

mysqldump -u myuser -p --all-databases | gzip > /backup/mysql_all_$(date +%F).sql.gz

Za vključitev shranjenih postopkov in sprožilcev dodajte možnosti --routines --triggers.

Varnostna kopija v CloudBox

CloudBox iz INTROSERV je rešitev za shranjevanje v oblaku, ki podpira več protokolov povezave (vključno z rsync, scp, rsync preko SSH, WebDAV). Enostavnost uporabe CloudBoxa bistveno poenostavi naloge nalaganja, upravljanja in pridobivanja podatkov.

Uporabite ga lahko kot oddaljeno lokacijo za shranjevanje varnostnih kopij baze podatkov. Spodaj so podrobnosti o nastavitvi in primeri skriptov.

Korak 1. Pridobitev dostopa do CloudBoxa

Naročite enega od razpoložljivih načrtov CloudBox na naši spletni strani — https://introserv.com/solutions/cloudbox/

Po plačilu je storitev na voljo v nekaj minutah. Po aktivaciji storitve boste prejeli podatke za povezavo:

  • naslov strežnika (box$$$$$.introserv.cloud)
  • uporabniško ime (box$$$$$) in geslo

Korak 2. Povezava in sinhronizacija z uporabo rsync ali scp

Uporaba rsync (priporočeno):

rsync -avz -e "ssh -p 22" /backup/ user@cloudbox-server:/path_to_cloudbackups/

Kjer:

  • user — uporabniško ime CloudBox;
  • cloudbox-server — naslov povezave;
  • /path_to_cloudbackups/ — pot na CloudBoxu.

Za avtomatizirano delovanje je priporočljivo nastaviti SSH ključe.

1) Ustvarite javni ključ:

ssh-keygen -t rsa

2) Kopirajte vsebino ustvarjene datoteke javnega ključa, npr. /root/.ssh/id_rsa.pub v odložišče.

3) Pojdite v razdelek "Profil" (z miško se pomaknite nad ikono uporabnika v zgornjem desnem kotu), dodajte vsebino ključa v polje "Javni ključi" in shranite nastavitve.

Nastavitve profila CloudBox
Polje javnih ključev CloudBox

Po tem bo rsync deloval brez pozivov za geslo, kar je priročno za cron opravila.

Alternativa — scp:

scp /backup/mysql_mydatabase.sql.gz user@cloudbox-server:/path_to_cloudbackups/

Korak 3. Povezava in sinhronizacija z uporabo rclone

Če želite uporabiti rclone za interakcijo s CloudBoxom, ga konfigurirajte na naslednji način.

1) Namestite rclone:

sudo apt install rclone

2) Začnite konfiguracijo:

rclone config

Med nastavitvijo izberite:

  • n — za ustvarjanje novega oddaljenega;
  • ime, npr. cloudbox;
  • vrsta shranjevanja — izberite sftp ali ssh;
  • vnesite naslov strežnika v obliki box$$$$$.introserv.cloud, uporabniško ime v obliki box$$$$$, vrata (SSH — privzeto 22), pot do imenika;
  • izvedite avtorizacijo (če je potrebno).

Preizkusite povezavo:

rclone ls cloudbox:/path_to_cloudbackups/

Kopirajte podatke varnostne kopije:

rclone copy /backup/ cloudbox:/db-backups/ --progress

Sinhronizirajte z brisanjem datotek, ki manjkajo lokalno:

rclone sync /backup/ cloudbox:/db-backups/ --progress

Če je potrebno — šifrirajte datoteke pred prenosom:

rclone copy /backup/ cloudbox:/db-backups/ --progress --crypt

Korak 4. Primer avtomatiziranega skripta s CloudBoxom

Ustvarite skript /usr/local/bin/db_backup_cloudbox.sh:

#!/bin/bash DATE=$(date +%F) BACKUP_DIR="/backup/$DATE" mkdir -p $BACKUP_DIR # PostgreSQL pg_dump -U myuser mydatabase | gzip > $BACKUP_DIR/postgres_mydatabase.sql.gz # MySQL mysqldump -u myuser -p mydatabase | gzip > $BACKUP_DIR/mysql_mydatabase.sql.gz # Naloži v CloudBox rsync -avz -e "ssh -p 22" $BACKUP_DIR/ user@cloudbox-server:/path_to_cloudbackups/$DATE/ # Naloži v CloudBox (možnost rclone, odkomentirajte, če uporabljate) # rclone copy $BACKUP_DIR/ cloudbox:/db-backups/$DATE/ --progress # Odstrani varnostne kopije starejše od 7 dni find /backup/ -type f -mtime +7 -delete

Nato dodajte cron opravilo (skript se izvaja vsak dan ob 2:00 zjutraj):

0 2 * * * /usr/local/bin/db_backup_cloudbox.sh

Pomembna razmišljanja:

  • Zagotovite, da je povezava s CloudBoxom stabilna in pasovna širina zadostna.
  • Nastavite nadzor: preverite, ali se datoteke dejansko kopirajo.
  • Periodično preizkusite obnovitev iz varnostnih kopij CloudBox.
  • Pri uporabi zaupnih podatkov — razmislite o šifriranju varnostnih kopij.

Kopiranje na oddaljen strežnik Linux preko SSH

Če želite shraniti varnostne kopije ne samo lokalno, ampak tudi na drugem strežniku, uporabite rsync ali scp.

Uporaba rsync (priporočeno, saj kopira samo spremembe):

rsync -avz -e "ssh -p 22" /backup/ [email protected]:/remote_backups/

Pojasnilo parametrov:

  • user — uporabniško ime na oddaljenem strežniku;
  • remote.server — IP naslov ali ime domene oddaljenega strežnika;
  • /remote_backups/ — pot za shranjevanje varnostnih kopij.

Za delo brez vnosa gesla konfigurirajte SSH ključe.

Ustvarite SSH ključe:

ssh-keygen -t rsa

Kopirajte ključ na oddaljeni strežnik:

ssh-copy-id [email protected]

Po tem bo rsync deloval brez pozivov za geslo, kar je priročno za cron opravila.

Alternativa — uporaba scp:

scp /backup/mysql_mydb.sql.gz [email protected]:/remote_backups/

Kopiranje v oblak preko rclone

Če morate shraniti varnostne kopije v oblaku (Google Drive, Dropbox, Amazon S3 itd.), uporabite rclone — univerzalno orodje za sinhronizacijo podatkov z različnimi oblačnimi storitvami.

Namestitev:

sudo apt install rclone

Konfiguracija:

rclone config

Sledite interaktivnim korakom nastavitve:

  1. Izberite n za ustvarjanje nove povezave;
  2. Vnesite ime, npr. remote;
  3. Izberite vrsto shranjevanja (npr. s3, drive, dropbox);
  4. Vnesite dostopne ključe ali avtorizirajte preko brskalnika.

Preverite povezavo:

rclone ls remote:path

Primer nalaganja varnostnih kopij v oblak:

rclone copy /backup/ remote:db-backups/ --progress

Ukaz za sinhronizacijo (odstrani datoteke, ki manjkajo lokalno):

rclone sync /backup/ remote:db-backups/ --progress

Datoteke lahko tudi šifrirate pred nalaganjem:

rclone copy /backup/ remote:db-backups/ --progress --crypt

Varnost in nadzor

  • Shranite varnostne kopije na vsaj dveh lokacijah — lokalno in oddaljeno.
  • Redno preverjajte, da se varnostne kopije ustvarjajo in uspešno nalagajo.
  • Izvedite testne obnove vsaj enkrat na mesec.
  • Šifrirajte datoteke, ki vsebujejo občutljive podatke, če uporabljate javne oblake:

gpg -c /backup/mysql_mydatabase.sql.gz

  • Zagotovite ustrezna dovoljenja za datoteke za /backup in zaščitite svoje poverilnice za bazo podatkov.

Obnova iz varnostne kopije

PostgreSQL:

gunzip < backup.sql.gz | psql -U myuser -d mydatabase

MySQL:

gunzip < backup.sql.gz | mysql -u myuser -p mydatabase

Zaključek

Varnostno kopiranje baz podatkov PostgreSQL in MySQL je preprost, a kritično pomemben postopek. Tudi najbolj zanesljiva infrastruktura vas ne more zaščititi pred človeškimi napakami ali tehničnimi okvarami. Najboljša strategija so redne avtomatizirane varnostne kopije, shranjene na vsaj enem zunanjem strežniku in v oblaku, s periodičnim testiranjem obnove.

Z uporabo kombinacije pg_dump, mysqldump, rsync, rclone in cron lahko zgradite zanesljiv, popolnoma avtomatiziran sistem varnostnega kopiranja brez plačljive programske opreme tretjih oseb. Ta pristop je enostaven za implementacijo in primeren za vse Linux sisteme.

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA