Datenwiederherstellung aus Backup: Unterschied zwischen den Versionen

Aus Glaskugel
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(72 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 5: Zeile 5:
:    -> Domain
:    -> Domain
:    -> Datum der Wiederherstellung
:    -> Datum der Wiederherstellung
:    -> Ordner der Wiederhergestellt werden soll
:    -> Ordner der wiederhergestellt werden soll
:    -> Datenbank die Wiederhergestellt werden soll
:    -> Datenbank die wiederhergestellt werden soll
::        -> probiere vorab immer nur die Dateien wiederherzustellen, oft reicht dies schon aus (es sei denn der Kd hat definitiv die Datenbank kaputt gemacht, z.B. CSV Import oder Shop-Update)
::        -> probiere vorab immer nur die Dateien wiederherzustellen, oft reicht dies schon aus (es sei denn der Kd hat definitiv die Datenbank kaputt gemacht, z.B. CSV Import oder Shop-Update)
::        -> Bei fehlgeschlagen Updates muss immer beides wiederhergestellt werden
::        -> Bei fehlgeschlagen Updates muss immer beides wiederhergestellt werden


== Vorbereiten der Wiederherstellung==
===1. Backup mounten===
:;1.1 Anmeldung im Cloudpit


== Ablauf ==
:;1.2 Suche mittels Suchfunktion den Container, für welchen du das Backup einspielen möchtest  
=== 1. Ordner umbenennen===
 
;Vor der FTP Wiederherstellung musst du den Ordner auf dem FTP-Server umbennen!!
:  -> am besten in Ordner-kaputt z.B. /gx2-kaputt
 
===2. Datenbank exportieren===
;Vor der Datenbankwiederherstellung musst du die Datenbank mittels phpMyAdmin exportieren am besten im gzip oder zip Format (bei Ausgabe klicken)
:    -> Die Datenbankzugangsdaten findest du in der Konfigurationsdatei des Shops (ggf. Googlen)
::        -> Gambio/Modified /includes/configure.php (ganz am Ende)
::        -> JTL /includes/config.JTL-Shop.ini.php
::        -> Wordpress /wp-config.php
===3. bestehende Tabellen in der Datenbank löschen===
-> Nun lösche alle Tabellen (nur die Tabellen inkl. Inhalt, nicht die ganze Datenbank)
 
 
===4. Backup mounten===
 
 
    # Anmeldung in der Cloudpit (https://cloudpit.io/auth/login) Zgd. findest du in Keepass (Cloudpit www Server)
 
    # Suche dir den Container raus für welches du das Backup einspielen möchtest (z.B www70.estugo.de)
    
    
    # Suche dir unter "Datensicherung" das vom Kunden gewünschte Backup raus (z.B vom 30.01)
:;1.3 Suche dir unter "Datensicherung" das vom Kunden gewünschte Backup raus  
    
    
    # Klicke unter Aktionen auf "Backup mounten"
:;1.4 Klicke unter Aktionen auf '''"Backup mounten"'''
::Achtung!!! Ausschließlich Backup mounten


    # Warte bis das Backup gemountet wurde
:;1.5 Warte bis das Backup gemountet wurde
::Das Backup befindet sich nun im Ordner /mnt


===2. Ordner backup_*datum* erstellen===
:;Melde Dich als ''admin'' im Plesk an


4.) Verbinde dich per Putty auf den Container (z.B www70.estugo.de)
:;Wechsele in das Abo des Kunden


::Lege im Basisverzeichnis der Dateiverwaltung des Kunden (also auf oberster Ebene) den Ordner '''''backup_*datum*''''' an.


    - Datenbank wiederherstellen
== Wiederherstellung aus Backup in der Shell==


    - vorher via phpMyAdmin Backup ziehen wie oben beschrieben, dann alle Tabellen aus der Datenbank löschen
=== Verbinde dich per Putty auf den Container (z.B. www70.estugo.de)===
:;Melde Dich als User ''root'' auf dem Server an


    - Datenbank via Shell in /tmp kopieren und entpacken
