Strategie tworzenia i odtwarzania kopii zapasowych baz danych
Zabezpieczą Państwo dane niezawodnymi kopiami zapasowymi: zrzucą i odtworzą bazy PostgreSQL i MySQL, zautomatyzują kopie za pomocą cron oraz poznają odzyskiwanie do określonego momentu, aby poradzić sobie z awariami dysków i błędami.
Strategie tworzenia i odtwarzania kopii zapasowych baz danych to bezpłatna lekcja Linux Server Deployment & SSH Mastery na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Linux Server Deployment & SSH Mastery, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Linux Server Deployment & SSH Mastery zawiera 4 lekcji w sumie.
Kopie zapasowe są częścią bezpieczeństwa
Zainstalowano bazę danych, ograniczono dostęp i zabezpieczono połączenia. Jednak nawet odpowiednio zabezpieczony serwer nadal jest narażony na awarię dysku, przypadkowe wykonanie DROP TABLE lub ransomware.
Kopie zapasowe to ostatnia linia obrony. Baza danych jest tak bezpieczna, jak jej najnowsza przetestowana kopia zapasowa.
Kopie logiczne a fizyczne
Istnieją dwa główne podejścia:
- Logiczne — eksport instrukcji SQL / danych (np.
pg_dump,mysqldump). Przenośne i czytelne dla człowieka, ale wolniejsze podczas przywracania. - Fizyczne — kopiowanie surowych plików danych. Szybkie w przypadku ogromnych baz danych, ale zależne od wersji serwera.
W większości konfiguracji zaczyna się od kopii logicznych.
Zrzucanie bazy PostgreSQL
pg_dump eksportuje pojedynczą bazę danych. Format niestandardowy (-Fc) jest skompresowany i obsługuje wybiórcze przywracanie.
pg_dump -U appuser -Fc mydb > mydb_$(date +%F).dumpPrzywracanie PostgreSQL
Zrzut w formacie niestandardowym należy przywracać za pomocą pg_restore. W przypadku zwykłego zrzutu SQL należy zamiast tego przekazać go potokiem do psql.
createdb -U appuser mydb_restored
pg_restore -U appuser -d mydb_restored mydb_2026-05-30.dumpZrzucanie i przywracanie MySQL
MySQL/MariaDB używają mysqldump do eksportowania i mysql do importowania. Zrzut jest domyślnie zapisany jako zwykły SQL.
mysqldump -u appuser -p mydb > mydb_$(date +%F).sql
mysql -u appuser -p mydb_restored < mydb_2026-05-30.sqlTworzenie kopii wszystkich baz danych
Aby objąć kopią cały serwer, oba silniki oferują zrzut całego klastra. Jest to przydatne przed dużymi aktualizacjami lub migracjami.
pg_dumpall -U postgres > all_$(date +%F).sql
mysqldump -u root -p --all-databases > all_$(date +%F).sqlAutomatyzacja za pomocą Cron
O kopii zapasowej, której wykonanie trzeba pamiętać, w końcu się zapomni. Należy zaplanować ją za pomocą crona. Umieść polecenie tworzące zrzut w skrypcie i uruchamiaj go co noc.
# crontab -e -> run at 02:30 every day
30 2 * * * /usr/local/bin/db_backup.sh >> /var/log/db_backup.log 2>&1Prosty skrypt kopii zapasowej
Dobry skrypt dodaje do nazw plików znaczniki czasu i usuwa stare pliki, aby dysk się nie zapełnił. Ten przykład przechowuje zrzuty z 14 dni.
#!/bin/bash
DIR=/var/backups/db
pg_dump -U appuser -Fc mydb > $DIR/mydb_$(date +%F).dump
find $DIR -name 'mydb_*.dump' -mtime +14 -deletePrzechowywanie poza serwerem
Kopia zapasowa znajdująca się na tym samym serwerze przestaje istnieć razem z nim. Kopie zrzutów w inne miejsce — do magazynu obiektów, na inny host albo w oba miejsca.
Użyj rsync lub narzędzia CLI dostawcy chmurowego jako ostatniego kroku skryptu kopii zapasowej.
rsync -avz /var/backups/db/ backup@remote:/srv/db_backups/
# or: aws s3 cp $DIR/mydb_$(date +%F).dump s3://my-bucket/Odtwarzanie do określonego punktu w czasie
Codzienne zrzuty mogą spowodować utratę danych z całego dnia. Aby uniknąć utraty danych lub ograniczyć ją do minimum, należy włączyć ciągłą archiwizację (archiwizację WAL w PostgreSQL, logi binarne w MySQL). W połączeniu z kopią bazową można przywrócić bazę do dowolnego momentu.
To złoty standard w przypadku produkcyjnych baz danych.
Najlepsze praktyki
Zapewnij wiarygodność kopii zapasowych:
- Regularnie testuj przywracanie — nieprzetestowana kopia zapasowa to tylko przypuszczenie
- Automatyzuj zadania tworzenia kopii i monitoruj je pod kątem błędów
- Przechowuj kopie poza serwerem
- Przechowuj wiele generacji, a nie tylko najnowszą
Szybki test
Sprawdź swoją wiedzę na temat kopii zapasowych.
Podsumowanie
Masz teraz strategię ochrony bazy danych:
- Logiczne zrzuty za pomocą
pg_dump/mysqldumporaz przywracanie za pomocąpg_restore/mysql - Zrzuty całego klastra na potrzeby migracji
- Automatyczne kopie zapasowe usuwające stare pliki za pośrednictwem crona
- Kopie przechowywane poza serwerem i odtwarzanie do określonego punktu w czasie w celu zminimalizowania utraty danych
Zawsze testuj przywracanie — to dopełnia bezpieczne zarządzanie bazą danych.
Często zadawane pytania
Czy lekcja „Strategie tworzenia i odtwarzania kopii zapasowych baz danych” jest bezpłatna?
Tak — pełny tekst „Strategie tworzenia i odtwarzania kopii zapasowych baz danych” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Linux Server Deployment & SSH Mastery, przejdź na CoddyKit PRO. Kurs Linux Server Deployment & SSH Mastery zawiera 4 lekcji w sumie.
Co nauczysz się w „Strategie tworzenia i odtwarzania kopii zapasowych baz danych”?
Zabezpieczą Państwo dane niezawodnymi kopiami zapasowymi: zrzucą i odtworzą bazy PostgreSQL i MySQL, zautomatyzują kopie za pomocą cron oraz poznają odzyskiwanie do określonego momentu, aby poradzić… Ćwiczysz Linux Server Deployment & SSH Mastery z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Linux Server Deployment & SSH Mastery?
Nie wymagamy żadnego doświadczenia. Linux Server Deployment & SSH Mastery w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.
Ile czasu zajmuje lekcja „Strategie tworzenia i odtwarzania kopii zapasowych baz danych”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Linux Server Deployment & SSH Mastery?
Tak. Każda lekcja Linux Server Deployment & SSH Mastery zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Instalowanie PostgreSQL/MySQL
- Użytkownicy baz danych i kontrola dostępu
- Zabezpieczanie połączeń z bazą danych
- Strategie tworzenia i odtwarzania kopii zapasowych baz danych