MongoDB Veritabanı Yedekleme ve Geri Yükleme
Yedekleme (Backup)
Apinizer tüm yapılandırmalarını MongoDB veritabanında sakladığından, veritabanının düzenli olarak yedeklenmesi gereklidir. Sistem arızası veya veri kaybı durumunda, bu yedeklemeler sayesinde tüm yapılandırmalar geri yüklenebilir.
Apinizer, Replica Set MongoDB veritabanı ile çalışmaktadır. MongoDB sunucusu üzerinden backup alırken bu duruma dikkat edilmesi gerekmektedir.
mongodump --host=<PRIMARY_MONGODB_IP> --port=<PRIMARY_MONGODB_PORT> --authenticationDatabase admin --username apinizer --password <MONGO_PASSWORD> --db <DATABASE_NAME> --gzip --archive=/home/apinizer/apinizer-backup--v<CURRENT_VERSION>--<BACKUP_DATE>--01.archive
Yedekleme dosya isimlendirmesinde yedeğin alındığı tarih ve Apinizer sürüm bilgisinin kullanılması önerilir.
Bu sayede:
Hangi yedeğin hangi sistem versiyonuna ait olduğu kolayca anlaşılır.
Geri yükleme işlemlerinde versiyon uyumsuzlukları önlenir.
Arşivlenen yedeklerin yönetimi kolaylaşır.
Eğer uygulama logları ya da audit logları gibi yüksek yer kaplayabilecek kısımlar dahil edilmek istenmezse, şu komutla ayrılabilirler:
--excludeCollection apinizer_log --excludeCollection audit_event
Ancak bu işlem verinin yedeksizliğine yol açacağı için önerilmemektedir.
Detaylı bilgi için MongoDB dökumantasyonunu inceleyebilirsiniz.
Geri Yükleme (Restore)
Apinizer konfigurasyon verilerini yedekten dönmek için, oluşturduğunuz yedek dosyaları kullanılır. Bu işlem linux shell üzerinde "mongorestore" komutuyla yapılır.
Detaylı bilgi için MongoDB dökumantasyonunu inceleyebilirsiniz.
Aşağıdaki komut kullanılarak daha önce alınmış olan yedek dosyası geri yüklenebilir:
mongorestore --drop --host=<PRIMARY_MONGODB_IP> --port=<PRIMARY_MONGODB_PORT> --username=apinizer --authenticationDatabase=admin --gzip --archive=/home/apinizer/apinizer-backup-v<CURRENT_VERSION>--<BACKUP_DATE>--01.archive
Primary MongoDB sunucusunu hedef göstermeden tüm replica'ya restore eden örnek komut:
mongorestore --drop --host apinizer-replicaset/10.0.0.1:25080,10.0.0.2:25080,10.0.0.3:25080 --username apinizer --password "123456" --gzip --archive=/home/apinizer/apinizer-backup-v2024092--20241231--01.archive
Tüm veritabanı değil sadece tek bir koleksiyon yedeklenmişse, bunu geri yüklemek için:
mongorestore --drop --host 10.0.0.1 --port 25080 --authenticationDatabase "admin" -d apinizerdb -u apinizer -p "123456" --collection=api_proxy /home/apinizer/apinizerdb/api_proxy.bson