Yedekleme ve geri yükleme

Uygulama verilerini korumak ve kurtarma senaryolarını desteklemek için IBM Bob on-premises PostgreSQL veritabanı yedeklemelerini yapılandırın, yönetin ve geri yükleyin.

IBM Bob on-premises, yedekleme işlemlerini Bob özel kaynağından (CR) ayıran ConfigMap tabanlı bir yedekleme yapılandırma modeli kullanır. Yedekleme işleri, yapılandırılabilir saklama (retention) ilkeleri ve depolama ayarlarıyla Kubernetes CronJob'ları aracılığıyla otomatik olarak zamanlanır ve yönetilir.

PostgreSQL yedeklemeleri, IBM Bob ve Keycloak veritabanlarının geri yüklenebilir bir kopyasını oluşturur. Bu yedeklemeler bir kesintiden sonra verileri kurtarmak, kümeler arasında veri taşımak veya bilinen iyi bir önceki veritabanı durumuna geri dönmek için kullanılabilir.

IBM Bob hem otomatik zamanlanmış yedeklemeleri hem de manuel yedekleme yürütmeyi destekler.

Temel özellikler

Otomatik zamanlama

Yedeklemeler, Kubernetes CronJob'ları kullanılarak otomatik olarak yürütülür. Yedekleme zamanlamaları, standart cron ifadeleri kullanılarak tanımlanır ve yedekleme sıklığını operasyonel ve kurtarma gereksinimlerinize göre yapılandırmanıza olanak tanır.

Otomatik saklama yönetimi

Depolama tüketimini kontrol altında tutmaya yardımcı olmak için yedekleme saklama süresi otomatik olarak yönetilir. Her başarılı yedeklemenin ardından, yapılandırılan saklama sınırını aşan eski yedekler silinir. Varsayılan olarak sistem, küme başına en son yedi yedeklemeyi saklar.

Çoklu küme yedekleme desteği

Tek bir yedekleme yapılandırması, birden fazla PostgreSQL kümesinin yedeklemelerini yönetebilir. Operatör, yapılandırılan her küme için özel yedekleme kaynakları oluşturur ve bunların bakımını yaparak dağıtım genelinde merkezi yedekleme yönetimi sağlar.

PostgreSQL image otomatik algılama

Yedekleme sistemi, çalışan veritabanı kümelerinden PostgreSQL container image'ını otomatik olarak algılayabilir ve kullanabilir. Bu, image sürümünü manuel olarak belirtme ihtiyacını ortadan kaldırır ve yedekleme işleri ile hedef veritabanı ortamı arasında uyumluluğun sağlanmasına yardımcı olur.

ConfigMap tabanlı yapılandırma

Yedekleme ayarları, Bob özel kaynağından (CR) ayrı olarak özel bir ConfigMap'te saklanır. Bu ayrım operasyonel yönetimi basitleştirir ve yedekleme zamanlamalarının, depolama ayarlarının ve saklama ilkelerinin uygulama dağıtım yapılandırmasından bağımsız olarak değiştirilmesine olanak tanır.

Otomatik sıkıştırma

Veritabanı dökümleri (dumps) depolanmadan önce gzip kullanılarak otomatik olarak sıkıştırılır. Sıkıştırma, depolama gereksinimlerini azaltır ve mevcut depolama kapasitesi dahilinde yedekleme saklamanın optimize edilmesine yardımcı olur.

Yedekleme meta veri takibi

Her yedekleme; yedekleme zaman damgası, veritabanı adı, host, port ve yedekleme boyutu gibi ayrıntıları içeren bir meta veri dosyası içerir. Bu bilgiler yedekleme bütünlüğünü doğrulamanıza, yedekleme geçmişini takip etmenize ve geri yükleme için doğru yedeklemeyi belirlemenize yardımcı olur.

Bir yedeklemeye neler dahildir

Veritabanı yedeklemeleri, bir veritabanı ortamını yeniden oluşturmak için gereken tüm PostgreSQL veritabanı nesnelerini ve verilerini yakalar.

Yedeklemeler şunları içerir:

  • PostgreSQL veritabanları (yapılandırılmışsa):
    • Bob veritabanı (bob) — kullanıcı hesapları ve kimlik doğrulama bilgileri, projeler ve konuşmalar, kod analizi sonuçları ile uygulamaya özel yapılandırma ve ayarlar dahil olmak üzere birincil uygulama veritabanı.
    • Keycloak veritabanı (app) — kullanıcı kimlik bilgileri ve profil bilgileri, OAuth ve OpenID Connect (OIDC) yapılandırmaları, realm ayarları ile istemci ve kimlik sağlayıcı yapılandırmaları dahil olmak üzere kimlik doğrulama ve kimlik yönetimi için kullanılan Keycloak veritabanı.
  • Veritabanı şeması — tablolar, indeksler ve kısıtlamalar; saklı yordamlar (stored procedures) ve fonksiyonlar; görünümler (views) ve tetikleyiciler (triggers); diziler (sequences) ve özel tipler dahil olmak üzere veritabanı yapısını yeniden oluşturmak için gereken tüm nesneler.
  • Veritabanı verileri — yedekleme işlemi, eksiksiz bir PostgreSQL veritabanı dökümü oluşturmak için pg_dump kullanır; veritabanı tablolarında depolanan tüm verileri, tüm satırları ve kayıtları ve varsa ikili büyük nesneleri (BLOB'lar) yakalar.

Bir yedeklemeye neler dahil değildir

PostgreSQL yedeklemeleri Kubernetes kaynaklarını veya uygulama yapılandırmasını yakalamaz.

Aşağıdaki öğeler ayrı olarak yönetilmelidir:

  • ConfigMap'ler
  • Secret'lar
  • Deployment'lar ve Service'ler
  • Ingress kaynakları
  • Uygulama logları
  • Model verileri ve embedding'ler
  • Veritabanı dışı persistent volume'lar

Yedekleme mimarisi

IBM Bob, veritabanı yedeklemeleri oluşturmak ve yönetmek için Kubernetes'e özgü kaynakları kullanır.

BileşenAmaç
Bob custom resourceYedekleme işlemlerini etkinleştirir veya askıya alır
Yedekleme ConfigMapZamanlamaları, depolamayı, saklamayı ve hedef veritabanlarını tanımlar
CronJob'larZamanlanmış yedeklemeleri yürütür
Persistent volume claim'lerYedekleme dosyalarını depolar
Yedekleme script'leriYedeklemeleri oluşturur ve saklamayı yönetir

Yedekleme süreci şu iş akışını izler:

Bob CR (enabled: true) → ConfigMap Discovery → Controller Reconciliation → CronJob Execution
  1. Controller, bob.ibm.com/backup-config: "true" etiketine sahip ConfigMap'i bulur.
  2. Controller, yapılandırılan her küme için CronJob'ları ve PVC'leri oluşturur.
  3. CronJob'lar zamanlamaya göre yürütülür ve sıkıştırılmış SQL dökümleri oluşturmak için pg_dump çalıştırır.
  4. Yedekleme script'i saklamayı yönetir ve eski yedekleri otomatik olarak siler.
  5. Her yedekleme zaman damgası, boyut ve veritabanı bilgilerini içeren bir meta veri dosyası içerir.

Yedeklemeler etkinleştirildiğinde operatör yedekleme yapılandırmasını otomatik olarak algılar, gerekli kaynakları oluşturur ve yapılandırılan sıklığa göre yedekleme işlerini zamanlar.

Yedekleme dosya yapısı

Yedekleme dosyaları tahsis edilmiş persistent volume claim'lerde (PVC'ler) saklanır. Yapılandırılan her PostgreSQL kümesinin, yedekleme dosyalarını ve ilişkili meta verileri içeren kendi dizini vardır.

/backups/
├── bob-db/
│   ├── backup_bob_20260902_020000.sql.gz
│   └── backup_bob_20260902_020000.sql.gz.meta
└── bob-keycloak-db/
    ├── backup_app_20260902_020000.sql.gz
    └── backup_app_20260902_020000.sql.gz.meta

Yedekleme işlemi her yedekleme için aşağıdaki dosyaları oluşturur:

  • .sql.gz — sıkıştırılmış SQL dökümü (düz metin formatı, gzip ile sıkıştırılmış)
  • .sql.gz.meta — zaman damgası, veritabanı adı, boyut, host ve port bilgilerini içeren meta veri dosyası

Kurtarma yetenekleri

IBM Bob, verileri geri yüklemenize, arızalardan kurtulmanıza ve ortamlar arasında veritabanlarını taşımanıza yardımcı olmak için birden fazla kurtarma senaryosunu destekler:

  • Tam veritabanı geri yükleme — bir yedekleme dosyasından tüm PostgreSQL veritabanını geri yükleyin.
  • Belirli bir ana geri yükleme (Point-in-time recovery) — zaman damgasına göre gerekli yedekleme dosyasını seçerek bir veritabanını belirli bir yedekleme anına geri yükleyin.
  • Kümeler arası geçiş (Cross-cluster migration) — bir yedeklemeyi farklı bir PostgreSQL kümesine geri yükleyerek ortamlar arasında veritabanı geçişi yapın.
Bu konu nasıl?