CodeGym /Kurslar /Docker SELF /Backup-lar və məlumatların bərpası

Backup-lar və məlumatların bərpası

Docker SELF
Səviyyə , Dərs
Mövcuddur

4.1 Məlumatların bəkap və bərpasının əsas üsulları

Bəkaplar və məlumatların bərpası, Docker-də məlumatların idarə olunmasının kritik vacib aspektlərindəndir. Onlar məlumatların itirilməsindən qoruyur və problem yaranarsa, onları tez bir zamanda bərpa etməyə imkan verir. Bu mühazirədə biz Docker-də məlumatların bəkapını yaratmaq və bərpa etmək üçün müxtəlif üsulları və alətləri müzakirə edəcəyik, o cümlədən volume-lər və bağlanmış direktoriyalar.

Məlumatların bəkap və bərpasının əsas üsulları

  1. Docker volume-lərinin bəkapı
  2. Bəkap üçün tar utilitinin istifadəsi
  3. Konteynerlər daxilində verilənlər bazalarının bəkapı
  4. Bəkaplardan məlumatların bərpası

4.2 Docker həcmlərinin bəkapı

Docker həcmləri məlumatları konteynerlərdən kənarda saxlamaq üçün rahat bir üsuldur. Həcm bəkaplarını yaratmaq üçün müxtəlif yanaşmalar tətbiq etmək olar.

Həcm bəkapı üçün docker run komandasının istifadə nümunəsi

Həcm bəkapının yaradılması

Həcmi montaj edən və tar utilitindən istifadə edərək məlumat arxivi yaradan bir konteyner yaradın:

Terminal

docker run --rm -v my_volume:/data -v /path/to/backup:/backup busybox tar czf 
/backup/my_volume_backup.tar.gz -C /data .

Bu nümunədə my_volume həcmindəki məlumatlar my_volume_backup.tar.gz faylına arxivlənir, və bu fayl host üzərindəki /path/to/backup direktoriyasına saxlanılır.

Bəkapdan həcmin bərpası nümunəsi

Məlumatların həcmə bərpası

Həcmi və bəkapın yerləşdiyi direktoriyanı montaj edən bir konteyner yaradın və məlumatları ekstraksiya etmək üçün tar utilitindən istifadə edin:

Terminal

docker run --rm -v my_volume:/data -v /path/to/backup:/backup busybox tar xzf 
/backup/my_volume_backup.tar.gz -C /data

Bu nümunədə my_volume_backup.tar.gz arxivindən məlumatlar my_volume həcminə ekstraksiya edilir.

4.3 tar utilitindən backup üçün istifadə

tar utiliti backup yaratmaq və məlumatları bərpa etmək üçün güclü bir alətdir. Bu, həm konteynerlərdə, həm də host sistemində istifadə edilə bilər.

Konteyner daxilində məlumat backup-nun yaradılması nümunəsi

Lazımi məlumatlarla konteyneri işə salın və tar vasitəsilə bir arxiv yaradın:

Terminal


docker exec -t my_container tar czf /backup/my_container_backup.tar.gz -C /data . 

Bu nümunədə konteynerin my_container içindəki /data direktoriyasından olan məlumatlar my_container_backup.tar.gz faylına arxiv edilir.

Arxivdən məlumatların bərpası nümunəsi

Konteyneri işə salın və arxivdən məlumat çıxarmaq üçün tar istifadə edin:

Terminal


docker exec -t my_container tar xzf /backup/my_container_backup.tar.gz -C /data 

4.4 Konteynerlərdə verilənlər bazasının bəklapları

Verilənlər bazaları üçün tez-tez bəklap və bərpa üçün ixtisaslaşdırılmış alətlər istifadə olunur.

PostgreSQL verilənlər bazasının bəklap nümunəsi

Verilənlər bazasının bəklapını yaratmaq üçün pg_dump utilitindən istifadə edin:

Terminal


docker exec -t my_postgres_container pg_dump -U myuser mydb > /path/to/backup/mydb_backup.sql 

Bu nümunədə mydb verilənlər bazası mydb_backup.sql faylına ixrac olunur.

PostgreSQL verilənlər bazasının bərpa nümunəsi

Backupdan verilənlər bazasını bərpa etmək üçün psql utilitindən istifadə edin:

Terminal


cat /path/to/backup/mydb_backup.sql | docker exec -i my_postgres_container psql -U myuser mydb 

4.5 Backup-dan məlumatların bərpası

Məlumatların bərpası — əvvəllər yaradılmış backup-lardan məlumatların çıxarılması prosesidir.

Volume backup-dan məlumatların bərpası nümunəsi

Volume-dan məlumatların çıxarılması üçün docker run komandasını istifadə edin:

Terminal

docker run --rm -v my_volume:/data -v /path/to/backup:/backup busybox tar xzf 
/backup/my_volume_backup.tar.gz -C /data

MySQL verilənlər bazasından backup bərpası nümunəsi

Verilənlər bazasından backup yaratmaq üçün mysqldump utilitini istifadə edin:

Terminal

docker exec my_mysql_container mysqldump -u myuser -p mypassword mydb > 
/path/to/backup/mydb_backup.sql

Verilənlər bazasını bərpa etmək üçün mysql utilitini istifadə edin:

Terminal

cat /path/to/backup/mydb_backup.sql | docker exec -i my_mysql_container mysql -u myuser -p 
mypassword mydb

4.6 Praktik tətbiq nümunələri

Nümunə 1: Skriptlər vasitəsilə backup-ların avtomatlaşdırılması

Backup-ları avtomatik yaratmaq və saxlamaq üçün bir skript yaradın.

Terminal

#!/bin/bash

# Həcmdən backup yaratmaq
docker run --rm -v my_volume:/data -v /path/to/backup:/backup busybox tar czf /backup/my_volume_backup_$(date +%F).tar.gz -C /data .
        
# Köhnə backup-ların təmizlənməsi (7 gündən artıq)
find /path/to/backup -type f -name "*.tar.gz" -mtime +7 -exec rm {} \;

Nümunə 2: Çatışmazlıqdan sonra məlumatların bərpası

Çatışmazlıqdan sonra məlumatları bərpa etmək üçün backup-lardan istifadə edin.

Terminal

# Container-in dayandırılması
docker stop my_container
        
# Köhnə məlumatların silinməsi
docker volume rm my_volume
        
# Məlumatların backup-dan bərpası
docker run --rm -v my_volume:/data -v /path/to/backup:/backup busybox tar xzf /backup/my_volume_backup_latest.tar.gz -C /data
        
# Container-in yenidən işə salınması
docker start my_container
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION