Koozali.org: home of the SME Server

Restore OX Funktioniert !

Fraunhofer

Restore OX Funktioniert !
« on: January 02, 2007, 09:20:56 PM »
Für alle die es noch nicht gelesen/gemacht haben

http://forums.contribs.org/index.php?topic=34388.0


ich habe es eben genau wie beschrieben ausgeführt und siehe da , endlich hat man eine Sicherung die auch Funktioniert....


So nun kann ich aber echt besser schlafen :)

uhiii

Gesundes Neues Jahr !

Marcel

Offline yythoss

  • *
  • 532
  • +0/-0
    • http://www.hylafax-client.de
Restore OX Funktioniert !
« Reply #1 on: January 03, 2007, 11:17:03 AM »
Bei mir geht es leider immer noch nicht, ich glaube es sind bei mir die Passwörter, die unverschlüsselt wiederhergestellt werden.
Nach dem Restore erscheint:

ERROR: Session doesn't exist

Verwende ich dann scan_users.sh funktioniert wieder alles, aber die alten Daten sind weg.

Gruß yythoss

Fraunhofer

Restore OX Funktioniert !
« Reply #2 on: January 03, 2007, 01:38:39 PM »
also erst intiall_ox ,,, in verbindung mit dem verbesserten rebuild_db.sh , entsteht dann eine backupfähige Datenbank.

dann Daten einstellen , Backup machen.... Daten löschen.

Recover machen... dann die Dienste restarten
service postgresql restart
service ldap restart
service open-xchange restart

jetzt erst scan_user.sh.

Versuch nochmal ,, hab vertrauen es geht wirklich.

Marcel

Offline yythoss

  • *
  • 532
  • +0/-0
    • http://www.hylafax-client.de
Restore OX Funktioniert !
« Reply #3 on: January 03, 2007, 05:21:10 PM »
Es sieht so aus, als würden alle scrpite laufen, außer restore_ox bringt mir folgende Felermeldung:

./restore_ox: line 182: syntax error: unexpected end of file

Das File hat genau 182 Zeilen. Mit dem vi sieht man ein Syntaxproblem in Zeile 76 bei EOF. Da ich leider mit der shell nicht so fitt bin kann Du mir evt. die scripts zuschicken. Ich habe restore_ox mit copy/paste erzeugt, direkt im vi.

Gruß yythoss

Fraunhofer

Restore OX Funktioniert !
« Reply #4 on: January 04, 2007, 08:46:13 AM »
nimm für sowas doch Winscp ,,,


da kannste dir das wenigstens mal richtig ansehen...

bg Marcel

Offline yythoss

  • *
  • 532
  • +0/-0
    • http://www.hylafax-client.de
Restore OX Funktioniert !
« Reply #5 on: January 04, 2007, 09:59:14 AM »
I habe mir der Console und dem vi keine Probleme, lediglich bei dem file restore_xo scheint es auf dem HTML Seite ein Problem zu geben.
Falls Du ein funktionierendes restore_xo haben solltest, kannst Du es ja hier nochmals posten, oder wenn Du willst kannst Du mir das per Email mal zusenden, dann kann ich den Fehler hier posten.

yythoss

Fraunhofer

Restore OX Funktioniert !
« Reply #6 on: January 04, 2007, 10:36:54 AM »
hast alle drei dateien eingespielt?



backup_ox

Code: [Select]


#!/bin/bash
#
# by vincent Filali-ansary filali.v@free.fr
#

PATH=/usr/local/sbin:$PATH
export PATH


function OXbackup() {
DOM=`/sbin/e-smith/db configuration get DomainName`

service ldap restart 2>&1 >/dev/null
cp -f /home/e-smith/db/ldap/${DOM}.ldif /home/e-smith/db/ldap/${DOM}.ldif.bak

[ ! -d /home/e-smith/db/pgsql ] && mkdir /home/e-smith/db/pgsql
su postgres -c'pg_dump -Fc -b openexchange -v' > /home/e-smith/db/pgsql/ox_${DOM}.sql

[ ! -d /home/e-smith/open-xchange ] && mkdir /home/e-smith/open-xchange
/usr/bin/rsync -aur --delete /usr/local/open-xchange/var /home/e-smith/open-xchange
}

