CodeGym /Kurslar /SQL SELF /Əsas backup-ların yaradılması pg_dump ...

Əsas backup-ların yaradılması pg_dump ilə

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

pg_dump — bu, PostgreSQL tərəfindən təqdim olunan command-line alətidir və sənə imkan verir ki, bazanı backup faylına export edəsən. Bu faylda ya sadəcə bazanın strukturu, ya da datalar, ya da hər ikisi ola bilər.

pg_dump-un əsas üstünlüyü ondadır ki, sən datanı serverlər arasında köçürə, crash-dan sonra bazanı bərpa edə və ya sadəcə uzunmüddətli arxiv üçün backup yarada bilərsən. Qeyd edim ki, bu utilit daha çox logical backup (SQL sorğuları ilə) üçün uyğundur, nəinki database fayllarının fiziki kopyalanması üçün.

pg_dump komandasının əsas sintaksisi

Backup yaratmaq üçün pg_dump ilə terminalda sadəcə bu komandadan istifadə et:

pg_dump -U username -d database_name -f backup_file.sql

Komandanın komponentlərini izah edək:

  • -U username — PostgreSQL istifadəçi adını göstərir, hansı ki, bazaya qoşulmaq üçün istifadə olunur.
  • -d database_name — backup yaradacağın database-in adını göstərir.
  • -f backup_file.sql — backup faylının hara yazılacağını göstərir. Bu, həm tam yol, həm də nisbətən ola bilər.

Nümunə: Tutaq ki, səndə university adlı database var və backup-ı university_backup.sql faylına yazmaq istəyirsən. Komanda belə olacaq:

pg_dump -U postgres -d university -f university_backup.sql

Bu zaman PostgreSQL postgres istifadəçisinin parolunu soruşacaq ki, dataya girişə icazə versin.

Tövsiyə: Əgər local serverdə işləyirsənsə və hər dəfə parol yazmaq istəmirsənsə, .pgpass faylını qur. Əlavə təlimatlar üçün PostgreSQL-in rəsmi sənədləşməsinə bax.

Parametrlər və onların istifadəsi

pg_dump utiliti çox çevikdir və backup-ları müxtəlif ayarlarla yaratmaq üçün konfiqurasiya oluna bilər:

  1. Yalnız database strukturunun backup-ı

Əgər sadəcə database-in strukturunu (məsələn, yeni serverdə qurmaq üçün) saxlamaq istəyirsənsə, --schema-only flag-ından istifadə et. Komanda nümunəsi:

pg_dump -U postgres -d university --schema-only -f university_schema.sql

Bu, yalnız CREATE TABLE, CREATE INDEX və s. komandalarını saxlayan SQL script yaradacaq, data olmadan.

  1. Yalnız datanın backup-ı

Bəzən sadəcə datanı saxlamaq lazım olur, struktur olmadan. Bu halda --data-only flag-ından istifadə et:

pg_dump -U postgres -d university --data-only -f university_data.sql

Alınan faylda INSERT INTO komandaları olacaq və datanı bərpa edəcək.

  1. Backup-ın sıxılması

Backup faylı bəzən çox böyük ola bilər, xüsusən də database-də çoxlu cədvəl və data varsa. Faylın ölçüsünü azaltmaq üçün --compress parametrindən istifadə et:

pg_dump -U postgres -d university -f university_backup.sql --compress=6

Sıxılma səviyyəsi 0-dan (sıxılma yoxdur) 9-a (maksimum sıxılma) qədər rəqəmlə göstərilir. Yadda saxla ki, yüksək sıxılma səviyyəsi backup-ın yaradılmasına daha çox vaxt aparacaq.

  1. Binary formata export

Daha sürətli bərpa üçün backup-ı text SQL script əvəzinə binary formatda saxlaya bilərsən:

pg_dump -U postgres -d university -Fc -f university_backup.dump

-Fc açarı Custom formatını göstərir və bu backup-ı pg_restore utiliti ilə bərpa etmək olur.

Backup yaratma nümunələri

Database-in tam backup-ı

Tutaq ki, səndə company adlı database var və strukturla birlikdə bütün datanı backup etmək istəyirsən:

pg_dump -U postgres -d company -f company_backup.sql

Bir cədvəlin backup-ı

Əgər sadəcə bir cədvəli backup etmək lazımdırsa, -t parametrindən istifadə et:

pg_dump -U postgres -d company -t employees -f employees_backup.sql

Bu faylda yalnız employees cədvəlinin strukturu və dataları olacaq.

Bir neçə cədvəlin backup-ı

Bir neçə cədvəli backup etmək üçün bir neçə -t parametri əlavə et:

pg_dump -U postgres -d company -t employees -t departments -f selected_tables_backup.sql

Sıxılmış backup

Yaddaşa qənaət üçün --compress flag-ından istifadə et və ya birbaşa sıxılmış formatda fayl yarat:

pg_dump -U postgres -d company -Fc -f company_backup_compressed.dump

Faydalı tövsiyələr

Backup faylının ölçüsünü yoxla. Əgər backup çox kiçikdirsə, ola bilsin ki, nəsə səhv gedib. Backup prosesi barədə daha ətraflı məlumat üçün --verbose parametrindən istifadə et.

Prosesi avtomatlaşdır. Backup-ları müntəzəm yaratmaq üçün cron və ya pg_cron istifadə et. Diskin dolmaması üçün köhnə backup-ların düzgün rotasiyasını unutma.

Backup-ları düzgünlüyə yoxla. Yaradılmış backup-ları test serverdə bərpa etməklə yoxla.

Rast gələ biləcəyin səhvlər

Authentication səhvi. Əgər düzgün istifadəçi göstərməsən və ya parolu unutmusansa, pg_dump səhv verəcək. Avtomatik giriş üçün .pgpass faylını qurduğuna əmin ol.

Qoşulma səhvi. Əgər PostgreSQL serveri işləmir və ya database adını səhv göstərmisənsə, utilit backup yarada bilməyəcək. Database adını və server statusunu yoxla.

Access hüquqları problemi. pg_dump-ı işə saldığın istifadəçi database-in strukturunu və datalarını oxumaq hüququna malik olmalıdır. İmkan varsa, admin rolundan istifadə et.

2
Tapşırıq
SQL SELF, səviyyə, dərs
Bağlanıb
Yalnız verilənlər bazasının strukturunun backup-u
Yalnız verilənlər bazasının strukturunun backup-u
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION