Skip to content

Redis - Zweite Instanz

Redis
1 1 311
  • Mein Plan stand ja fest, die Redis Datenbank auf einen anderen Server zu legen um beim Updaten von NodeBB nicht mehr so ein großes Risiko einzugehen, die DB mal aus versehen mit einem alten Stand, so wie letztens, zu überschreiben

    Ich nutze zwei NodeBB-Foren, das andere Forum dient mir eigentlich nur zum Testen, da hatte ich die DB schon ausgelagert. Heute war dieses Forum hier an der Reihe.

    Es hat etwas gedauert, bis ich eine funktionierende Konfiguration für den SystemD-Dienst gefunden hatte. Da gab es so einiges im Netz, was nicht funktionierte 😞 Interessanterweise braucht man sich die Arbeit gar nicht machen, das Redis Team hat das schon erledigt. Wenn man das Paket runterlädt und entpackt, findet man im Verzeichnis utils/ Vorlagen 🙂

    Die Vorlage heißt systemd-redis_multiple_servers@.service Ich habe den Namen angepasst.

    /etc/systemd/system/forum.service

    # example systemd template service unit file for multiple redis-servers
    #
    # You can use this file as a blueprint for your actual template service unit
    # file, if you intend to run multiple independent redis-server instances in
    # parallel using systemd's "template unit files" feature. If you do, you will
    # want to choose a better basename for your service unit by renaming this file
    # when copying it.
    #
    # Please take a look at the provided "systemd-redis_server.service" example
    # service unit file, too, if you choose to use this approach at managing
    # multiple redis-server instances via systemd.
    
    [Unit]
    Description=Redis data structure server - instance %i
    Documentation=https://redis.io/documentation
    # This template unit assumes your redis-server configuration file(s)
    # to live at /etc/redis/redis_server_<INSTANCE_NAME>.conf
    AssertPathExists=/etc/redis/redis_server_6380.conf
    #Before=your_application.service another_example_application.service
    #AssertPathExists=/var/lib/redis_forum
    PIDFile=/run/redis/redis-forum.pid
    ReadWritePaths=-/var/lib/redis_forum
    
    [Service]
    ExecStart=/usr/bin/redis-server /etc/redis/redis_server_6380.conf --supervised systemd --daemonize no
    Restart=always
    LimitNOFILE=10032
    NoNewPrivileges=yes
    #OOMScoreAdjust=-900
    #PrivateTmp=yes
    Type=notify
    TimeoutStartSec=infinity
    TimeoutStopSec=infinity
    UMask=0077
    User=redis
    Group=redis
      
    [Install]
    WantedBy=multi-user.target
    

    Damit ließ sich eine zweite Redis Datenbank starten. In der entsprechenden Konfigurationsdatei von Redis stand dann folgendes.

    /redis_server_6380.conf

    bind 10.10.1.100
    port 6380
    

    Die erste Redisdatenbank läuft auf

    bind 10.10.1.100
    port 6379
    

    Denkt bitte immer daran, die Redis Datenbank möglichst nicht ins Internet zu stellen! Passwort nicht vergessen! Möglichst private Adressen nutzen oder entsprechende Tunnel!

    Damit war der Teil erledigt. Noch die Firewall einstellen und gut. Das könnt ihr hier nachlesen.

    Im NodeBB-Forum dann die entsprechende Konfiguration anpassen.

    {
        "url": "https://DOMAIN",
        "port": "4567",
        "secret": "SECRET",
        "database": "redis",
        "redis": {
            "host": "10.10.1.100",
            "port": "6380",
            "password": "Passwort",
            "database": "0"
        }
    }
    

    Das NodeBB-Forum neustarten und fertig! Yeah! 🙂

    Meine beiden Foren laufen jetzt mit externen Redis-Datenbanken und zwar unabhängig. Jedes Forum hat seine eigen Datenbank! Nun kann ich auch mal ohne Datenverlust mal einen Snapshot zurück installieren, oder auch ein etwas älteres Backup, wenn es mal wieder klemmt.

  • FrankMF FrankM hat am auf dieses Thema verwiesen
  • 0 Stimmen
    1 Beiträge
    26 Aufrufe
    Niemand hat geantwortet
  • Forgejo Installation mit Restic nach Hetzner S3 sichern

    Restic restic linux forgejo
    2
    2
    0 Stimmen
    2 Beiträge
    304 Aufrufe
    FrankMF
    Ich habe ja im obigen Beispiel, den gesamten Ordner von der Postgres Installation gesichert. backup_pfad_postgres="/home/pguser/db-data" Ich habe dann mal ein wenig in der Dokumentation gelesen und das hier gefunden. https://www.postgresql.org/docs/current/app-pgdump.html Einfach den Ordner zu sichern, ist ja bei jeder Datenbank ein gewisses Risiko. Die Konsistenz der Daten ist nicht gesichert. Darum gibt es bei den Datenbanken auch immer Tools, mit denen man die Daten sichern kann. In der Doku steht folgendes. pg_dump — extract a PostgreSQL database into a script file or other archive file Aber wichtiger ist das hier. pg_dump is a utility for backing up a PostgreSQL database. It makes consistent backups even if the database is being used concurrently. pg_dump does not block other users accessing the database (readers or writers). Das macht also konsistente Backups. Wichtig noch zu wissen ist folgendes. pg_dump only dumps a single database. To back up an entire cluster, or to back up global objects that are common to all databases in a cluster (such as roles and tablespaces), use pg_dumpall. Ok, das scheint gut geeignet zu sein, um die Datenbank zu sichern. Aber, wie? Auf meinen Eingangsbeitrag kam es zu folgendem Dialog auf Mastodon. https://nrw.social/deck/@nebucatnetzer@social.linux.pizza/114132208440509237 Das war der Anstoß sich mit dem Thema zu beschäftigen. Und ich hatte dann folgende Lösung. podman exec -it postgres pg_dump -U postgres -f /var/lib/postgresql/data/dump.txt Ok, was mache ich hier? Wir führen einen Befehl vom Host aus gesehen, im Container aus. podman exec -it postgres Der Teil führt den folgenden Befehl im Container aus. pg_dump -U postgres -f /var/lib/postgresql/data/dump.txt pg_dump - Das Tool fürs Backup -U postgres - Der Befehl wird als User postgres ausgeführt -f /var/lib/postgresql/data/dump.txt - Das Dump File wird im Data Ordner abgelegt, den haben wir ja persistent auf dem Host. Somit kann ich das jetzt einfach in mein Backup Script einbauen und brauchen nicht mehr den ganzen Ordner zu kopieren, sondern nur noch das Dump File. Ich werde diese Änderungen in das obige Script einbauen.
  • Debian Bookworm 12.5 released

    Linux linux debian
    3
    0 Stimmen
    3 Beiträge
    251 Aufrufe
    FrankMF
    Und hier taucht es dann auf -> https://www.debian.org/News/2024/20240210
  • FrOSCon 18

    Linux froscon linux opensource
    1
    0 Stimmen
    1 Beiträge
    112 Aufrufe
    Niemand hat geantwortet
  • Star64 - Warnung

    Angeheftet Star64 star64 risc-v linux
    1
    0 Stimmen
    1 Beiträge
    114 Aufrufe
    Niemand hat geantwortet
  • Kopia - Mounten einer Sicherung

    Verschoben Kopia kopia linux
    1
    1
    0 Stimmen
    1 Beiträge
    239 Aufrufe
    Niemand hat geantwortet
  • FAN control OMV Auyfan 0.10.12: gitlab-ci-linux-build-184, Kernel 5.6

    Linux linux
    12
    1 Stimmen
    12 Beiträge
    1k Aufrufe
    M
    Hi, since I'm currently change my rockpro64 setup I came across this. With the kernel from ayufan you need to set PWM_CTL to /sys/devices/platform/pwm-fan/hwmon/hwmon3/pwm1 for my self compiled one I need /sys/devices/platform/pwm-fan/hwmon/hwmon0/pwm1 But I got it only working with one entry for PWM_CTL e.g. PWM_CTL = "/sys/devices/platform/pwm-fan/hwmon/hwmon0/pwm1", after that you need to start ats again sudo systemctl stop ats sudo systemctl start ats initially the fan should start immediately for a short period of time. In case it is even a different one on your kernel you can find the right one using this command. sudo find /sys -name pwm1 | grep hwmon So far I'm not sure which kernel parameter or modul changes this. Martin
  • Installation von Grav & NGinx & PHP7.2

    Angeheftet Verschoben Grav grav linux
    2
    1
    0 Stimmen
    2 Beiträge
    1k Aufrufe
    FrankMF
    Nachdem ich den ROCKPro64 jetzt auf den Mainline umgestellt habe, lief meine Testinstallation von Grav nicht mehr. Hilfreiche Sache um das Problem zu lösen -> https://gist.github.com/GhazanfarMir/03bd1f1f770a3834d47274586d46ea62 Ich bekam immer 502 Bad Gateway, Grund war ein nicht korrekt gestarteter php-pfm Service. rock64@rockpro64v2_0:/usr/local/bin$ sudo service php7.2-fpm start rock64@rockpro64v2_0:/usr/local/bin$ sudo service php7.2-fpm status ● php7.2-fpm.service - The PHP 7.2 FastCGI Process Manager Loaded: loaded (/lib/systemd/system/php7.2-fpm.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2018-08-16 20:15:20 CEST; 21s ago Docs: man:php-fpm7.2(8) Main PID: 3206 (php-fpm7.2) Status: "Processes active: 0, idle: 2, Requests: 3, slow: 0, Traffic: 0.2req/sec" Tasks: 3 (limit: 4622) CGroup: /system.slice/php7.2-fpm.service ├─3206 php-fpm: master process (/etc/php/7.2/fpm/php-fpm.conf) ├─3207 php-fpm: pool www └─3208 php-fpm: pool www Aug 16 20:15:19 rockpro64v2_0 systemd[1]: Starting The PHP 7.2 FastCGI Process Manager... Aug 16 20:15:20 rockpro64v2_0 systemd[1]: Started The PHP 7.2 FastCGI Process Manager.