Sigurnosna kopija baze podataka: PostgreSQL, MySQL, rsync, rclone, CloudBox | INTROSERV
EUR
european

EUR

usa

USD

Croatia Hr
Ex. VAT Ex. VAT 0%

Sigurnosna kopija baze podataka: PostgreSQL, MySQL, rsync, rclone, CloudBox

Sigurnosna kopija baze 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žuriranjem, zlonamjerni softver ili jednostavno ljudska pogreška. Redovite sigurnosne kopije omogućuju brzo vraćanje vašeg projekta bez gubitka podataka.

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

Sigurnosna kopija PostgreSQL

PostgreSQL pruža standardni alat pg_dump, koji omogućuje stvaranje potpune kopije baze podataka kao SQL datoteke.

Primjer stvaranja 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 lokalno);
  • mydatabase — naziv baze podataka;
  • /backup/... — odredišna putanja;
  • $(date +%F) — dodaje trenutni datum u naziv datoteke.

Za uštedu prostora, odmah komprimirajte sigurnosnu kopiju:

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

Za sigurnosnu kopiju svih baza podataka na poslužitelju:

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

Sigurnosna kopija MySQL

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 lozinku korisnika.

Za sigurnosnu kopiju 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.

Sigurnosna kopija na CloudBox

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

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

Korak 1. Dobivanje pristupa CloudBox-u

Naručite jedan od dostupnih CloudBox planova na našoj web stranici — https://introserv.com/solutions/cloudbox/

Nakon plaćanja, usluga postaje dostupna unutar nekoliko minuta. Nakon aktivacije usluge, dobit ćete podatke za povezivanje:

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

Korak 2. Povezivanje i sinkronizacija koristeći rsync ili scp

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

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

Gdje:

  • user — korisničko ime za CloudBox;
  • cloudbox-server — adresa za povezivanje;
  • /path_to_cloudbackups/ — putanja na CloudBox-u.

Za automatizirani rad, preporučljivo je postaviti SSH ključeve.

1) Generirajte javni ključ:

ssh-keygen -t rsa

2) Kopirajte sadržaj stvorene datoteke javnog ključa, npr. /root/.ssh/id_rsa.pub u međuspremnik.

3) Idite na odjeljak "Profil" (zadržite pokazivač iznad ikone korisnika u gornjem desnom kutu), dodajte sadržaj ključa u polje "Javni ključevi" i spremite postavke.

Postavke profila CloudBox
Polje javnih ključeva CloudBox

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

Alternativa — scp:

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

Korak 3. Povezivanje i sinkronizacija koristeći rclone

Ako želite koristiti rclone za interakciju s CloudBox-om, konfigurirajte ga na sljedeći način.

1) Instalirajte rclone:

sudo apt install rclone

2) Pokrenite konfiguraciju:

rclone config

Tijekom postavljanja odaberite:

  • n — za stvaranje novog udaljenog;
  • ime, npr. cloudbox;
  • vrsta pohrane — odaberite sftp ili ssh;
  • unesite adresu poslužitelja u formatu box$$$$$.introserv.cloud, korisničko ime u formatu box$$$$$, port (SSH — zadano 22), putanju direktorija;
  • izvršite autorizaciju (ako je potrebno).

Testirajte vezu:

rclone ls cloudbox:/path_to_cloudbackups/

Kopirajte podatke sigurnosne kopije:

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 automatizirane skripte s CloudBox-om

Kreirajte skriptu /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 # 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 (skripta se pokreće svakodnevno u 2:00 ujutro):

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

Važne napomene:

  • Osigurajte da je veza s CloudBox-om stabilna i da je propusnost dovoljna.
  • Postavite nadzor: provjerite da se datoteke zaista kopiraju.
  • Povremeno testirajte vraćanje iz sigurnosnih kopija CloudBox-a.
  • Kada koristite povjerljive podatke — razmislite o šifriranju sigurnosnih kopija.

Kopiranje na udaljeni Linux poslužitelj putem SSH

Ako želite pohraniti sigurnosne kopije ne samo lokalno već i na drugom poslužitelju, koristite 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.

Generirajte SSH ključeve:

ssh-keygen -t rsa

Kopirajte ključ na udaljeni poslužitelj:

ssh-copy-id [email protected]

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

Alternativa — korištenje scp:

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

Kopiranje na pohranu u oblaku putem rclone

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

Instalacija:

sudo apt install rclone

Konfiguracija:

rclone config

Slijedite interaktivne korake postavljanja:

  1. Odaberite n za stvaranje nove veze;
  2. Unesite ime, npr. remote;
  3. Odaberite vrstu pohrane (npr. s3, drive, dropbox);
  4. Unesite pristupne ključeve ili autorizirajte putem preglednika.

Provjerite vezu:

rclone ls remote:path

Primjer prijenosa 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

Možete također šifrirati datoteke prije prijenosa:

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

Sigurnost i kontrola

  • Pohranite sigurnosne kopije na najmanje dvije lokacije — lokalno i udaljeno.
  • Redovito provjeravajte da se sigurnosne kopije stvaraju i uspješno prenose.
  • Izvodite testna vraćanja barem jednom mjesečno.
  • Šifrirajte datoteke koje sadrže osjetljive podatke ako koristite javne oblake:

gpg -c /backup/mysql_mydatabase.sql.gz

  • Osigurajte odgovarajuće dozvole za datoteke za /backup i zaštitite svoje vjerodajnice baze podataka.

Vraćanje 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

Sigurnosna kopija PostgreSQL i MySQL baza podataka jednostavan je, ali kritično važan postupak. Čak ni najpouzdanija infrastruktura ne može vas zaštititi od ljudske pogreške ili tehničkog kvara. Najbolja strategija su redovite automatizirane sigurnosne kopije pohranjene na barem jednom vanjskom poslužitelju i u oblaku, uz periodično testiranje vraćanja.

Korištenjem kombinacije pg_dump, mysqldump, rsync, rclone i cron, možete izgraditi pouzdan, potpuno automatiziran sustav sigurnosnih kopija bez ikakvog plaćenog softvera treće strane. Ovaj pristup je jednostavan za implementaciju i prikladan 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