Varnostno kopiranje podatkov iz PostgreSQL/MySQL v oblačno shrambo | INTROSERV
EUR
european

EUR

usa

USD

Slovenia Sl
Ex. VAT Ex. VAT 0%

Varnostno kopiranje podatkov iz PostgreSQL/MySQL v oblačno shranjevanje

Uvod

Varnostno kopiranje podatkovnih baz je eden najpomembnejših postopkov za zagotavljanje varnosti in zanesljivosti spletnih strani ter aplikacij. Do izgube podatkov lahko pride zaradi številnih razlogov: okvare strežnika, napake skrbnika, težav pri posodobitvah, zlonamerne programske opreme ali preprosto človeške napake. Redno varnostno kopiranje vam omogoča hitro obnovitev projekta brez izgube podatkov.

V tem vodniku je pojasnjeno, kako narediti varnostno kopijo podatkovnih baz PostgreSQL in MySQL, kako varnostne kopije shraniti na oddaljen Linux strežnik z uporabo rsync ali scp ter kako jih naložiti v oblačno shranjevališče z uporabo rclone.

Varnostno kopiranje PostgreSQL

PostgreSQL ponuja standardno orodje pg_dump, ki omogoča ustvarjanje popolne kopije baze podatkov v obliki datoteke SQL.

Primer izdelave varnostne kopije:

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

Razlaga parametrov:

  • -U myuser — uporabniško ime za bazo podatkov
  • -h localhost — naslov strežnika (se lahko izpusti, če je lokalna)
  • mydatabase — ime baze podatkov
  • /backup/... — ciljna pot
  • $(date +%F) — doda trenutni datum k imenu datoteke

Da prihranite prostor, varnostno kopijo takoj stisnite:

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 pripomoček mysqldump.

Primer varnostne kopije ene baze podatkov:

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

Ko izvedete to ukazno vrstico, vas bo sistem zaprosil za geslo uporabnika.

Za varnostno kopiranje vseh baz podatkov:

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

Če želite vključiti shranjene postopke in sprožilce, dodajte možnosti --routines --triggers.

Varnostno kopiranje v CloudBox

CloudBox podjetja INTROSERV je rešitev za shranjevanje v oblaku, ki podpira več protokolov povezave (vključno z rsync, scp, rsync prek SSH, WebDAV). Enostavna uporaba CloudBoxa znatno poenostavi nalaganje, upravljanje in pridobivanje podatkov.

Lahko ga uporabite kot oddaljeno mesto za shranjevanje varnostnih kopij baz podatkov. Spodaj so navedene podrobnosti o nastavitvah in primeri skriptov.

Korak 1. Pridobitev dostopa do CloudBoxa

Naročite enega od razpoložljivih paketov CloudBox na naši spletni strani — introserv.com

Po plačilu bo 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

Z uporabo 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 v CloudBoxu

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

  1. Ustvarite javni ključ:

    ssh-keygen -t rsa

  2. Kopirajte vsebino ustvarjene datoteke z javnim ključem, npr. /root/.ssh/id_rsa.pub, v odložišče.
  3. Pojdite v razdelek »Profil« (preletite z miško nad ikono uporabnika v zgornjem desnem kotu), vsebino ključa dodajte v polje »Javni ključi« in shranite nastavitve.

Po tem bo rsync deloval brez zahtev po geslu, kar je priročno za cron naloge.

Alternativa — scp:

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

Korak 3. Povezava in sinhronizacija z rclone

Če želite za komunikacijo s CloudBoxom uporabljati rclone, ga nastavite na naslednji način:

  1. Namestite rclone:

    sudo apt install rclone

  2. Začnite z nastavitvami:

    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 (v tem primeru SSH vrata — privzeto 22), pot do imenika
  • izvedite avtorizacijo (če je potrebno)

Preizkusite povezavo:

rclone ls cloudbox:/path_to_cloudbackups/

Kopirajte varnostne kopije podatkov:

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

Sinhronizirajte z izbrisom datotek, ki lokalno manjkajo:

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

Po potrebi — šifrirajte datoteke pred prenosom:

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

Korak 4. Primer skripta za avtomatizacijo z CloudBoxom

Ustvarite skript /usr/local/bin/db_backup_cloudbox.sh, na primer:

#!/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 # Upload to CloudBox rsync -avz -e "ssh -p 22" $BACKUP_DIR/ user@cloudbox-server:/path_to_cloudbackups/$DATE/ # Upload to CloudBox (rclone option, uncomment if used) # rclone copy $BACKUP_DIR/ cloudbox:/db-backups/$DATE/ --progress # Remove backups older than 7 days find /backup/ -type f -mtime +7 -delete

Nato dodajte cron nalogo (v primeru se skript izvaja vsak dan ob 2:00 zjutraj):

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

Pomembna opozorila:

  • Prepričajte se, da je povezava s CloudBoxom stabilna in da je pasovna širina zadostna.
  • Nastavite spremljanje: preverite, ali se datoteke dejansko kopirajo.
  • Redno preizkušajte obnovo iz varnostnih kopij CloudBox.
  • Pri uporabi zaupnih podatkov razmislite o šifriranju varnostnih kopij.

Kopiranje na oddaljeni strežnik Linux prek SSH

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

Uporaba rsync (priporočljivo, saj kopira le spremembe):

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

Razlaga parametrov:

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

Če želite delati brez vnašanja gesla, nastavite SSH ključe:

# Generate SSH keys: ssh-keygen -t rsa # Copy key to remote server: ssh-copy-id [email protected]

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

Alternativa rsync — uporaba scp:

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

Kopiranje v oblačno shranjevanje prek rclone

Če želite varnostne kopije shraniti 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

Nastavitev:

rclone config

Sledite interaktivnim korakom nastavitve:

  • Izberite n, da ustvarite novo povezavo
  • Vnesite ime, npr. remote
  • Izberite vrsto shranjevanja (npr. s3, drive, dropbox)
  • Vnesite ključe za dostop ali se avtorizirajte prek 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 lokalno manjkajo):

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

Datoteke lahko pred nalaganjem tudi šifrirate:

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

Varnost in nadzor

  • Varnostne kopije shranjujte na vsaj dveh mestih – lokalno in na daljavo.
  • Redno preverjajte, ali so varnostne kopije uspešno ustvarjene in naložene.
  • Vsaj enkrat na mesec izvedite testno obnovitev.
  • Če uporabljate javne oblake, šifrirajte datoteke, ki vsebujejo občutljive podatke:

    gpg -c /backup/mysql_mydatabase.sql.gz

  • Zagotovite ustrezna dovoljenja za datoteke v mapi /backup in zavarujte svoje podatke za dostop do baze podatkov.

Obnavljanje 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 podatkovnih baz PostgreSQL in MySQL je preprost, a izredno pomemben postopek. Tudi najbolj zanesljiva infrastruktura vas ne more zaščititi pred človeškimi napakami ali tehničnimi okvarami. Najboljša strategija je redno avtomatsko varnostno kopiranje, shranjeno na vsaj enem zunanjem strežniku in v oblaku, skupaj z rednim preizkušanjem obnovitve.

Z uporabo kombinacije orodij pg_dump, mysqldump, rsync, rclone in cron lahko vzpostavite zanesljiv, popolnoma avtomatiziran sistem varnostnega kopiranja brez kakršne koli plačljive programske opreme tretjih ponudnikov. Ta pristop je enostaven za izvedbo in primeren za vse sisteme Linux.

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