===DATENBANK wiederherstellen===
    cp -a /mnt/var/lib/mysql-gzdumps/usr_web10_2.sql.gz /tmp/ && gunzip /tmp/usr_web10_2.sql.gz


    - Datenbank wiederherstellen
:;Datenbank via Shell aus dem Ordner /mnt in den Ordner /backup_estugo im Kundenabo kopieren und entpacken
    mysql -uadmin -p`cat /etc/psa/.psa.shadow` usr_web10_2 < /tmp/usr_web10_2.sql
::Hierzu hast Du als Vorbereitung den Ordner '''''backup_estugo''''' im Basisverzeichnis des Kunden angelegt.
::Der folgende Befehl kopiert und entpackt die Datenbank aus /mnt in das Verzeichnis des Kunden: (Achtung Dokumentenstamm und DB-Name anpassen)
:::<code>cp -a /mnt/var/lib/mysql-gzdumps/'''''XXX_XX'''''.sql.gz /var/www/vhosts/'''''XXX.XXX'''''.hostkraft.de/backup_estugo/ && gunzip /var/www/vhosts/'''''XXX.XXX'''''.hostkraft.de/backup_estugo/'''''XXX_XXX'''''.sql.gz</code>


    Datenbank aus TMP wieder löschen
:;Im Anschluss Benutzer anpassen:
    rm -f /tmp/####.sql
::Die Datenbank hat nun den Nutzer "root", damit der Kunde die Datei auch löschen kann, muss der Richtige Nutzer angepasst werden (meist der erste Teil der Subdomain)
:::<code>chown -R '''''############''''':psacln /var/www/vhosts/'''''XXX.XXX'''''.hostkraft.de/backup_estugo/'''''XXX_XXX'''''.sql</code>


    4.5) Daten auf dem Container zu finden unter /mnt
:;Um eine Datenbankbackup aus dem direkten Ordner /mnt/var/lib/mysql zu  besorgen zB wenn unser CronJob nicht klappte siehe weiter unten den Punkt Bonus DB
    - auf z.B. www71.estugo.de via SSH anmelden dann entsprechendes KOPIEREN, z.B.:


    rsync -arvuP /mnt/var/www/vhosts/web10.www7.hostkraft.de/html/gx2 /var/www/vhosts/web10.www7.hostkraft.de/html/
===FTP-DATEN wiederherstellen===


    Oder:
:;Am Besten wird es sein, Du startest das Backup in einer [[Screen-Session]]
 
::Nutze hierzu folgenden Befehl: <code>screen</code>
    shopt -s dotglob; cp -r -a /mnt/var/www/vhosts/#####/httpdocs/gx2
::Die Wiederherstellung läuft dann auch im Hintergrund weiter falls Du aus irgend einem Grund selbst aus der SSH Session "fliegst"
    /var/www/vhosts/#####/httpdocs/
 
:;Die Daten aus dem Backup sind durch das Mounten auf dem Container eingehängt und zu finden im Ordner /mnt
 
::auf z.B. www71.estugo.de via SSH anmelden dann entsprechendes aus dem Ordner /mnt in den Ordner backup_estugo KOPIEREN
5. Kunde informieren Vorlage im OTRS -> "Backup wiederherstellen"
::Passe im folgenden Befehl einfach den kompletten Ordnerpfad im ersten Teil an, im zweiten Teil nur den Namen der Subdomain.
 
    -> Informiere den Kunden über den Status
    -> ersetze Anrede und Ordnernamen
    -> lasse das Ticket offen
 
-----
Hallo Herr xxxxx,
 
die Daten werden nun wie gewünscht wiederhergestellt, ich habe den Ordner /html/gx2 nach /html/gx2-kaputt umbenannt.
 
