pg_dumpall

Dosya Sistemi Düzeyinde Yedeklemek için kullanılan pg_dumpall  ile bütün veritabanlarının içerisinde bulunan veritabanı nesnelerinin yedeklerini alabiliriz.

Pg_dumpall , cluster içerisindeki tabloları okur ve uygun bir şekilde  dosya oluşturmak için bir çıktı verir. Bu çıktı cluster içerisinde bulunan roleler, fdwler ,triggerlar  gibi veritabanı ve cluster seviyesindekilerin create scriptlerini belirtilen isimli dosyanın içerisinde oluşturur.

Pg_dumpall ,  veritabanlarının yedeğini alırken pg_dump’ı her veritabanı için kullanmaktadır.

Genel kullanımı aşağıdaki gibidir:

pg_dumpall -p 5432 -f /var/lib/pgsql/13/backups/d1/dumpallfull --verbose

Pg_dumpall yukarıdaki parametrelere ek aşağıdaki parametreleri de kullanmaktadır.

Pg_dumpall ile cluster a bağlantı  için kullanılan parametreler:

  • -d veya –dbname :Bağlanılacak veritabanın adı belirtilir .
  • -h veya –host  :Bağlanılmak istenen postgresql ip
  • -p veya –port: Bağlanmak istenen postgresql portu
  • -U veya –username :Bağlanılmak istenen kullanıcı adı.
  • -w  veya  –no-password: Bağlantı sağlanırken işlem sırasında parola kullanılmaması için kullanılır.
  • -W veya –password: Bir veritabanına bağlanmadan önce parola istemesi için kullanılır.
  • –role: Belirtilen role u kullanarak backup almak için kullanılır. Superuser kullanıcısı verilemeden yetki tanımlamak için kullanılır.

Superuser vermeden backup almak için postgresql superuser vermeden backup almak isimli yazıma bakabilirsiniz.

PG_DUMPALL Parameters:

  • -a veya –data-only : Cluster içerisindekilerin create scriptlerini almaz sadece içerisinde ki dataları alır.
  • -C veya –create :Veritabanı ve içerisindekileri oluşturmak için kullanılır .
  • -E veya –encoding : Belirtilen Encoding ile oluşturulması için kullanılır.
  • -f veya –file : Pg_dumpall ile alınan backupın nereye alınacağını belirtmek için kullanılır. Yer belirtilmezse default yere alınır.
  • -j veya –jobs : paralel bir şekilde yedek alınması için kullanılır. Bu işlem yapılırken max_connections parametresi ile birden fazla parametre proceses de işlem yapılmasını sağlar.
  • -O veya –no-owner :  Yedeği alınacak veritabanın içerisindeki bulunan nesnelerinin  ownerını almamak için kullanılır.
  • -s veya –schema-only :  Belirtilen nesnelerin sadece create scriptlerini almak için kullanılır. İçerisinde data bulunmaz.
  • -S veya –superuser : Triggerları devre dışı bırakılır. Farklı superuser kullanıcısı belirterek işlem yapmak için kullanılır.
  • -t  veya –tablespaces_only   : Sadece belirtilen tablonun yedeğini almak için kullanılır.
  • -v  veya –verbose   : pg_dumpall işlemi yapılırken yapılan işlemlerin ekrana yazdırmak için kullanılır.
  • -x veya –no-privileges veya –no-acl : Erişim ayrıcalıklarının atlanması için kullanılır.  Detaylı bilgi için ACL yazıma göz atabilirsiniz.
  • -Z veya –compress :   Dump çıktısının sıkıştırma oranını belirtmek için kullanılır. 0 ile 9 arasında değer alır.
  • –binary-upgrade: binarylerin upgrade edilmesi için kullanılır.
  • –column-inserts veya –attribute-inserts : pg_dumpall içerisinde standart olarak copy komutu kullanılır. Bunun sebebi daha hızlı olmasıdır fakat verileri copy yerine insert scripti şeklinde oluşturmak isterseniz bu komutu kullanabilirsiniz.
  • –exclude-database : Belirtilen veritabanlarının yedeğini almamak için kullanılır.
  • –no-comments : Yorum satırı kullanılmaması için kullanılır.
  • –no-security-labels : Güvenlik etiketlerini almamak için kullanılır.
  • –no-tablespaces : Belirtilen tablespace ‘in yedeğini almamak için kullanılır.
  • –no-unlogged-table-data: Unlogged tableları yedeğini almamak için kullanılır. Unlogged Table ile ilgili detaylı bilgi için Unlogged Table isimli yazıma bakabilirsiniz.

 

Örnek kullanımı aşağıdaki gibidir.

pg_dumpall -p 5432 -f /var/lib/pgsql/13/backups/d1/dumpallfull --verbose

Loading