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.