Sobald die Daten wiederhergestellt wurden, werde ich Sie erneut informieren. Sofern alles geklappt hat, löschen Sie bitte im Anschluss den umbenannten Ordner, um Speicherplatz zu sparen.
-----
 
 
6. Warten auf die Wiederherstellung
    -> Es kann je nach Daten ca. 30-90 Minuten dauern
    -> Sobald die Wiederherstellung abgeschlossen ist, informiere den Kunden
        -> prüfe vorher die Webseite, rufe die Domain auf


::: <code>rsync -arvuP /mnt/var/www/vhosts/'''''XXX.XXX'''''.hostkraft.de/'''''html'''''/'''''gx2''''' /var/www/vhosts/'''''XXX.XXX'''''.hostkraft.de/backup_estugo/</code>
:: um ein Backup zu beschleunigen und ggf unwichtige Ordner auszuschließen, hilt der Zusatz --exclude (siehe Beispiel)
::: <code>rsync -arvuP --exclude=verzeichnis/ /mnt/var/www/vhosts/'''''XXX.XXX'''''.hostkraft.de/'''''html'''''/'''''gx2''''' /var/www/vhosts/'''''XXX.XXX'''''.hostkraft.de/backup_estugo/</code>


7. Kunde informieren Vorlage im OTRS -> "Backup wiederherstellen"
===E-MAILS wiederherstellen (nur zur Info)===


    -> Informiere den Kunden über den Status
:;Daten sind wie gehabt unter dem Ordner /mnt zu finden
    -> ersetze Anrede und Ordnernamen
::- z.B. per midnight commander (<code>mc</code>) den Mailordner des Kunden suchen und mit folgendem Befehl gezielt Dateien aus dem Backup in den Kundenverzeichnis kopieren.
    -> lasse das Ticket offen


-----
::<code>rsync -arvuP /mnt/var/qmail/mailnames/alexa-gmbh.at/office/Maildir/.Sent/cur/ /var/qmail/mailnames/alexa-gmbh.at/office/Maildir/.Sent/cur</code>
Hallo Herr xxxxx,


die Daten werden nun wie gewünscht wiederhergestellt, ich habe den Ordner /#####/### nach /######/####_kaputt umbenannt.
:Hier ein Beispiel für die Wiederherstellung eines ganzen Postfach´s
::<code>rsync -av --delete /mnt/var/qmail/mailnames/tomaske.net/ordner/Maildir /var/qmail/mailnames/tomaske.net/ordner/</code>


Sobald die Daten wiederhergestellt wurden, werde ich Sie erneut informieren. Sofern alles geklappt hat, löschen Sie bitte im Anschluss den umbenannten Ordner, um Speicherplatz zu sparen.
==Nach der Wiederherstellung==
:;-> Es kann je nach Daten ca. 30-90 Minuten dauern
:;-> Sobald die Wiederherstellung abgeschlossen ist, informiere den Kunden


-----
==Backup in Cloudpit abhängen==


     
:;Im Cloudpit unter "Datensicherungen" auf Backup unmounten klicken
8. Backup in Cloudpit abhängen
::(Gekenntzeichnet durch den orange farbenen Balken oberhalb der verfügbaren Backups)


Im Cloudpit unter "Datensicherungen" auf Backup unmounten klicken (Gekenntzeichnet durch den Gelben Balken oberhalb der verfügbaren Backups)
==Eintrag im Bahnhof==
:;-> Damit wir wissen wer wann Daten wiederhergestellt hat, halte dies in der Datenbank fest
:;-> Der Text könnte wie folgt lauten
::-> ersetze Kürzel, Datum und ggfs. den Text


----
::''^mp 18.04.2017:''
Hallo Herr xxxx,
::''MySQL wiederhergestellt''
::''Ordner wiederhergestellt''


die Daten wurden soeben erfolgreich wiederhergestellt, bitte prüfen Sie Ihre Webseite. Bei Problemen wenden Sie sich bitte direkt an "notfall@estugo.de".
==Bonus_DB==


Bitte erstellen Sie vor einer Änderung oder Anpassung eine Datensicherungen in der Verwaltung, siehe:
:; Datenbank direkt Dumpen aus z.B. /mnt/var/lib/mysql und hierin die DB web147_Wordpress


- Plesk: http://www.estugo.de/backup-plesk-erstellen
::Socket für MySQL auf Port 3333 öffnen mit dem /mnt Pfad als Datadir
----
:: <code>mysqld --datadir=/mnt/var/lib/mysql --user=mysql --port=3333 --socket=/tmp/mysqlmc.sock</code>


9. Eintrag in der Datenbank (Bahnhof)
::Dump erstellen
    -> Damit wir wissen wer wann Daten wiederhergestellt hat, halte dies in der Datenbank fest
::<code>mysqldump -uadmin -p$(cat /etc/psa/.psa.shadow) --protocol=socket --socket=/tmp/mysqlmc.sock web147_Wordpress >/root/web147_Wordpress.sql</code>
    -> Der Text könnte wie folgt lauten
        -> ersetze Kürzel, Datum und Text
----
^ew 18.01.2015:
MySQL wiederhergestellt
Ordner wiederhergestellt
----


10. fertig :)
::Socket wieder schließen
::<code>mysql -uadmin -p$(cat /etc/psa/.psa.shadow) --protocol=socket --socket=/tmp/mysqlmc.sock --execute "shutdown;"</code>

Aktuelle Version vom 28. März 2025, 15:02 Uhr

Allgemeines

1. Folgende Daten müssen vorliegen oder vom Kunden angefordert werden
-> Server (siehe alternativ ggf. Bahnhof)
-> Domain
-> Datum der Wiederherstellung
-> Ordner der wiederhergestellt werden soll
-> Datenbank die wiederhergestellt werden soll
-> probiere vorab immer nur die Dateien wiederherzustellen, oft reicht dies schon aus (es sei denn der Kd hat definitiv die Datenbank kaputt gemacht, z.B. CSV Import oder Shop-Update)
-> Bei fehlgeschlagen Updates muss immer beides wiederhergestellt werden

Vorbereiten der Wiederherstellung

1. Backup mounten

1.1 Anmeldung im Cloudpit
1.2 Suche mittels Suchfunktion den Container, für welchen du das Backup einspielen möchtest
1.3 Suche dir unter "Datensicherung" das vom Kunden gewünschte Backup raus
1.4 Klicke unter Aktionen auf "Backup mounten"
Achtung!!! Ausschließlich Backup mounten
1.5 Warte bis das Backup gemountet wurde
Das Backup befindet sich nun im Ordner /mnt

2. Ordner backup_*datum* erstellen

Melde Dich als admin im Plesk an
Wechsele in das Abo des Kunden
Lege im Basisverzeichnis der Dateiverwaltung des Kunden (also auf oberster Ebene) den Ordner backup_*datum* an.

Wiederherstellung aus Backup in der Shell

Verbinde dich per Putty auf den Container (z.B. www70.estugo.de)

Melde Dich als User root auf dem Server an

DATENBANK wiederherstellen

Datenbank via Shell aus dem Ordner /mnt in den Ordner /backup_estugo im Kundenabo kopieren und entpacken
Hierzu hast Du als Vorbereitung den Ordner backup_estugo im Basisverzeichnis des Kunden angelegt.
Der folgende Befehl kopiert und entpackt die Datenbank aus /mnt in das Verzeichnis des Kunden: (Achtung Dokumentenstamm und DB-Name anpassen)
cp -a /mnt/var/lib/mysql-gzdumps/XXX_XX.sql.gz /var/www/vhosts/XXX.XXX.hostkraft.de/backup_estugo/ && gunzip /var/www/vhosts/XXX.XXX.hostkraft.de/backup_estugo/XXX_XXX.sql.gz
Im Anschluss Benutzer anpassen
Die Datenbank hat nun den Nutzer "root", damit der Kunde die Datei auch löschen kann, muss der Richtige Nutzer angepasst werden (meist der erste Teil der Subdomain)
chown -R ############:psacln /var/www/vhosts/XXX.XXX.hostkraft.de/backup_estugo/XXX_XXX.sql
Um eine Datenbankbackup aus dem direkten Ordner /mnt/var/lib/mysql zu besorgen zB wenn unser CronJob nicht klappte siehe weiter unten den Punkt Bonus DB

