Skip to content

KB: Brekz Hosting - BR09SQL001 replica op locatie herstellen

Terug naar klant: Brekz

Deze procedure beschrijft hoe de MySQL Replica op server BR09SQL001 opnieuw wordt opgebouwd.

Serverinformatie

BR09SQL001 is een VPS die bij Brekz op locatie in Utrecht staat. De server wordt gebruikt voor de maatwerk applicatie genaamd PET.

Airtable server documentatie: BR09SQL001

VPN vereist

Toegang tot BR09SQL001 is uitsluitend mogelijk via een VPN verbinding.

De VPN inloggegevens zijn beschikbaar in 1Password: Kluis: flooris hosting · Item: Brekz - VPN

De Brekz VPN heeft WAN IP Whitelisting ingesteld. Verbinding is alleen mogelijk vanaf één van de volgende twee locaties:

  1. Kantoor internetverbinding
  2. Flooris Management VPN server

Relevante informatie

Github: brekz-group/brekz-fail-over-setup


Stap 1: Hetzner SSH verbinding inrichten

Eenmalige inrichting

Deze stap is slechts 1x nodig. Als de SSH verbinding reeds actief is, hoeft deze inrichting niet opnieuw uitgevoerd te worden.

SSH key-pair aanmaken

Genereer een SSH key-pair voor de user flooris op de server BR09SQL001.

Server BR09SQL001
User flooris
Private key pad /home/flooris/.ssh/backup
Public key pad /home/flooris/.ssh/backup.pub
ssh-keygen

Gebruik het volgende pad wanneer gevraagd: /home/flooris/.ssh/backup Gebruik geen passphrase.

Corrigeer daarna de bestandspermissies:

chmod 0700 /home/flooris/.ssh
chmod 0600 /home/flooris/.ssh/*

SSH host inrichten

Pas de SSH config file aan:

nano ~/.ssh/config

Voeg het volgende blok toe aan de SSH config:

Host backup
        User u400407-sub5
        HostName u400407.your-storagebox.de
        IdentityFile /home/flooris/.ssh/backup
        Port 23

Test de verbinding (authenticatie met wachtwoord):

ssh backup

Voeg de SSH public key toe aan de Hetzner Storage Box:

cat /home/flooris/.ssh/backup.pub | ssh -p23 u400407-sub5@u400407.your-storagebox.de install-ssh-key

Verwachte output:

u400407-sub5@u400407.your-storagebox.de's password:
Key No. 1 (ssh-ed25519 flooris@br09sql001) was installed in RFC4716 format
Key No. 1 (ssh-ed25519 flooris@br09sql001) was installed in OpenSSH format

Hetzner Storage Box inloggegevens

De inloggegevens van de Hetzner Storage Box zijn beschikbaar in 1Password onder de titel: Hetzner - Storage box BX11 Brekz (FTP) BX11 #384620


Stap 2: Meest recente back-up downloaden

Hetzner Storage Box beveiliging

Het is cruciaal dat de Hetzner Storage Box na het uitvoeren van deze procedure niet meer bereikbaar is van buitenaf (External reachability). Zet de externe toegang direct na het downloaden weer uit.

2a. Hetzner Storage Box bereikbaar maken van buitenaf

Ga naar de Hetzner Console en zet de externe toegang aan:

Hetzner Console – Storage Box subaccounts

  1. Klik op Edit bij sub-account: u400407-sub5
  2. Enable (aanvinken): External reachability
  3. Sla op

2b. Back-up downloaden via rsync

Gebruik een screen sessie

Het wordt aangeraden deze procedure uit te voeren vanuit een screen sessie, zodat een verbroken verbinding het downloadproces niet onderbreekt.

Bepaal de datum van vandaag (formaat: YYYY-MM-DD) en voer de onderstaande commando's uit:

# flooris@br09sql001:~$

screen

cd /hdbackup/XTRABACKUP/

rsync -av --progress --partial --delete backup:2026-04-07 ./

Pas de datum aan

Vervang 2026-04-07 door de datum van vandaag.

Voorbeeld output:

receiving incremental file list

backup-progress.log
        507,396 100%    4.99MB/s    0:00:00 (xfr#1, to-chk=19/21)
full-04-07-2026_00-45-01.xbstream
  6,866,927,616  49%    3.60MB/s    0:31:32
...

2c. Hetzner Storage Box weer dichtzetten van buitenaf

Zet de externe toegang direct na het downloaden weer uit:

Hetzner Console – Storage Box subaccounts

  1. Klik op Edit bij sub-account: u400407-sub5
  2. Disable (uitvinken): External reachability
  3. Sla op

Vergeet dit niet!

Laat de externe toegang nooit actief staan na het downloaden van de back-up.


Stap 3: Back-up extraheren en voorbereiden

Gebruik de bestaande screen sessie

Voer de onderstaande commando's uit in dezelfde screen sessie als bij stap 2.

3a. Back-up extraheren

Navigeer naar de gedownloade back-up en extraheer het .xbstream bestand:

cd /hdbackup/XTRABACKUP/2026-04-07
extract-mysql.sh *.xbstream

Pas de datum aan

Vervang 2026-04-07 door de datum van de gedownloade back-up.

Volg de voortgang via het logbestand:

tail -f extract-progress.log

3b. Back-up voorbereiden

Nadat de extractie is voltooid, bereid de back-up voor:

cd restore
prepare-mysql.sh

Volg de voortgang via het logbestand:

tail -f prepare-progress.log

Stap 4: MySQL data herstellen

4a. MySQL stoppen en data directory leegmaken

sudo systemctl stop mysql
cd /var/mysql/
sudo rm -rf data
sudo mkdir data
sudo chown -R mysql:mysql data
sudo find /var/mysql/data -type d -exec chmod 750 {} \;

4b. Back-up terugzetten met XtraBackup

sudo xtrabackup --copy-back --target-dir=/hdbackup/XTRABACKUP/2026-04-07/restore/full-04-07-2026_00-45-01

Pas het pad aan

Vervang de datum en mapnaam door de werkelijke waarden van de gedownloade back-up.

4c. Bestandspermissies herstellen en MySQL starten

sudo chown -R mysql:mysql /var/mysql/data
sudo find /var/mysql/data -type d -exec chmod 750 {} \;
sudo systemctl start mysql

4d. Binlog positie opzoeken

Lees de binlog positie uit de herstelde back-up. Deze informatie is nodig voor het instellen van de replicatie in de volgende stap:

cd /hdbackup/XTRABACKUP/2026-04-07/restore/full-04-07-2026_00-45-01
cat xtrabackup_binlog_info

De output bevat het binlog bestand en de positie die je in stap 5 nodig hebt.


Stap 5: MySQL replicatie opnieuw inrichten

Verbind met de MySQL server en stel de replicatie in met de waarden uit xtrabackup_binlog_info:

CHANGE MASTER TO
    MASTER_HOST='176.9.2.189',
    MASTER_PORT=3306,
    MASTER_USER='XXXXXXXXXXXXXXXXXXX',
    MASTER_PASSWORD='XXXXXXXXXXXXXXXXXXX',
    MASTER_LOG_FILE='mysql-bin.0XXXXXX',
    MASTER_LOG_POS=XXX;

Replicatie credentials

De MASTER_USER en MASTER_PASSWORD zijn beschikbaar in 1Password.

Binlog waarden invullen

Vervang MASTER_LOG_FILE en MASTER_LOG_POS door de werkelijke waarden uit het xtrabackup_binlog_info bestand (stap 4d).