Nie wiem kolego czy coś Ci to pomoże ale ja kwestię zapasowego serwera rozwiązałem następująco:
1. Zgrałem po kluczach rsa ze sobą dwa serwery z LMS.
2. Z głównego serwera wykonuje sobie skrypt:

#!/bin/bash
CREATE=`date +%F`
DELETE=`date +%F -d"-28 day"`
ARCHIWUM=`date +%F -d"-1 day"`
rm /backups/lms.sql
wait
sleep 5
mysqldump -u baza_lms -phaslo_lms > /backups/lms.sql
wait
sleep 5

ssh -p 9876 -i /backups/id_rsa root@adres_IP_serwerabackupu "if [ -e /backups/lms.sql ]
then
  cp /backups/lms.sql /backups/archiwum/$CREATE.lms.sql
fi
exit"
wait
ssh -p 9876 -i /backups/id_rsa root@adres_IP_serwerabackupu "if [ -e /backups/lms.sql ]
then
  rm /backups/lms.sql
fi
exit"
ssh -p 9876 -i /backups/id_rsa root@adres_IP_serwerabackupu "if [ -e /backups/archiwum/$DELETE.lms.sql ]
then
  rm /backups/archiwum/$DELETE.lms.sql
fi
exit"
sleep 5
scp -i /root/backups/id_rsa -P 9876 /backups/lms.sql root@adres_IP_serwerabackupu:/backups/lms.sql
wait
sleep 5
ssh -p 9876 -i /backups/id_rsa root@adres_IP_serwerabackupu "if [ -e /backups/lms.sql ]
then
  mysql -u user_bazy_na_serwerze_backupu -phaslo_do_bazy_na_serwerze_backupu lms < /backups/lms.sql
fi
exit"
sleep 5
exit

Skrypt jaki jest każdy widzi, prosty jak budowa cepa.
CREATE=`date +%F`
DELETE=`date +%F -d"-28 day"`
ARCHIWUM=`date +%F -d"-1 day"`

Definicja danych które pozwalają mi segregować logi i tworzyć archiwum na serwerze backupu.
rm /backups/lms.sql
Usunięcie kopii lokalnej backupu z wczoraj


mysqldump -u baza_lms -phaslo_lms > /backups/lms.sql
Wykonanie nowego zrzutu.

ssh -p 9876 -i /backups/id_rsa root@adres_IP_serwerabackupu "if [ -e /backups/lms.sql ]
then
  cp /backups/lms.sql /backups/archiwum/$ARCHIWUM.lms.sql
fi
exit"

Loguje się na serwer backupu za pomocą klucza RSA (9876 to port ssh) i kopiuje do archiwum backup z wczoraj dodając do niego datę z wczoraj.

ssh -p 9876 -i /backups/id_rsa root@adres_IP_serwerabackupu "if [ -e /backups/lms.sql ]
then
  rm /backups/lms.sql
fi
exit"

Usuwam stary backup z folderu roboczego.


ssh -p 9876 -i /backups/id_rsa root@adres_IP_serwerabackupu "if [ -e /backups/archiwum/$DELETE.lms.sql ]
then
  rm /backups/archiwum/$DELETE.lms.sql
fi
exit"
sleep 5

Jeśli istnieje na serwerze kopia starsza niż 27 dni to ją usuwam żeby utrzymać porządek.


scp -i /root/backups/id_rsa -P 9876 /backups/lms.sql root@adres_IP_serwerabackupu:/backups/lms.sql
wait
sleep 5

Kopiuje po scp backup na serwerek.


ssh -p 9876 -i /backups/id_rsa root@adres_IP_serwerabackupu "if [ -e /backups/lms.sql ]
then
  mysql -u user_bazy_na_serwerze_backupu -phaslo_do_bazy_na_serwerze_backupu lms < /backups/lms.sql
fi
exit"
sleep 5
exit

Wrzucam backup bazy danych.

3. Dodałem sobie powyższy skrypt do crona na 4:00 rano żeby nie zakłócać działania (lekki lag przy zgrywaniu kopii bazy).

Sumując: na dwóch serwerach mam identyczne dane za wyjątkiem danych z obecnego dnia. Można sobie robić co godzinę a nawet co 10 minut jak nie masz dużo mało klientów, faktur itd. U mnie to troszkę trwa więc przez dzień tego nie robię. Replikacja się może wysypać ale ten skrypt się nie sypie. Możesz sobie np. wypluć do pliku echo z wykonania i na jego podstawie ponawiać co kilka minut. Pamiętaj tylko żeby funkcje SQL na dwóch serwerach były identycznie dopisane. Ja tym sposobem działam od 10 lat, główny LMS kilka razy mi się wysypał ale conajwyżej 10 nowych klientów dopisanych tego dnia traciło na chwilę neta (jeśli ich rozłączyło co też nie często się u mnie trafia więc tak naprawdę nikt oprócz mnie nie zauważył awarii). Do płaskich plików to można zapisywać jak się ma setkę klientów. Przy większej liczbie klientów znacznie szybsza jest baza mysql. Polecam percone zoptymalizować pod radiusa, obecnie testuję także na MariaDB działa to naprawdę błyskawicznie. Dalej idąc tym tym tokiem możesz nawet działać na dowolnym LMS i porównywać liczbę wierszy w pliku SQL i w zalezności od tego kopiować z backupu na główny lub na odwrót. u mnie jest dużo sleepów po wait bo miałem trochę przywieszek przy dużych bazach (nie wiem dlaczemu) dodanie sleepów po wykonaniu komendy sprawiło że śmiga znakomicie, u Ciebie na 99% będziesz mógł je usunąć i przyśpieszyć.

Pozdrawiam



>Tu nie chodzi o przekonywania, bo logicznym się wydaje że szybsze w
>odszukaniu będzie z pliku. W książce beginners guide piszą właśnie o
>accouningu w bazie ale klientów w plikach.
>Robię przerobke i chcę pozbyć się jednego punktu awarii. Teraz niech coś
>sypnie się z bazą to robi się kaszana.
>Stawiając dwa nie zależne radiusy eliminuje jeden z punktów awarii, ale
>przy bazie nadal zostaje jedna baza bo z PG robić replikacje to masakra.
>Przy płaskich plikach jak będzie ewentualny problem z bazą to najwyżej nie
>wygeneruje się konfig a wsio będzie działać. Pozostaje tylko synchronizacja
>radiusa pod względem accouningu by oba miały spójne dane.