Ana içeriğe geç

MongoDB Yedekleme ve Geri Yükleme

Yedekleme (Backup)​

uyarı

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
bilgi

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
uyarı

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ökümantasyonunu inceleyebilirsiniz.


Geri Yükleme (Restore)​

Apinizer konfigürasyon verilerini yedekten geri yüklemek için, oluşturduğunuz yedek dosyaları kullanılır. Bu işlem Linux shell üzerinde mongorestore komutuyla yapılır.

Temel Geri Yükleme Komutu​

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
uyarı

--drop parametresi kullanıldığında mevcut koleksiyonlar silinir ve yeniden oluşturulur. Bu işlem geri alınamaz, bu nedenle dikkatli kullanılmalıdır.

Replica Set'e Geri Yükleme​

Primary MongoDB sunucusunu hedef göstermeden tüm replica set'e geri yükleme yapan ö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

Tek Koleksiyon Geri Yükleme​

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

Detaylı Bilgi​

Detaylı bilgi için MongoDB dökümantasyonunu inceleyebilirsiniz.