> For the complete documentation index, see [llms.txt](https://docs.enginsight.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.enginsight.com/docs/knowledge-base/datenbank/welche-anpassungen-muss-ich-vornehmen-wenn-sich-die-ip-adresse-meiner-enginsight-datenbank-andert.md).

# Welche Anpassungen muss ich vornehmen, wenn sich die IP-Adresse meiner Enginsight Datenbank ändert?

Wenn sich die IP-Adresse deiner Enginsight Datenbank ändert, musst du in deiner Datenbankkonfiguration verschiedene Änderungen vornehmen. Im Folgenden zeigen wir dir, welche dies sind und welche Anpassungen du sonst noch vornehmen musst.

{% stepper %}
{% step %}

### Enginsight Applikationsserver stoppen

{% hint style="danger" %}
**Bitte beachte**: Dieser Schritt ist vor allen Änderungen an der Datenbank *zwingend notwendig*!
{% endhint %}

1. Logge dich auf dem Enginsight Applikationsserver ein und navigiere mit folgendem Befehl in das Enginsight Installationsverzeichnis:

```
cd /opt/enginsight/enterprise
```

2. Stoppe nun den Applikationsserver mit folgendem Befehl:

```
sudo docker-compose down
```

{% endstep %}

{% step %}

### Datenbank-Backup erstellen

Logge dich auf dem Enginsight Datenbankserver ein und führe einen sogenannten MongoDB-Dump aus.

{% hint style="warning" %}
**Bitte beachte**: Die benötigten Befehle für einen MongoDB-Dump können variieren, z.B. wenn deine Datenbank per SSL/TLS verschlüsselt ist.
{% endhint %}

{% hint style="success" icon="lightbulb-exclamation" %}
Mehr Informationen, welche Optionen es für einen MongoDB-Dump gibt, findest du in der Knowledge Base: [Wie erstelle ich ein Backup meiner Enginsight Instanz?](/docs/knowledge-base/datenbank/wie-erstelle-ich-ein-backup-meiner-enginsight-instanz.md)
{% endhint %}
{% endstep %}

{% step %}

### Konfiguration des Replica-Sets auskommentieren

Die Konfiguration des Replica-Sets basiert bei Enginsight auf IP-Adressen. Da sich die IP-Adresse der Datenbank ändern wird, muss das Replica-Set nach Änderung der IP-Adresse neu initialisiert werden.&#x20;

Die Neuinitialisierung erfordert eine vorherige Deaktivierung des Replica-Sets, die am besten gleich am Anfang vorgenommen wird. So kannst du in folgenden Schritten Inkonsistenzen wegen fehlerhafter Replikation vermeiden.&#x20;

1. Öffne dazu mit folgendem Befehl die MongoDB-Konfigurationsdatei `mongod.conf`:

```
sudo nano /etc/mongod.conf
```

2. Navigiere zum Abschnitt `replication`:

```
replication:
  replSetName: "rs0"
```

3. Setze ein Raute-Zeichen **#** vor die entsprechenden Zeilen, um diese auszukommentieren:

```
# replication:
#   replSetName: "rs0"
```

4. Speichere die Änderungen in der Konfigurationsdatei (**Strg** + **o**) und bestätige den Speicherprozess. Schließe die Datei (**Strg** + **x**).
   {% endstep %}

{% step %}

### Replica-Set in lokaler Datenbank löschen

Da die Konfiguration des Replica-Sets sowohl in `/etc/mongod.conf` als auch datenbankintern in der `local`-Datenbank existiert, muss nach der Deaktivierung in der MongoDB-Konfigurationsdatei `mongod.conf` nun auch die bestehende, datenbankinterne Konfiguration des Replica-Set zurückgesetzt werden.

1. Navigiere dazu mit folgenden Befehlen in die MongoDB-Shell `mongosh` und von dort zur lokalen Datenbank `local`:

```
sudo mongosh
use local
```

2. Setze nun mit folgendem Befehl die lokale Datenbank zurück (hierbei wird **nicht** die Enginsight Datenbank gelöscht!):

```
db.dropDatabase()
```

{% endstep %}

{% step %}

### MongoDB neu starten

Starte MongoDB mit folgendem Befehl neu, um die Änderungen zu übernehmen:

```
sudo systemctl restart mongodb
```

{% endstep %}

{% step %}

### Neue IP-Adresse zuweisen

1. Öffne mit folgendem Befehl die Netzwerk-Konfigurationsdatei:

```
sudo nano /etc/network/interfaces
```

2. Trage die neue IP-Adresse der Datenbank ein.

<pre><code>iface ens19 inet static
<strong>	address &#x3C;IPAdresse>
</strong><strong>	netmask &#x3C;Netzmaske>
</strong></code></pre>

{% hint style="info" %}
**Bitte beachte**: Der Interface-Name (hier `ens19`) ist nur ein Beispiel und kann abweichen. Zudem müssen neben den Parametern `address` und `netmask` eventuell noch weitere Parameter gesetzt werden, z.B. `gateway`. Eine vollständige Dokumentation findest du im [Debian-Wiki](https://wiki.debian.org/NetworkConfiguration) und auf der [`man`-Page](https://manpages.debian.org/trixie/ifupdown/interfaces.5.en.html).&#x20;
{% endhint %}

3. Speichere die Änderungen in der Konfigurationsdatei (**Strg** + **o**) und bestätige den Speicherprozess. Schließe die Datei (**Strg** + **x**).
   {% endstep %}

{% step %}

### Datenbankserver neu starten

Starte den Datenbankserver mit folgendem Befehl neu, um die neue Netzwerkkonfiguration zu aktivieren:

```
sudo reboot
```

{% endstep %}

{% step %}

### Auskommentierung des Replica-Sets rückgängig machen

Nun muss die Auskommentierung des Replica-Sets, die in Schritt 3 vorgenommen wurde, wieder rückgängig gemacht werden.

1. Öffne dazu mit folgendem Befehl die MongoDB-Konfigurationsdatei `mongodb.conf`:

```
sudo nano /etc/mongod.conf
```

2. Navigiere zum Abschnitt `# replication` und entferne beide **#**-Zeichen:

```
replication:
  replSetName: "rs0"
```

3. Speichere die Änderungen in der Konfigurationsdatei (**Strg** + **o**) und bestätige den Speicherprozess. Schließe die Datei (**Strg** + **x**).
   {% endstep %}

{% step %}

### MongoDB neu starten

Starte MongoDB mit folgendem Befehl neu, um die Änderungen zu übernehmen:

```
sudo systemctl restart mongodb
```

{% endstep %}

{% step %}

### Replica-Set neu initialisieren

1. Navigiere mit folgendem Befehl in die MongoDB-Shell:

```
sudo mongosh
```

2. Initialisiere das Replica-Set mit folgendem Befehl neu:

```
rs.initiate( {
   _id : "rs0",
   members: [
      { _id: 0, host: "<IPAdresseDatenbankserver>:27017" }
   ]
})
```

{% hint style="info" %}
Vergiss dabei nicht, `<IPAdresseDatenbankserver>` mit der IP-Adresse des Datenbankservers zu ersetzen, die vom Applikationsserver aus erreichbar ist.
{% endhint %}

3. Prüfe nun mit folgendem Befehl, ob das Replica-Set aktiv ist:

```
rs.status()
```

Bei korrekter Konfiguration wird dir nach Ausführung des Befehls folgender Prompt angezeigt:

```
rs0:PRIMARY>
```

{% endstep %}

{% step %}

### IP-Tables-Datei anpassen

1. Öffne mit folgendem Befehl die IP-Tables-Datei:

```
sudo nano /etc/iptables/rules.v4
```

2. Ändere die IP-Adressen entsprechend der neuen Netzwerkanforderungen, z.B.:

```
-A INPUT -s <NeueIPAdresseDatenbankserver>/32 -p tcp -m tcp --dport 27017 -j ACCEPT
```

3. Speichere die Änderungen in der Konfigurationsdatei (**Strg** + **o**) und bestätige den Speicherprozess. Schließe die Datei (**Strg** + **x**).
   {% endstep %}

{% step %}

### Änderungen auf dem Applikationsserver übernehmen

1. Gehe zurück zum Applikationsserver und navigiere mit folgendem Befehl in das Enginsight Installationsverzeichnis:

```
cd /opt/enginsight/enterprise
```

2. Führe mit folgendem Befehl das Setup-Skript für den Applikationsserver neu aus:

```
sudo ./setup.sh
```

3. Gib bei der Abfrage der URIs und URLs die **MongoDB URI** wie folgt an:\
   `mongodb://mongoDefaultUser:<PasswortMongoDB>@<NeueIPAdresseDatenbankserver>:27017/enginsight?authSource=enginsight&replicaSet=rs0`

{% hint style="info" %}
Vergiss nicht, `<PasswortMongoDB>` und `<NeueIPAdresseDatenbankserver>` entsprechend zu ersetzen. Das Passwort für die MongoDB findest du auch im Verzeichnis `/home/ngsapp/mongoDefaultUserPassword`.
{% endhint %}
{% endstep %}
{% endstepper %}

***