function OXbackupHa() {
DOM=`/sbin/e-smith/db configuration get DomainName`

service ldap restart 2>&1 >/dev/null
cp -f /home/e-smith/db/ldap/${DOM}.ldif /home/e-smith/db/ldap/${DOM}.ldif.bak
[ ! -d /home/e-smith/files/db/ldap ] && mkdir -p /home/e-smith/files/db/ldap
cp -f /home/e-smith/db/ldap/${DOM}.ldif /home/e-smith/files/db/ldap/${DOM}.ldif
cp -f /home/e-smith/db/ldap/${DOM}.ldif /home/e-smith/files/db/ldap/${DOM}.ldif.bak

[ ! -d /home/e-smith/db/pgsql ] && mkdir /home/e-smith/db/pgsql
su postgres -c'pg_dump -Fc -b openexchange -v' > /home/e-smith/db/pgsql/ox_${DOM}.sql
[ ! -d /home/e-smith/files/db/pgsql ] && mkdir -p /home/e-smith/files/db/pgsql
su postgres -c'pg_dump -Fc -b openexchange -v' > /home/e-smith/files/db/pgsql/ox_${DOM}.sql

[ ! -d /home/e-smith/open-xchange ] && mkdir /home/e-smith/open-xchange
/usr/bin/rsync -aur --delete /usr/local/open-xchange/var /home/e-smith/open-xchange

[ ! -d /home/e-smith/files/saves/open-xchange ] && mkdir -p /home/e-smith/files/saves/open-xchange
/usr/bin/rsync -aur --delete /usr/local/open-xchange/var /home/e-smith/files/saves/open-xchange
}

# check for heartbeat system
if [ -x /usr/local/sbin/getnode ]; then
MYNODE=`getnode`
HERIP=`getnode --mirror --ip`
HERNAME=`getnode --mirror`
# first thing verify if whe are the active node
ACTIV=`/sbin/e-smith/db heartbeat getprop nodes Active`

if [ $MYNODE == $ACTIV ]; then
OXbackupHa
fi
else
OXbackup
fi

Offline yythoss

  • *
  • 532
  • +0/-0
    • http://www.hylafax-client.de
Restore OX Funktioniert !
« Reply #7 on: January 04, 2007, 10:50:00 AM »
Ja, ich habe alle files eingespielt!
Mir ging es jedoch um die restore_ox und nicht um das backup_ox.
Ich habe im restore_ox auch schon Fehler gefunden. Die Service werden nicht gestartet:

function StartServices() {
#########################################################################
service service postgresql start 2>&1 >/dev/null
service service ldap start 2>&1 >/dev/null
service open-xchange start 2>&1 >/dev/null
[ -x /etc/rc.d/init.d/oxserve-scandir ] && service oxserve-scandir start 2>&1 >/dev/null
[ -x /etc/rc.d/init.d/oxserve-index ] && service oxserve-index start 2>&1 >/dev/null
}


muss geändert werden in:

function StartServices() {
#########################################################################
service postgresql start 2>&1 >/dev/null
service ldap start 2>&1 >/dev/null
service open-xchange start 2>&1 >/dev/null
[ -x /etc/rc.d/init.d/oxserve-scandir ] && service oxserve-scandir start 2>&1 >/dev/null
[ -x /etc/rc.d/init.d/oxserve-index ] && service oxserve-index start 2>&1 >/dev/null
}

Vielleicht kannst Du ja mal Dein restore_xo posten.
Ich bleib dran und such weiter nach dem Fehler.

yythoss

Fraunhofer

Restore OX Funktioniert !
« Reply #8 on: January 04, 2007, 01:02:40 PM »
Code: [Select]
#!/bin/bash

PATH=/usr/local/sbin:$PATH
export PATH