FTP-DATEN wiederherstellen

Am Besten wird es sein, Du startest das Backup in einer Screen-Session
Nutze hierzu folgenden Befehl: screen
Die Wiederherstellung läuft dann auch im Hintergrund weiter falls Du aus irgend einem Grund selbst aus der SSH Session "fliegst"
Die Daten aus dem Backup sind durch das Mounten auf dem Container eingehängt und zu finden im Ordner /mnt
auf z.B. www71.estugo.de via SSH anmelden dann entsprechendes aus dem Ordner /mnt in den Ordner backup_estugo KOPIEREN
Passe im folgenden Befehl einfach den kompletten Ordnerpfad im ersten Teil an, im zweiten Teil nur den Namen der Subdomain.
rsync -arvuP /mnt/var/www/vhosts/XXX.XXX.hostkraft.de/html/gx2 /var/www/vhosts/XXX.XXX.hostkraft.de/backup_estugo/
um ein Backup zu beschleunigen und ggf unwichtige Ordner auszuschließen, hilt der Zusatz --exclude (siehe Beispiel)
rsync -arvuP --exclude=verzeichnis/ /mnt/var/www/vhosts/XXX.XXX.hostkraft.de/html/gx2 /var/www/vhosts/XXX.XXX.hostkraft.de/backup_estugo/

E-MAILS wiederherstellen (nur zur Info)

Daten sind wie gehabt unter dem Ordner /mnt zu finden
- z.B. per midnight commander (mc) den Mailordner des Kunden suchen und mit folgendem Befehl gezielt Dateien aus dem Backup in den Kundenverzeichnis kopieren.
rsync -arvuP /mnt/var/qmail/mailnames/alexa-gmbh.at/office/Maildir/.Sent/cur/ /var/qmail/mailnames/alexa-gmbh.at/office/Maildir/.Sent/cur
Hier ein Beispiel für die Wiederherstellung eines ganzen Postfach´s
rsync -av --delete /mnt/var/qmail/mailnames/tomaske.net/ordner/Maildir /var/qmail/mailnames/tomaske.net/ordner/

Nach der Wiederherstellung

-> Es kann je nach Daten ca. 30-90 Minuten dauern
-> Sobald die Wiederherstellung abgeschlossen ist, informiere den Kunden

Backup in Cloudpit abhängen

Im Cloudpit unter "Datensicherungen" auf Backup unmounten klicken
(Gekenntzeichnet durch den orange farbenen Balken oberhalb der verfügbaren Backups)

Eintrag im Bahnhof

-> Damit wir wissen wer wann Daten wiederhergestellt hat, halte dies in der Datenbank fest
-> Der Text könnte wie folgt lauten
-> ersetze Kürzel, Datum und ggfs. den Text
^mp 18.04.2017:
MySQL wiederhergestellt
Ordner wiederhergestellt

Bonus_DB

Datenbank direkt Dumpen aus z.B. /mnt/var/lib/mysql und hierin die DB web147_Wordpress
Socket für MySQL auf Port 3333 öffnen mit dem /mnt Pfad als Datadir
mysqld --datadir=/mnt/var/lib/mysql --user=mysql --port=3333 --socket=/tmp/mysqlmc.sock
Dump erstellen
mysqldump -uadmin -p$(cat /etc/psa/.psa.shadow) --protocol=socket --socket=/tmp/mysqlmc.sock web147_Wordpress >/root/web147_Wordpress.sql
Socket wieder schließen
mysql -uadmin -p$(cat /etc/psa/.psa.shadow) --protocol=socket --socket=/tmp/mysqlmc.sock --execute "shutdown;"