PostgreSQL Veritabanı Nasıl Yedeklenir ve Geri Yüklenir

Veritabanlarının bütünlüğünü korumak, günümüzün veri odaklı dünyasında her türden kuruluş için hayati öneme sahiptir.  PostgreSQL adı verilen açık kaynaklı, güvenilir ilişkisel veritabanı yönetim sistemi birçok farklı sektörde yaygın olarak kullanılmaktadır.  PostgreSQL veritabanının nasıl yedekleneceğini ve geri yükleneceğini bilmek, ister acemi ister uzman bir veritabanı yöneticisi olalım, bizi veri kaybından koruyan önemli bir beceridir.

PostgreSQL veritabanlarının nasıl geri yükleneceği ve yedekleneceği hakkında konuşalım.  Verilerimizin güvenliğini ve kullanılabilirliğini sağlamak için temel ilkeleri, yaklaşımları ve en iyi uygulamaları açıklayacağız.

Ubuntu’da PostgreSQL Kurulumu

$ sudo apt update

Ubuntu’nun varsayılan deposundan en güncel PostgreSQL sürümünü yükleyin.

$ sudo apt install postgresql

PostgreSQL’in konfigürasyonu “/etc/postgresql/12/main” dizininde saklanır, varsayılan veri konumu ise “/var/lib/postgresql/12/main”dir.

$ sudo systemctl is-active postgresql

$ sudo systemctl is-enabled postgresql

$ sudo systemctl status postgresql

Ayrıca aşağıdakileri yaparak PostgreSQL sunucusunun istemci bağlantılarını kabul etmeye hazır olduğunu doğrulayın:

$ sudo pg_isready

Bundan sonra veritabanını oluşturabilir ve veritabanını yapılandırabiliriz.

Tek PostgreSQL Veritabanının Yedeğinin Oluşturulması

PostgreSQL’in “pg_dump” programı veritabanlarının yedeklenmesini kolaylaştırır.  SQL komutlarının kullanımıyla daha sonra kolayca kurtarılabilecek bir veritabanı dosyası oluşturur.

Daha sonra Postgres kullanıcısı olarak oturum açın ve aşağıda gösterildiği gibi “pg_dump” komutunu çalıştırın:

$ pg_dump souvikdb > souvikdb.sql

Diğer çıktı formatları da “pg_dump” tarafından desteklenmektedir:

-F: Çıkış biçimi

“c”: Özel formatlı arşiv dosyası

“t”: Tar formatındaki arşiv dosyası

Tüm formatlar “pg_restore” ile uyumludur.

Bir örnek görelim:

$ pg_dump -F c souvikdb > souvikdb.dump

Veya

$ pg_dump -F t souvikdb > souvikdb.tar

“-f” seçenekleri çıktının kaydedilmesine yardımcı olur.

$ pg_dump -F d souvikdb -f souvikdumpdir

Aşağıda gösterildiği gibi “psql” kullanarak dökümü geri yükleyebiliriz:

$ psql -f all_pg_dbs.sql postgres

PostgreSQL Veritabanını Kurtarma veya Geri Yükleme

PostgreSQL veritabanını geri yüklemek için “psql” veya “pg_restore” komutlarını kullanabiliriz.  “psql” komutu, “pg_dump” tarafından oluşturulan metin dosyalarını kurtarır, ancak “pg_restore”, PostgreSQL veritabanını “pg_dump” (özel, tar veya dizin) tarafından hazırlanan düz metin olmayan bir arşivden kurtarır.

Aşağıda düz metin dosyası dökümünün nasıl kurtarılacağına ilişkin bir örnek yer almaktadır:

$ psql souvikdb < souvikdb.sql

Özel formatlı bir dökümün gösterildiği gibi “pg_restore” kullanılarak geri yüklenmesi gerekir çünkü daha önce de belirtildiği gibi bu “psql” için bir komut dosyası değildir.  Burada “d”, “dizin” formatındaki arşiv anlamına gelir:

$ pg_restore -d souvikdb souvikdb.dump

 

Büyük PostgreSQL Veritabanının Yedeklemesinin Alınması

Yedeklediğimiz veritabanı çok büyükse ve biraz daha küçük bir çıktı dosyası oluşturmak istiyorsak, “pg_dump” çıktısını gzip gibi bir sıkıştırma aracıyla veya favorilerimizden herhangi biriyle filtreleyerek sıkıştırılmış bir döküm gerçekleştirebiliriz.  Bu nedenle aşağıdaki formatı kullanın:

$ pg_dump souvikdb | gzip > souvikdb.gz

Remote PostgreSQL Database Backup

“pg_dump” uzak veritabanı sunucularında işlemleri gerçekleştirmemize olanak sağlayan standart bir PostgreSQL istemci aracıdır.  Ayrıca, bağlanılacak veritabanı rolünü belirtmek için -U parametresini kullanın:

30.10.20.10 ana bilgisayar ipini veya sunucu adını değiştirin.

5232’yi veritabanı bağlantı noktasıyla değiştirin.

“Souvikdb” veritabanı adını değiştirin.

$ pg_dump -U souvik -h 30.10.20.10 -p 5232 souvikdb > souvikdb.sql

Gösterildiği gibi “pg_dump” ve “psql” yardımcı programlarını kullanma.  Bir veritabanını doğrudan bir sunucudan diğerine aktarmak da mümkündür.

$ pg_dump -U souvik -h 30.10.20.10 souvikdb | pqsl -U souvik -h 30.10.20.30 souvikdb

PostgreSQL Veritabanını Otomatik Yedeklemek için Cron İşi Kullanma

Cron görevlerini kullanarak yedeklemeleri düzenli aralıklarla planlayabiliriz.  Cron işleri, bir sunucuda yürütülecek çeşitli görev türlerini planlamak için popüler bir yöntemdir.

PostgreSQL veritabanı yedeklemesini otomatikleştirmek için aşağıdaki cron işi kullanılabilir.  Aşağıdaki komutların PostgreSQL süper kullanıcısı olarak çalıştırılması gerektiğine dikkat edilmelidir:

$ mkdir -p /srv/backups/databases

$ crontab -e

Bu yeni hizmet, yeniden başlatma gerektirmeden cron hizmeti tarafından otomatik olarak başlatılır.

Önemli dosyalarımızın yedeğini otomatik olarak alır.

Yazının orijinalini buradan okuyabilirsiniz.