Belə təsəvvür elə ki, sənin database-in nəhəng bir kitabxana arxividir, minlərlə kitab var. Tam backup — hər gecə kuryeri göndərib bütün kitabları kopyalatmaq kimidir. Amma bəlkə heç nə dəyişməyib? Bu, təkcə yavaş deyil, həm də nəqliyyatı yükləyir və çox yer tutur. Bax, incremental və differensial yanaşmalar burada işə yarayır. Daha ağıllı işləyirik, çox yox, həqiqətən dəyişənləri kopyalayırıq.
Bu gün aşağıdakı backup tiplərinə baxacağıq:
- Tam backup: database-in tam kopyası.
- Incremental backup: son backup-dan bəri dəyişənləri kopyalayır.
- Differensial backup: son tam backup-dan bəri dəyişənləri kopyalayır.
Bunların hərəsinin öz üstünlükləri, çatışmazlıqları və istifadə sahələri var. Gəlin baxaq.
Tam backup
Tam backup (yəni Full Backup) — database-in müəyyən anda tam ehtiyat nüsxəsidir. Burada həm struktur (cədvəllər, indekslər, sxemlər), həm də bütün məlumatlar olur. Sadə dillə desək, bu, database-in "ani şəkli"dir.
Tam backup üçün komanda nümunəsi:
pg_dump -U username -d database_name -F c -f full_backup.dump
Burada:
-U username— PostgreSQL istifadəçi adı.-d database_name— database-in adı.-F c— backup formatı (custom,pg_restoreilə bərpa üçün rahatdır).-f full_backup.dump— backup-ın saxlanacağı faylın adı.
pg_dump komandası və parametrləri barədə növbəti dərslərdə daha ətraflı danışacağıq :P
Tam backup-ın üstünlükləri:
- Bərpa rahatlığı. nəsə problem olsa, tam backup ilə database-i tez bərpa edə bilərsən.
- Məlumatların tam şəkli. database-i başqa serverə və ya mühitə köçürmək üçün istifadə oluna bilər.
Tam backup-ın çatışmazlıqları:
- Məlumat həcmi: böyük database-də tam backup çox böyük ola bilər.
- Uzun müddət: nə qədər çox məlumat varsa, backup bir o qədər uzun çəkir.
- Saxlama yeri: hər tam backup ayrıca yer tutur və storage resurslarını yeyir.
Tam backup istifadə etmək olar:
- İlk backup yaradanda.
- Database-də böyük dəyişikliklərdən əvvəl.
- Uzunmüddətli arxiv üçün (tam backup edib "soyuq" storage-ə göndərirsən).
Incremental backup-lar
Incremental backup (Incremental Backup) yalnız son backup-dan bəri dəyişən faylları saxlayır — istər tam, istər incremental backup olsun. Bu, disk yerinə və backup vaxtına ciddi qənaət edir.
PostgreSQL-də incremental backup-ları pgBackRest aləti ilə etmək olur — bu, PostgreSQL üçün tam, incremental və differensial backup strategiyalarını dəstəkləyən güclü utilitdir.
pgBackRest necə işləyir?
pgBackRestdəyişiklikləri tapmaq üçün metadata və fayl checksum-larından istifadə edir.- Yalnız həqiqətən dəyişən fayllar incremental backup-a düşür.
- WAL-faylların avtomatik arxivləşdirilməsi dəstəklənir, bu da istənilən nöqtəyə bərpa etməyə imkan verir.
Incremental backup üçün komanda nümunəsi:
pgbackrest --stanza=main --type=incr backup
Burada:
--stanza=main— konfiqurasiya adı (müəyyən DB üçün parametrlər toplusu).--type=incr— incremental backup olduğunu göstərir.
İlk incremental backup-dan əvvəl mütləq tam (--type=full) backup olmalıdır.
pgBackRest ilə incremental backup-ların üstünlükləri:
- Yerə qənaət: yalnız dəyişən fayllar kopyalanır.
- Sürətli icra: xüsusilə az dəyişiklik olanda çox tez olur.
- WAL avtomatik idarəetmə: pgBackRest özü WAL-faylları arxivləşdirir və tətbiq edir.
- Bərpa elastikliyi: istənilən nöqtəyə bərpa (PITR) seçmək olur.
Çatışmazlıqlar və nüanslar:
- İlkin sazlama lazımdır:
stanza, repository kataloqu, icazələr konfiqurasiya olunmalıdır. - Yeni başlayanlar üçün çətinlik: WAL və PostgreSQL arxitekturasını başa düşmək lazımdır.
- Repository asılılığı: bütün backup-lar mərkəzləşdirilmiş saxlanılır — storage idarəetməsi vacibdir.
Incremental backup-ları nə vaxt istifadə etməli:
- Əgər database tez-tez yenilənirsə.
- Tam backup çox ağır və ya çox vaxt aparırsa.
- Minimal xərclə etibarlı və avtomatik bərpa strategiyası qurmaq istəyirsənsə.
Differensial backup-lar
Differensial backup (Differential Backup) son tam backup-dan bəri baş verən bütün dəyişiklikləri saxlayır. Incremental backup-dan fərqi odur ki, hər differensial backup son tam backup-dan bəri bütün dəyişiklikləri ehtiva edir. Yəni, bərpa üçün yalnız son tam backup və son differensial backup lazımdır.
Proses nümunəsi:
- Birinci axşam: tam backup (A) yaradılır.
- İkinci axşam (B): differensial backup — A-dan bəri dəyişiklikləri saxlayır.
- Üçüncü axşam (C): differensial backup — yenə də A-dan bəri dəyişiklikləri saxlayır.
Üstünlüklər:
- Bərpa rahatlığı: Bərpa üçün yalnız tam backup və son differensial backup lazımdır.
- Tam backup-dan sürətlidir: Differensial backup daha tez olur, çünki yalnız dəyişikliklər kopyalanır.
Çatışmazlıqlar:
- Backup faylının ölçüsü: Hər yeni differensial backup ilə ölçü artır, çünki tam backup-dan bəri bütün dəyişikliklər yazılır.
- Diskdə yer: Uzunmüddətli baxanda incremental backup-lardan daha çox yer tuta bilər.
Differensial backup, bərpanı sadələşdirmək istəyəndə işə yarayır: son tam backup-dan bəri bütün dəyişiklikləri saxlayır. Bu, xüsusilə məlumatlar tez dəyişirsə, amma hər dəfə tam backup etmək vaxt və resurs baxımından baha başa gəlirsə, yaxşı kompromisdir — həm sürət, həm də etibarlılıq üçün.
Backup tiplərinin müqayisəsi
| Backup tipi | Tam | Incremental | Differensial |
|---|---|---|---|
| Məlumat həcmi | Maksimum | Minimum | Orta |
| İcra vaxtı | Uzun | Sürətli | Orta |
| Bərpa | Sadə | Çətin (bütün backup-lardan asılıdır) | Orta (son tam və differensial lazımdır) |
| Nə vaxt istifadə etməli | İlk backup, miqrasiya | Tez-tez real-time backup-lar | Müntəzəm backup-lar |
Backup tipinin seçimi sənin məlumat təhlükəsizliyi, məlumatların yenilənmə tezliyi və resurs imkanlarından asılıdır. Kiçik database-lər üçün müntəzəm tam backup kifayətdir. Database böyüyəndə incremental backup-lar yerə qənaət edəcək. Əgər məlumatı tez bərpa etmək vacibdirsə, differensial backup-lar optimal seçim ola bilər. Əsas odur ki, backup-ları müntəzəm və avtomatik eləməyi unutma!
GO TO FULL VERSION