Sigurnosno kopiranje PostgreSQL/MySQL u pohranu u oblaku | INTROSERV
EUR
european

EUR

usa

USD

Croatia Hr
Ex. VAT Ex. VAT 0%

Sigurnosno kopiranje PostgreSQL/MySQL u pohranu u oblaku

Uvod

Sigurnosno kopiranje baza podataka jedan je od najvažnijih postupaka za osiguranje sigurnosti i pouzdanosti web stranica i aplikacija. Gubitak podataka može se dogoditi iz mnogo razloga: kvar poslužitelja, pogreška administratora, problemi s ažuriranjima, zlonamjerni softver ili jednostavno ljudska pogreška. Redovita sigurnosna kopiranja omogućuju vam brzu obnovu vašeg projekta bez gubitka podataka.

Ovaj vodič objašnjava kako izraditi sigurnosne kopije baza podataka PostgreSQL i MySQL, kako pohraniti sigurnosne kopije na udaljeni Linux poslužitelj pomoću alata rsync ili scp te kako ih prenijeti u pohranu u oblaku pomoću alata rclone.

PostgreSQL sigurnosno kopiranje

PostgreSQL pruža standardnu utilitu pg_dump, koja omogućuje izradu potpune kopije baze podataka kao SQL datoteke.

Primjer izrade sigurnosne kopije:

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

Objašnjenje parametara:

  • -U myuser — korisničko ime baze podataka
  • -h localhost — adresa poslužitelja (može se izostaviti ako je lokalna)
  • mydatabase — naziv baze podataka
  • /backup/... — putanja odredišta
  • $(date +%F) — dodaje trenutni datum u naziv datoteke

Kako biste uštedjeli prostor, odmah komprimirajte sigurnosnu kopiju:

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

Za izradu sigurnosne kopije svih baza podataka na poslužitelju:

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

MySQL sigurnosna kopija

Za MySQL i MariaDB koristite alat mysqldump.

Primjer sigurnosne kopije jedne baze podataka:

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

Kada pokrenete ovu naredbu, sustav će zatražiti korisničku lozinku.

Za sigurnosno kopiranje svih baza podataka:

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

Za uključivanje pohranjenih procedura i okidača dodajte opcije --routines --triggers.

Sigurnosno kopiranje u CloudBox

CloudBox tvrtke INTROSERV rješenje je za pohranu u oblaku koje podržava više protokola povezivanja (uključujući rsync, scp, rsync putem SSH-a i WebDAV). Jednostavnost korištenja CloudBoxa značajno pojednostavljuje zadatke učitavanja, upravljanja i dohvaćanja podataka.

Možete ga koristiti kao udaljenu lokaciju za pohranu sigurnosnih kopija baza podataka. Ispod su detalji postavke i primjeri skripti.

Korak 1. Dobivanje pristupa CloudBoxu

Naručite jedan od dostupnih CloudBox planova na našoj web-stranici — introserv.com

