# 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 Datenbankserver ein und führe einen sogenannten Mongo-Dump aus.

{% hint style="warning" %}
**Bitte beachte**: Die benötigten Befehle für einen Mongo-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 Varianten es für einen Mongo-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
```

4. 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. Logge dich auf dem Enginsight Applikationsserver ein 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 %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.enginsight.com/docs/knowledge-base/datenbank/welche-anpassungen-muss-ich-vornehmen-wenn-sich-die-ip-adresse-meiner-enginsight-datenbank-andert.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
