Hallo allerseits!
In diesem Artikel migrieren wir die GitLab-Datenbank von der internen PostgreSQL-Datenbank, die mit GitLab installiert wird, auf die externe PostgreSQL-Datenbank, die bereits auf einem anderen Server installiert ist.

HINWEIS
Alle Aktionen funktionieren garantiert unter CentOS 7.7.1908, PostgreSQL 12 und GitLab 12.4.2-ee.0.
Vorbereitende Vorbereitung
Wir werden im Voraus drei Dinge tun:1. Fügen Sie auf dem PostgreSQL-Server der Firewall eine Regel hinzu, die eingehende Verbindungen zum PostgreSQL 5432 / TCP-Port zulässt.
In meinem Fall:firewall-cmd --add-service=postgresql --zone=internal --permanent success firewall-cmd --reload success
2. Ermöglichen Sie an derselben Stelle, aber in der postgresql.conf-Datei, dass die Netzwerkschnittstelle eingehende Verbindungen von außerhalb akzeptiert. Öffnen Sie die postgresql.conf-Datei, suchen Sie die
auskommentierte Zeile "
#listen_addresses = 'localhost' " und fügen Sie die Zeile darunter hinzu. Wo ist 10.0.0.2, die Adresse Ihrer Schnittstelle.
In meinem Fall: vi /var/lib/pgsql/12/data/postgresql.conf
3. Da der GitLab-Server eine Verbindung zu einer externen Datenbank herstellen soll, muss dies auf dem PostgreSQL-Server in der Datei pg_hba.conf aktiviert sein. Die Adresse meines GitLab-Servers lautet 10.0.0.4.
Öffnen Sie die Datei pg_hba.conf und fügen Sie dort die Zeile ein: host all gitlab 10.0.0.4/24 md5
Es wird so aussehen:
Starten Sie abschließend den postgresql-Dienst neu: systemctl restart postgresql-12.service
Exportieren Sie die GitLab-Datenbank
Führen Sie auf dem GitLab-Server Folgendes aus: sudo -u gitlab-psql /opt/gitlab/embedded/bin/pg_dumpall -U gitlab-psql --host=/var/opt/gitlab/postgresql > /tmp/internal-gitlab.sql
Das Backup erschien in / tmp: ls -lh total 836K -rw-r--r--. 1 root root 836K Nov 18 12:59 internal-gitlab.sql
Kopieren Sie diese Kopie auf den PostgreSQL-Server: scp /tmp/internal-gitlab.sql 10.0.0.2:/tmp/ internal-gitlab.sql 100% 835KB 50.0MB/s 00:00
Importieren Sie "internal-gitlab.sql" in PostgreSQL
Importieren Sie die Datenbank in PostgreSQL: sudo -u postgres psql -f /tmp/internal-gitlab.sql
Überprüfen Sie, ob sich die Datenbank jetzt in PostgreSQL befindet: sudo -u postgres psql -l
Die folgende Zeile sollte erscheinen: gitlabhq_production | gitlab | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
GitLab konfigurieren
Nach dem Import der Datenbank in PostgreSQL wurde der Benutzer gitlab erstellt. Sie müssen das Passwort für diesen Benutzer ändern.
Passwort ändern: sudo -u postgres psql -c "ALTER USER gitlab ENCRYPTED PASSWORD '' VALID UNTIL 'infinity';" Password for user postgres: ALTER ROLE
Dann geben wir auf dem GitLab-Server in der Konfigurationsdatei /etc/gitlab/gitlab.rb alle Daten des externen PostgreSQL an.
Erstellen Sie eine Sicherungskopie der Datei gitlab.rb: cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb.orig
Fügen Sie nun am Ende der Datei gitlab.rb die folgenden Zeilen hinzu:
Speichern Sie die Datei /etc/gitlab/gitlab.rb und konfigurieren Sie GitLab neu: gitlab-ctl reconfigure && gitlab-ctl restart
Das ist alles :)
Eine große Bitte. Wenn Sie ein Minus setzen, schreiben Sie den Grund in den Kommentar.