Hyper Backup MariaDB wiederherstellen

Ghost108

Benutzer
Mitglied seit
27. Jun 2015
Beiträge
1.248
Punkte für Reaktionen
70
Punkte
68
Moin!

ich habe eine Situation simuliert, welche ich nun leider nicht zu ende realisieren kann.

- MariaDB im Einsatz
- tägliche HyperBackup Sicherung (00:00 Uhr)

Gestern habe eine Test-Tabelle angelegt.
Dann lief das Backup heute Nacht.
Soeben habe ich diese Test-Tabelle gelöscht.

Nun die Frage:
Wie kann diese Tabelle nun wiederherstellen?
Finde hierzu keine Option bei HyperBackup.
 

Ghost108

Benutzer
Mitglied seit
27. Jun 2015
Beiträge
1.248
Punkte für Reaktionen
70
Punkte
68
UPDATE:
Hat sich erledigt. Habs rausgefunden. Ich muss die ganze Anwendung "MariaDB" wiederherstellen.
 
  • Like
Reaktionen: its

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.259
Punkte für Reaktionen
601
Punkte
174
Wie kann diese Tabelle nun wiederherstellen?
Diese Frage hatte ich mir auch schon in der Vergangenheit gestellt.

Ich muss die ganze Anwendung "MariaDB" wiederherstellen.
Auch wenn ich diesen Fall selbst noch nicht hatte, aber dies war meine Vermutung die Datenbank komplett herstellen zu müssen.

Da könnte man sich doch glatt überlegen ein eigenes Script zu schreiben um einen Datenbankexport nach Zeitplan zu erstellen um dann einzelne Tabellen wiederherstellen zu können.
 
  • Like
Reaktionen: Ghost108

Tuxnet

Benutzer
Mitglied seit
02. Jan 2019
Beiträge
618
Punkte für Reaktionen
74
Punkte
48
MySQL dump
 
  • Like
Reaktionen: ctrlaltdelete

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.546
Punkte für Reaktionen
1.379
Punkte
234

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.259
Punkte für Reaktionen
601
Punkte
174
Ach wie cool... :cool: Da hatte wohl jemand Zeit das sofort umzusetzen. Das verdient natürlich Respekt 🙌
 

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.259
Punkte für Reaktionen
601
Punkte
174
@geimist Kleiner Verbesserungsvorschlag meinerseits.

Zeile 14 die Variable DBengine mit eindeutigen Systempfaden zu definieren um dem "volume*" (1 oder 2) aus dem Wege zu gehen.

Anstelle von:
Code:
DBengine=/volume*/@appstore/MariaDB10/usr/local/mariadb10/bin/mysql

Ersetzen mit:
Code:
DBengine=/var/packages/MariaDB10/target/usr/local/mariadb10/bin/mysql

Denn:
Code:
/var/packages/MariaDB10/target
ist ein Symlink auf
Code:
target -> /volume1/@appstore/MariaDB10
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.546
Punkte für Reaktionen
1.379
Punkte
234

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.259
Punkte für Reaktionen
601
Punkte
174
Läuft ganz gut und zuverlässig.

Eine Unschönheit habe ich dennoch gefunden.

Bash:
13  PREFIX="MySQLdump_${DATE}_"

62  fn="${BACKUPDIR}/${prefix}${db}.sql"
63  echo "Dump database $db to $fn"

65  $mysqldump $DBLOGIN --databases $db | gzip -c -9 > "${BACKUPDIR}/MySQLdump_${db}_${DATE}.sql.gz"

Zum einen bei der Definition von Filename Ziele 62 die Variable ${prefix} müsste wohl in upper case geschrieben werden.
Zum anderen stimmt die Ausgabe aus Zeile 63 nicht mit dem Namen der Erstellung der Datei aus Zeile 65 überein.

Da könnte man sich fast überlegen die Variable mit dem Filename auch bei der Generierung zu verwenden.

Bash:
62  fn="${BACKUPDIR}/${prefix}${db}.sql"

65  $mysqldump $DBLOGIN --databases $db | gzip -c -9 > "${fn}.gz"


Ich finde das Script super und habe es gleich in meine Umgebung mit übernommen.

Das habe ich gleich zum Anlass genommen und dies für meine Bedürfnisse etwas angepasst um alle Datenbanken jeweils in ein Unterverzeichnis zu schieben.

Bash:
    DBCOUNT=$(($DBCOUNT + 1))

    BACKUPSUBDIR="${BACKUPDIR}/${db}"
    if [ ! -d "${BACKUPSUBDIR}" ]; then
        mkdir -p "${BACKUPSUBDIR}"
    fi

    fn="${BACKUPSUBDIR}/${PREFIX}${db}.sql"
    echo "Dump database $db to $fn"

    $mysqldump $DBLOGIN --databases $db | gzip -c -9 > "${fn}.gz"
 
    # Gesamtbackup --> GESAMT
    BACKUPSUBDIRGESAMT="${BACKUPDIR}/GESAMT"
    if [ ! -d "${BACKUPSUBDIRGESAMT}" ]; then
        mkdir -p "${BACKUPSUBDIRGESAMT}"
    fi
    $mysqldump --opt $DBLOGIN --all-databases | gzip -c -9 > "${BACKUPSUBDIRGESAMT}"/"${PREFIX}"GESAMTBACKUP.gz

@geimist Danke dir vielmals für die publizierung dieses genialen Scripts! (y)
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.546
Punkte für Reaktionen
1.379
Punkte
234
Vielen Dank für deine Aufmerksamkeit. Wie gesagt: bei mir läuft das schon jahrelang, weshalb mir die fehlerhafte Logausgabe gar nicht mehr aufgefallen ist. Ich habe es mit korrigiert. Auf PREFIX habe ich jetzt komplett verzichtet.

Zusätzlich habe ich noch einen Schalter für Unterordner mit aufgenommen.
 

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.259
Punkte für Reaktionen
601
Punkte
174


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat