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ı.
- Bob 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_dumpkullanı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şen | Amaç |
|---|---|
| Bob custom resource | Yedekleme işlemlerini etkinleştirir veya askıya alır |
| Yedekleme ConfigMap | Zamanlamaları, depolamayı, saklamayı ve hedef veritabanlarını tanımlar |
| CronJob'lar | Zamanlanmış yedeklemeleri yürütür |
| Persistent volume claim'ler | Yedekleme dosyalarını depolar |
| Yedekleme script'leri | Yedeklemeleri oluşturur ve saklamayı yönetir |
Yedekleme süreci şu iş akışını izler:
Bob CR (enabled: true) → ConfigMap Discovery → Controller Reconciliation → CronJob Execution- Controller,
bob.ibm.com/backup-config: "true"etiketine sahip ConfigMap'i bulur. - Controller, yapılandırılan her küme için CronJob'ları ve PVC'leri oluşturur.
- 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. - Yedekleme script'i saklamayı yönetir ve eski yedekleri otomatik olarak siler.
- 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.metaYedekleme 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.