Nakon uplate usluga postaje dostupna u roku od nekoliko minuta. Nakon aktivacije usluge primit ćete podatke za povezivanje:

  • adresa poslužitelja (box#####.introserv.cloud)
  • korisničko ime (box#####) i lozinku

Korak 2. Povezivanje i sinkronizacija pomoću rsync-a ili scp-a

Korištenje rsync-a (preporučeno):

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

Gdje:

  • korisnik — korisničko ime za CloudBox
  • cloudbox-server — adresa veze
  • /path_to_cloudbackups/ — putanja na CloudBoxu

Za automatizirano djelovanje preporučljivo je postaviti SSH ključeve:

  1. Generirajte javni ključ:

    ssh-keygen -t rsa

  2. Kopirajte sadržaj datoteke javnog ključa, npr. /root/.ssh/id_rsa.pub, u međuspremnik.
  3. Idite u odjeljak "Profil" (pređite mišem preko ikone korisnika u gornjem desnom kutu), dodajte sadržaj ključa u polje "Javni ključevi" i spremite postavke.

Nakon toga će rsync raditi bez upita za lozinku, što je praktično za cron zadatke.

Alternativa — scp:

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

Korak 3. Povezivanje i sinkronizacija pomoću rclonea

Ako želite koristiti rclone za interakciju s CloudBoxom, konfigurirajte ga na sljedeći način:

  1. Instalirajte rclone:

    sudo apt install rclone

  2. Početak konfiguracije:

    rclone config

Tijekom postavljanja odaberite:

  • n — za stvaranje novog udaljenog
  • naziv, npr. cloudbox
  • vrstu pohrane — odaberite sftp ili ssh
  • unesite adresu poslužitelja u formatu box#####.introserv.cloud, korisničko ime u formatu box#####, priključak (u ovom slučaju SSH priključak — zadano 22), putanju do direktorija
  • izvršite autorizaciju (ako je potrebno)

Testirajte vezu:

rclone ls cloudbox:/path_to_cloudbackups/

Kopirajte sigurnosne podatke:

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

Sinkronizirajte s brisanjem datoteka koje nedostaju lokalno:

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

Ako je potrebno — šifrirajte datoteke prije prijenosa:

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

Korak 4. Primjer skripte za automatizaciju s CloudBoxom

Napravite skriptu /usr/local/bin/db_backup_cloudbox.sh, na primjer:

#!/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

Zatim dodajte cron zadatak (u primjeru se skripta pokreće svakodnevno u 2:00):

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

Važne napomene:

  • Osigurajte stabilnu vezu s CloudBoxom i dovoljnu propusnost.
  • Postavite nadzor: provjerite kopiraju li se datoteke.
  • Periodično testirajte vraćanje iz sigurnosnih kopija na CloudBoxu.
  • Prilikom korištenja povjerljivih podataka — razmislite o šifriranju sigurnosnih kopija.

Kopiranje na udaljeni Linux poslužitelj putem SSH-a

Ako želite pohranjivati sigurnosne kopije ne samo lokalno nego i na drugom poslužitelju, upotrijebite rsync ili scp.

Korištenje rsync-a (preporučeno, jer kopira samo promjene):

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

Objašnjenje parametara:

  • user — korisničko ime na udaljenom poslužitelju
  • remote.server — IP adresa ili naziv domene udaljenog poslužitelja
  • /remote_backups/ — putanja za pohranu sigurnosnih kopija

Za rad bez unosa lozinke konfigurirajte SSH ključeve:

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

Nakon toga će rsync raditi bez upita za lozinku, što je praktično za cron zadatke.

Alternativa rsyncu — korištenje scp-a:

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

Kopiranje u pohranu u oblaku putem rclonea

Ako trebate pohranjivati sigurnosne kopije u oblaku (Google Drive, Dropbox, Amazon S3 itd.), upotrijebite rclone — univerzalni alat za sinkronizaciju podataka s raznim uslugama u oblaku.

Instalacija:

sudo apt install rclone

Konfiguracija:

rclone config

Slijedite interaktivne korake postavljanja:

  • Odaberite n za stvaranje nove veze
  • Unesite naziv, npr. remote
  • Odaberite vrstu pohrane (npr. s3, disk, dropbox)
  • Unesite pristupne ključeve ili autorizirajte putem preglednika

Provjerite vezu:

rclone ls remote:path

Primjer učitavanja sigurnosnih kopija u oblak:

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

Naredba za sinkronizaciju (uklanja datoteke koje nedostaju lokalno):

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

Također možete enkriptirati datoteke prije prijenosa:

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

Sigurnost i kontrola

  • Pohranjujte sigurnosne kopije na najmanje dvije lokacije — lokalno i udaljeno.
  • Redovito provjeravajte jesu li sigurnosne kopije uspješno izradene i prenesene.
  • Obavljajte testne obnove barem jednom mjesečno.
  • Šifrirajte datoteke koje sadrže osjetljive podatke ako koristite javna oblaka:

    gpg -c /backup/mysql_mydatabase.sql.gz

  • Osigurajte ispravna dozvole za datoteke u /backup i zaštitite vjerodajnice vaše baze podataka.

Obnova iz sigurnosne kopije

PostgreSQL:

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

MySQL:

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

Zaključak

Izrada sigurnosnih kopija baza podataka PostgreSQL i MySQL jednostavan je, ali iznimno važan postupak. Čak ni najpouzdanija infrastruktura ne može vas zaštititi od ljudske pogreške ili tehničkog kvara. Najbolja strategija je redovita automatska izrada sigurnosnih kopija pohranjenih na najmanje jednom vanjskom poslužitelju i u oblaku, uz periodično testiranje oporavka.

Korištenjem kombinacije alata pg_dump, mysqldump, rsync, rclone i cron možete izgraditi pouzdan, potpuno automatiziran sustav za izradu sigurnosnih kopija bez ikakvog plaćenog softvera trećih strana. Ovaj je pristup jednostavan za implementaciju i pogodan za sve Linux sustave.

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