> ## 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.

# Geri Yükleme

> Apinizer platformunda, MongoDB veritabanından alınan yedekler kullanılarak tüm sistem yapılandırmalarını, API proxy tanımlarını, politika ayarlarını ve diğer verileri geri yükleyebilir. Platform, mongorestore komutu ile yedek dosyalarından veri geri yükleme işlemlerini gerçekleştirebilir ve sistem kurtarma, veri bütünlüğü ve felaket kurtarma senaryolarını destekler.

## Geri Yüklemenin Önemi

Geri yükleme işlemi, sistem kurtarma ve veri bütünlüğü açısından kritik bir işlemdir:

<CardGroup cols={2}>
  <Card title="Hızlı Sistem Kurtarma" icon="bolt">
    Veri kaybı veya sistem arızası durumunda, yedekten geri yükleme yaparak sistemi hızlıca çalışır hale getirebilirsiniz.
  </Card>

  <Card title="Veri Bütünlüğü" icon="shield">
    Yedekten geri yükleme yaparak, sisteminizin belirli bir noktadaki durumuna geri dönebilirsiniz.
  </Card>

  <Card title="Test Ortamları" icon="flask">
    Yedekleri test ortamlarına geri yükleyerek, test ve geliştirme işlemlerini gerçek verilerle yapabilirsiniz.
  </Card>

  <Card title="Versiyon Geri Dönüş" icon="code-branch">
    Sistem güncellemesi sonrası sorun yaşanırsa, önceki versiyonun yedeğinden geri yükleme yapabilirsiniz.
  </Card>

  <Card title="Felaket Kurtarma" icon="server">
    Büyük ölçekli sistem arızalarında, yedeklerden geri yükleme yaparak iş sürekliliğini sağlayabilirsiniz.
  </Card>
</CardGroup>

## MongoDB Geri Yükleme İşlemi

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:

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

**Parametreler:**

| Parametre                  | Tip     | Zorunlu | Açıklama                                          |
| -------------------------- | ------- | ------- | ------------------------------------------------- |
| `--drop`                   | boolean | Hayır   | Mevcut koleksiyonları sil ve yeniden oluştur      |
| `--host`                   | string  | Evet    | Primary MongoDB sunucusunun IP adresi             |
| `--port`                   | number  | Evet    | MongoDB port numarası                             |
| `--username`               | string  | Evet    | MongoDB kullanıcı adı                             |
| `--authenticationDatabase` | string  | Hayır   | Kimlik doğrulama veritabanı (varsayılan: `admin`) |
| `--gzip`                   | boolean | Hayır   | Sıkıştırılmış yedek dosyası                       |
| `--archive`                | string  | Evet    | Geri yüklenecek yedek dosyasının yolu             |

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

### Replica Set'e Geri Yükleme

Primary MongoDB sunucusunu hedef göstermeden tüm replica set'e geri yükleme yapan örnek komut:

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

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

## Geri Yükleme Öncesi Dikkat Edilmesi Gerekenler

<Warning>
  Geri yükleme işlemi kritik bir işlemdir ve mevcut verileri etkileyebilir. Aşağıdaki adımları mutlaka takip edin:
</Warning>

<Steps>
  <Step title="Yedek Dosyası Kontrolü">
    Geri yükleme yapmadan önce yedek dosyasının bütünlüğünü kontrol edin.
  </Step>

  <Step title="Versiyon Uyumluluğu">
    Yedek dosyasının Apinizer sürümü ile uyumlu olduğundan emin olun.
  </Step>

  <Step title="Mevcut Durumun Yedeğini Alın">
    Geri yükleme yapmadan önce mevcut durumun yedeğini mutlaka alın.
  </Step>

  <Step title="Test Ortamında Deneyin">
    Mümkünse önce test ortamında geri yükleme işlemini deneyin.
  </Step>

  <Step title="Bakım Penceresi Planlayın">
    Geri yükleme işlemi sırasında sistem kullanılamayacağı için bakım penceresi planlayın.
  </Step>
</Steps>

## Geri Yükleme En İyi Uygulamaları

<CardGroup cols={2}>
  <Card title="Planlama" icon="calendar">
    Geri yükleme işlemini önceden planlayın ve dokümante edin.
  </Card>

  <Card title="Test" icon="flask">
    Düzenli olarak geri yükleme testleri yapın.
  </Card>

  <Card title="Yedekleme" icon="database">
    Geri yükleme öncesi mevcut durumun yedeğini alın.
  </Card>

  <Card title="Versiyon Kontrolü" icon="tag">
    Yedek dosyalarında sürüm bilgisini kontrol edin.
  </Card>

  <Card title="Dokümantasyon" icon="file-lines">
    Geri yükleme işlemlerini dokümante edin.
  </Card>

  <Card title="İzleme" icon="chart-line">
    Geri yükleme sonrası sistemin düzgün çalıştığını doğrulayın.
  </Card>
</CardGroup>

## Detaylı Bilgi

Detaylı bilgi için [MongoDB dökümantasyonunu inceleyebilirsiniz](https://docs.mongodb.com/manual/tutorial/restore-replica-set-from-backup/).