function StopServices() {
#########################################################################
[ -x /etc/rc.d/init.d/oxserve-scandir ] && /etc/init.d/oxserve-scandir stop 2>&1 >/dev/null
[ -x /etc/rc.d/init.d/oxserve-index ] && /etc/init.d/oxserve-index stop 2>&1 >/dev/null
service open-xchange stop 2>&1 >/dev/null
service postgresql stop 2>&1 >/dev/null
service ldap stop 2>&1 >/dev/null
}

function StartServices() {
#########################################################################
service service postgresql start 2>&1 >/dev/null
service service ldap start 2>&1 >/dev/null
service open-xchange start 2>&1 >/dev/null
[ -x /etc/rc.d/init.d/oxserve-scandir ] && service oxserve-scandir start 2>&1 >/dev/null
[ -x /etc/rc.d/init.d/oxserve-index ] && service oxserve-index start 2>&1 >/dev/null
}

function RestoreOX() {
DOMAIN=`/sbin/e-smith/db configuration get DomainName`
if [ -z $DOMAIN ]; then
echo "error : the domain is unknow"
exit 1
fi
if [ ! -f /home/e-smith/db/pgsql/ox_$DOMAIN.sql ]; then
echo "error : "
echo "file /home/e-smith/db/pgsql/ox_$DOMAIN.sql doesn't exists, unable to restore"
exit 1
fi
if [ ! -f /home/e-smith/db/ldap/$DOMAIN.ldif.bak ]; then
echo "error : "
echo "file /home/e-smith/db/ldap/$DOMAIN.ldif.bak doesn't exists, unable to restore"
exit 1
fi
if [ ! -d /home/e-smith/open-xchange ]; then
echo "error : "
echo "files /home/e-smith/open-xchange/ doesn't exists, unable to restore"
exit 1
fi

StopServices

##########################################################################
# LDAP
rm -f /var/lib/ldap/*
slapadd -l /home/e-smith/db/ldap/$DOMAIN.ldif.bak
chown -R ldap:ldap /var/lib/ldap
service ldap start 2>&1 >/dev/null

###########################################################################
# Postgresql

/sbin/e-smith/expand-template /var/lib/pgsql/data/postgresql.conf
/sbin/e-smith/expand-template /var/lib/pgsql/data/pg_hba.conf
chown -R postgres:postgres /var/lib/pgsql
chmod 600 /var/lib/pgsql/data/postgresql.conf
chmod 600 /var/lib/pgsql/data/pg_hba.conf

service postgresql start 2>&1 >/dev/null
su postgres -c'pg_dump -Fc -b openexchange -v' > /home/e-smith/db/pgsql/openexchange.sql.bak
su - -c'dropdb openexchange' postgres
su - -c'dropuser openexchange' postgres
su - -c'createdb --template=template0 -E UNICODE -e openexchange' postgres
su - -c'psql -a -e -d openexchange -e -f /usr/local/open-xchange/share/createuser.sql' postgres

rm -f /tmp/temp_ox.sh
cat <<-EOF >/tmp/temp_ox.sh
#!/bin/bash
su postgres -c'pg_restore -d openexchange -v /home/e-smith/db/pgsql/ox_${DOMAIN}.sql'

EOF
chmod 755 /tmp/temp_ox.sh
exec /tmp/temp_ox.sh
rm -f /tmp/temp_ox.sh

# check for an upgrade
if [ -x /usr/local/open-xchange/share/upgrades/check4upgrade.sh ]; then
/usr/local/open-xchange/share/upgrades/check4upgrade.sh
fi

###############################################################################
# FILES

/usr/bin/rsync -aur --delete /home/e-smith/open-xchange/var /usr/local/open-xchange

StartServices

}
##############################################################################################################################################

function RestoreOXHA() {
DOMAIN=`/sbin/e-smith/db configuration get DomainName`
if [ -z $DOMAIN ]; then
echo "error : the domain is unknow"
exit 1
fi
if [ ! -f /home/e-smith/files/db/pgsql/ox_$DOMAIN.sql ]; then
echo "error : "
echo "file /home/e-smith/files/db/pgsql/ox_$DOMAIN.sql doesn't exists, unable to restore"
exit 1
fi
if [ ! -f /home/e-smith/files/db/ldap/$DOMAIN.ldif.bak ]; then
echo "error : "
echo "file /home/e-smith/files/db/ldap/$DOMAIN.ldif.bak doesn't exists, unable to restore"
exit 1
fi
if [ ! -d /home/e-smith/files/saves/open-xchange ]; then
echo "error : "
echo "files /home/e-smith/files/saves/open-xchange/ doesn't exists, unable to restore"
exit 1
fi

StopServices


##########################################################################
# LDAP
rm -f /var/lib/ldap/*
slapadd -l /home/e-smith/files/db/ldap/$DOMAIN.ldif.bak
chown -R ldap:ldap /var/lib/ldap
service ldap start 2>&1 >/dev/null

###########################################################################
# Postgresql

/sbin/e-smith/expand-template /var/lib/pgsql/data/postgresql.conf
/sbin/e-smith/expand-template /var/lib/pgsql/data/pg_hba.conf
chown -R postgres:postgres /var/lib/pgsql
chmod 600 /var/lib/pgsql/data/postgresql.conf
chmod 600 /var/lib/pgsql/data/pg_hba.conf

service postgresql start 2>&1 >/dev/null
su postgres -c'pg_dump -Fc -b openexchange -v' > /home/e-smith/files/db/pgsql/openexchange.sql.bak
su - -c'dropdb openexchange' postgres
su - -c'dropuser openexchange' postgres
su - -c'createdb --template=template0 -E UNICODE -e openexchange' postgres
su - -c'psql -a -e -d openexchange -e -f /usr/local/open-xchange/share/createuser.sql' postgres

rm -f /tmp/temp_ox.sh
cat <<-EOF >/tmp/temp_ox.sh
#!/bin/bash
su postgres -c'pg_restore -d openexchange -v /home/e-smith/db/pgsql/ox_${DOMAIN}.sql'

EOF
chmod 755 /tmp/temp_ox.sh
exec /tmp/temp_ox.sh
rm -f /tmp/temp_ox.sh

# check for an upgrade
if [ -x /usr/local/open-xchange/share/upgrades/check4upgrade.sh ]; then
/usr/local/open-xchange/share/upgrades/check4upgrade.sh
fi

###############################################################################
# FILES

/usr/bin/rsync -aur --delete /home/e-smith/files/saves/open-xchange/var /usr/local/open-xchange

StartServices

}
###################################################################################################################
# check for heartbeat system
if [ -x /usr/local/sbin/getnode ]; then
MYNODE=`getnode`
HERIP=`getnode --mirror --ip`
HERNAME=`getnode --mirror`
# first thing verify if whe are the active node
ACTIV=`/sbin/e-smith/db heartbeat getprop nodes Active`

if [ $MYNODE == $ACTIV ]; then
RestoreOXHA
fi
else
RestoreOX
fi

Offline yythoss

  • *
  • 532
  • +0/-0
    • http://www.hylafax-client.de
Restore OX Funktioniert !
« Reply #9 on: January 04, 2007, 09:53:54 PM »
Ich habe Dein script versucht, jedoch mit selben Ergebniss.
Ich habe nun mal das script angepasst und mit folgender Prozedur bin ich nun auch zum Ziel gekommen.

Alles files von oben, bis auf restore_ox sind OK und können verwendet werden.

1.) initall_ox ausführen

2.) Daten erzeugen

3.) backup_ox ausführen

4.) Nun bin ich von einem Datenverlust ausgegangen und habe OX neu inizialisiert mit initall_ox und hatte ein neues OX ohne Daten.

5.) mit der neuen angepassten restore_ox alle Daten wieder hergestellt.

Dieser restore_ox wird bei jedem signal-event post-upgrade durchgeführt!

Hier nun das restore_ox:
 
Code: [Select]
#!/bin/bash

PATH=/usr/local/sbin:$PATH
export PATH

function StopServices() {
#########################################################################
service open-xchange stop 2>&1 >/dev/null
service postgresql stop 2>&1 >/dev/null
service ldap stop 2>&1 >/dev/null
}

function StartServices() {
#########################################################################
service postgresql start 2>&1 >/dev/null
service ldap start 2>&1 >/dev/null
service open-xchange start 2>&1 >/dev/null
}

function RestoreOX() {
DOMAIN=`/sbin/e-smith/db configuration get DomainName`
if [ -z $DOMAIN ]; then
echo "error : the domain is unknow"
exit 1
fi
if [ ! -f /home/e-smith/db/pgsql/ox_$DOMAIN.sql ]; then
echo "error : "
echo "file /home/e-smith/db/pgsql/ox_$DOMAIN.sql doesn't exists, unable to restore"
exit 1
fi
if [ ! -f /home/e-smith/db/ldap/$DOMAIN.ldif.bak ]; then
echo "error : "
echo "file /home/e-smith/db/ldap/$DOMAIN.ldif.bak doesn't exists, unable to restore"
exit 1
fi
if [ ! -d /home/e-smith/open-xchange ]; then
echo "error : "
echo "files /home/e-smith/open-xchange/ doesn't exists, unable to restore"
exit 1
fi

StopServices

##########################################################################
# LDAP
rm -f /var/lib/ldap/*
slapadd -l /home/e-smith/db/ldap/$DOMAIN.ldif.bak
chown -R ldap:ldap /var/lib/ldap
service ldap start 2>&1 >/dev/null

###########################################################################
# Postgresql

/sbin/e-smith/expand-template /var/lib/pgsql/data/postgresql.conf
/sbin/e-smith/expand-template /var/lib/pgsql/data/pg_hba.conf
chown -R postgres:postgres /var/lib/pgsql
chmod 600 /var/lib/pgsql/data/postgresql.conf
chmod 600 /var/lib/pgsql/data/pg_hba.conf

service postgresql start 2>&1 >/dev/null
su postgres -c'pg_dump -Fc -b openexchange -v' > /home/e-smith/db/pgsql/openexchange.sql.bak
su - -c'dropdb openexchange' postgres
su - -c'dropuser openexchange' postgres
su - -c'createdb --template=template0 -E UNICODE -e openexchange' postgres
su - -c'psql -a -e -d openexchange -e -f /usr/local/open-xchange/share/createuser.sql' postgres


#!/bin/bash
su postgres -c'pg_restore -d openexchange -v /home/e-smith/db/pgsql/ox_'$DOMAIN'.sql'


###############################################################################
# FILES

/usr/bin/rsync -aur --delete /home/e-smith/open-xchange/var /usr/local/open-xchange

StartServices
/usr/local/open-xchange/sbin/scan_users.sh

}
##############################################################################################################################################

function RestoreOXHA() {
DOMAIN=`/sbin/e-smith/db configuration get DomainName`
if [ -z $DOMAIN ]; then
echo "error : the domain is unknow"
exit 1
fi
if [ ! -f /home/e-smith/files/db/pgsql/ox_$DOMAIN.sql ]; then
echo "error : "
echo "file /home/e-smith/files/db/pgsql/ox_$DOMAIN.sql doesn't exists, unable to restore"
exit 1
fi
if [ ! -f /home/e-smith/files/db/ldap/$DOMAIN.ldif.bak ]; then
echo "error : "
echo "file /home/e-smith/files/db/ldap/$DOMAIN.ldif.bak doesn't exists, unable to restore"
exit 1
fi
if [ ! -d /home/e-smith/files/saves/open-xchange ]; then
echo "error : "
echo "files /home/e-smith/files/saves/open-xchange/ doesn't exists, unable to restore"
exit 1
fi

StopServices


##########################################################################
# LDAP
rm -f /var/lib/ldap/*
slapadd -l /home/e-smith/files/db/ldap/$DOMAIN.ldif.bak
chown -R ldap:ldap /var/lib/ldap
service ldap start 2>&1 >/dev/null

###########################################################################
# Postgresql

/sbin/e-smith/expand-template /var/lib/pgsql/data/postgresql.conf
/sbin/e-smith/expand-template /var/lib/pgsql/data/pg_hba.conf
chown -R postgres:postgres /var/lib/pgsql
chmod 600 /var/lib/pgsql/data/postgresql.conf
chmod 600 /var/lib/pgsql/data/pg_hba.conf

service postgresql start 2>&1 >/dev/null
su postgres -c'pg_dump -Fc -b openexchange -v' > /home/e-smith/files/db/pgsql/openexchange.sql.bak
su - -c'dropdb openexchange' postgres
su - -c'dropuser openexchange' postgres
su - -c'createdb --template=template0 -E UNICODE -e openexchange' postgres
su - -c'psql -a -e -d openexchange -e -f /usr/local/open-xchange/share/createuser.sql' postgres


#!/bin/bash
su postgres -c'pg_restore -d openexchange -v /home/e-smith/db/pgsql/ox_'$DOMAIN'.sql'


###############################################################################
# FILES

/usr/bin/rsync -aur --delete /home/e-smith/files/saves/open-xchange/var /usr/local/open-xchange

StartServices
/usr/local/open-xchange/sbin/scan_users.sh

}
###################################################################################################################
# check for heartbeat system
if [ -x /usr/local/sbin/getnode ]; then
MYNODE=`getnode`
HERIP=`getnode --mirror --ip`
HERNAME=`getnode --mirror`
# first thing verify if whe are the active node
ACTIV=`/sbin/e-smith/db heartbeat getprop nodes Active`

if [ $MYNODE == $ACTIV ]; then
RestoreOXHA
fi
else
RestoreOX
fi

Offline yythoss

  • *
  • 532
  • +0/-0
    • http://www.hylafax-client.de
Restore OX Funktioniert !
« Reply #10 on: January 04, 2007, 10:11:24 PM »
Damit Eure postgresql deutsch spricht solltet Ihr folgendes machen.
Die Datei:

Code: [Select]
/etc/e-smith/templates-custom/var/lib/pgsql/data/postgresql.conf/10initbase

folgende Zeilen:
Code: [Select]
LC_MESSAGES = 'fr_FR'
LC_MONETARY = 'fr_FR'
LC_NUMERIC = 'fr_FR'
LC_TIME = 'fr_FR'


wie folgt ändern:

Code: [Select]
LC_MESSAGES = 'de_DE'
LC_MONETARY = 'de_DE'
LC_NUMERIC = 'de_DE'
LC_TIME = 'de_DE'


jetzt noch:

expand-template /var/lib/pgsql/data/postgresql.conf
service postgresql restart

yythoss

Fraunhofer

Restore OX Funktioniert !
« Reply #11 on: January 04, 2007, 10:30:41 PM »
wie bisten da drauf gekommen ?

Offline yythoss

  • *
  • 532
  • +0/-0
    • http://www.hylafax-client.de
Restore OX Funktioniert !
« Reply #12 on: January 04, 2007, 10:31:26 PM »
Was meinst Du?

Offline yythoss

  • *
  • 532
  • +0/-0
    • http://www.hylafax-client.de
Restore OX Funktioniert !
« Reply #13 on: January 04, 2007, 11:01:24 PM »
Der OXtender funktioniert nach dem Restore nicht mehr!

Weitere Tests ergaben, dass nach dem Restore der OXtender nicht mehr funktioniert. Ich bleibe drann und such nach dem Fehler.

yythoss

Fraunhofer

Restore OX Funktioniert !
« Reply #14 on: January 05, 2007, 07:53:15 AM »
Der Oxtender läuft bei mir. Ich habe heute nen Termin mit einem Open Exchange techniker. Der soll mir verraten, wie ich vom Outlook auf, einen Push einleiten kann.

ich hatte es in letzter zeit häufig, daß der user zwar daten im Outlook hatte, diese jedoch nicht an den OpenExchange gesendet wurden.Das stammt noch aus einer Zei als ich kein funktionierendes Backup hatte. da hab ich die DB initiallisiert und dann die vorher Exportierten Daten, wieder importiert und dann ging es auch.

Bloß wär es ja nicht schlecht Adressbücher auf "Knopfdruck" zum Server zu senden.

ich melde mich nachher mit dem Ergebniss.

Marcel