> ## Documentation Index
> Fetch the complete documentation index at: https://docs.apinizer.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Yedekleme

> Apinizer platformunda tüm yapılandırmaları, API proxy tanımlarını, politika ayarlarını, kullanıcı bilgilerini ve sistem konfigürasyonlarını MongoDB veritabanında saklar. Bu nedenle MongoDB veritabanının düzenli olarak yedeklenmesi kritik öneme sahiptir. Platform, mongodump komutu ile veritabanı yedekleme işlemlerini gerçekleştirebilir ve yedek dosyalarında sürüm bilgisi saklayarak versiyon uyumsuzluklarını önleyebilir.

## Yedeklemenin Önemi

Yedekleme işlemi, sistem güvenliği ve veri bütünlüğü açısından hayati bir rol oynar:

<CardGroup cols={2}>
  <Card title="Veri Kaybını Önleme" icon="shield">
    Sistem arızası, donanım hatası veya yanlışlıkla yapılan silme işlemlerinde verilerinizi korur.
  </Card>

  <Card title="Hızlı Kurtarma" icon="bolt">
    Olası bir veri kaybı durumunda, yedekten hızlıca geri yükleme yaparak sisteminizi kısa sürede çalışır hale getirebilirsiniz.
  </Card>

  <Card title="Versiyon Kontrolü" icon="code-branch">
    Farklı zamanlarda alınan yedekler sayesinde, sisteminizin farklı versiyonlarını saklayabilir ve gerektiğinde geri dönebilirsiniz.
  </Card>

  <Card title="İş Sürekliliği" icon="chart-line">
    Kritik sistemlerde iş sürekliliğini sağlar ve olası kesintilerin etkisini minimize eder.
  </Card>
</CardGroup>

## MongoDB Yedekleme İşlemi

<Warning>
  Apinizer, Replica Set MongoDB veritabanı ile çalışmaktadır. MongoDB sunucusu üzerinden backup alırken bu duruma dikkat edilmesi gerekmektedir.
</Warning>

### Yedekleme Komutu

Aşağıdaki komut kullanılarak MongoDB veritabanı yedeklenebilir:

```bash mongodump theme={null}
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
```

**Parametreler:**

| Parametre                  | Tip     | Zorunlu | Açıklama                                          |
| -------------------------- | ------- | ------- | ------------------------------------------------- |
| `--host`                   | string  | Evet    | Primary MongoDB sunucusunun IP adresi             |
| `--port`                   | number  | Evet    | MongoDB port numarası                             |
| `--authenticationDatabase` | string  | Hayır   | Kimlik doğrulama veritabanı (varsayılan: `admin`) |
| `--username`               | string  | Evet    | MongoDB kullanıcı adı                             |
| `--password`               | string  | Evet    | MongoDB şifresi                                   |
| `--db`                     | string  | Evet    | Yedeklenecek veritabanı adı                       |
| `--gzip`                   | boolean | Hayır   | Yedek dosyasını sıkıştırır                        |
| `--archive`                | string  | Evet    | Yedek dosyasının kaydedileceği yol ve dosya adı   |

### Yedekleme Dosya İsimlendirmesi

Yedekleme dosya isimlendirmesinde yedeğin alındığı **tarih** ve **Apinizer sürüm bilgisinin** kullanılması önerilir.

<Info>
  **Önerilen Dosya Adı Formatı:**
  `apinizer-backup--v<CURRENT_VERSION>--<BACKUP_DATE>--01.archive`

  Bu format sayesinde:

  * 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
</Info>

### Koleksiyonları Hariç Tutma

<Warning>
  **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.
</Warning>

## Yedekleme En İyi Uygulamaları

<CardGroup cols={2}>
  <Card title="Düzenli Yedekleme" icon="calendar">
    Yedeklemeleri düzenli aralıklarla (günlük, haftalık) alın
  </Card>

  <Card title="Otomatikleştirme" icon="gear">
    Yedekleme işlemlerini otomatikleştirin (cron job, scheduled task)
  </Card>

  <Card title="Farklı Konumlarda Saklama" icon="server">
    Yedekleri farklı fiziksel konumlarda saklayın
  </Card>

  <Card title="Test Etme" icon="flask">
    Yedeklerin düzenli olarak geri yükleme testlerini yapın
  </Card>

  <Card title="Versiyon Bilgisi" icon="tag">
    Yedek dosyalarında mutlaka sürüm bilgisi bulundurun
  </Card>

  <Card title="Güvenlik" icon="lock">
    Yedek dosyalarını güvenli bir şekilde saklayın ve erişim kontrolü uygulayın
  </Card>
</CardGroup>

## Detaylı Bilgi

Detaylı bilgi için [MongoDB dökümantasyonunu inceleyebilirsiniz](https://docs.mongodb.com/manual/reference/program/mongodump/).
