TYPO3 Replication

Es sollen bei einer TYPO3 Installation bei kleinen Änderungen am Inhalt die Daten von einem Master-Server zu einem Slave-Server repliziert werden. Das betrifft im Allgemeinen den neuen Text und die neuen Bilder. Dazu muss zwischen den beiden Servern eine SSH Verbindung existieren.

Der Master Server läuft unter openSUSE 11.1 mit TYPO3 Version 4.2.17, der Slave-Server unter Ubuntu 10.04.1 mit TYPO3 Version 4.3.5 (Stand 2011-04-01).

Datenbank replizieren

Voraussetzung ist, dass beide TYPO3 Installationen den gleichen Zeichensatz (UTF8) verwenden, siehe Typo3ConvertToUtf8. Eine Schwierigkeit ist, dass der Slave-Server mit Dynamic-DNS betrieben wird. Im ersten Teil der Aktion wird der MySQL Datenbank Dump erzeugt, gepackt und an den Slave-Server per SSH kopiert. Dazu wurde auf dem Master-Server ein Shell-Script geschrieben. Dieser Shell-Script muss mit root Rechten ausgeführt werden.

#!/bin/bash
# backupDB_rf_ssh.sh
# use: dump rudisflugis mysql database in a .gz file and send to rudiswiki.de/flugis
# needs root rights
# 2011-03-21 RudolfReuter

NOW=$(date +"%Y%m%d%H%M")
FILENAME='dumpDB_rudisflugis-'$NOW'.gz'
mysqldump -u <typo3rootmaster> -p<password>  rudisflugis | gzip >$FILENAME

# 2011-03-08 RudolfReuter get IP number from SSH connect of user "rudi"
# Problem is, that regfish routes for DynDNS just ports 80 (web) and 25 (email)
# needs root rights (netstat -p)
SSHIP=`netstat -tnp | grep "rudi"  | cut -d" " -f23-60 | cut -d: -f1 | tr -d [:blank:]`
echo "SSH-IP: " $SSHIP

# copy database file to home, and show progress
scp -p $FILENAME rudi@$SSHIP:rudisflugis/

Im zweiten Teil wird auf dem Slave-Server die kopierte Datenbank File (.SQL) in die Datenbank per Shell-Script kopiert. Voraussetzung ist, dass immer nur ein Datenbank File dumpDB_rudisflugis-*.gz im Ordner existiert. Ältere Versionen muss man vorher löschen.

Nach dem einspielen des Datenbank Files muss in dem TYPO3 Backend mit einem Klick auf den gelben Blitz "Clear all caches" angeklickt werden. Dann sollte alles normal funktionieren. Alternativ kann man auch vorher im TYPO3 Backend von www.rudisflugis.de alle Caches löschen. Dann ist der Datenbank File zum Transfer etwas kleiner.

#!/bin/bash 
# file: restoreDB_rudisflugis.sh
# 2011-03-17 RudolfReuter

NOFILES=`ls -ls dumpDB_rudisflugis-*.gz | wc -l`
if [ $NOFILES -gt 1  ]; then
  echo "Error: only one dump file allowed in folder"
  exit 1
fi
sudo gunzip -c dumpDB_rudisflugis-*.gz | mysql -u <root> -p<password>  rudisflugis

Bilder replizieren

Die Bilder werden mit rsynch abgeglichen. Anschließend wird noch der owner auf den lokalen Standard gesetzt.

#!/bin/sh
# 2011-03-31 RudolfReuter
# synchronize www9 TYPO3 pics to local folder

# sudo asks for a password
# option -e ssh - asks for remote password of user rudisflugis - j.......
# option -a - archive mode
# option -v - verbose mode
# IMPORTANT: both folders must have a "/" at the end of the path.
 
sudo rsync -e ssh -av rudisflugis@www9.ipw.net:/vol2/www/www.rudisflugis.de/uploads/pics/ /var/lib/typo3-dummy/uploads/pics/
sudo chown -R www-data:www-data /var/lib/typo3-dummy/uploads/pics/

Liste der Seiten in dieser category:

-- RudolfReuter 2011-04-01 18:37:00


Go back to CategoryTypo3 or StartSeite ; KontaktEmail (ContactEmail)

Typo3Replication (last edited 2013-01-10 04:20:06 by dslb-084-058-165-157)