Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cronjob :: Backup - Festlegung der Tabellen #2754

Closed
skerbis opened this issue May 23, 2019 · 15 comments · Fixed by #3004
Closed

Cronjob :: Backup - Festlegung der Tabellen #2754

skerbis opened this issue May 23, 2019 · 15 comments · Fixed by #3004
Labels
Add to Docs Backup "Backup"-Addon related things docs_tipp Feature Additional functionality

Comments

@skerbis
Copy link
Contributor

skerbis commented May 23, 2019

Bestimmte Tabellen müssen nicht im Backup erfasst werden, da sie ggf. vom AddOn neu erzeugt werden oder ggf. zu große Daten enthalten.
Hierzu zählen ggf. der Suchindex von SearchIt oder auch YFeed-Daten.

Ideen:

  • Die AddOns teilen dem Backup-Job mit, welche Tabellen nicht gesichert werden müssen
  • Der Admin erhält die Möglichkeit die gewünschten Tabellen im Cronjob auszulassen
@olien
Copy link
Contributor

olien commented May 23, 2019

Fände ich sehr gut! ich habe eine Webseite mit zwei Tabellen a 12MB, die dazu führen, dass das Backup nicht funktioniert.

@staabm
Copy link
Member

staabm commented May 23, 2019

Fände ich sehr gut! ich habe eine Webseite mit zwei Tabellen a 12MB, die dazu führen, dass das Backup nicht funktioniert.

ist das mit dem aktuellen redaxo auch noch so, oder ist das eine aussage von vor 2 jahren?

@olien
Copy link
Contributor

olien commented May 23, 2019

Gestern getestet ...

@staabm
Copy link
Member

staabm commented May 23, 2019

wäre super wenn ich einen export einer solchen db/tabelle bekommen könnte um das zu testen/optimieren

@olien
Copy link
Contributor

olien commented May 23, 2019

ok

@alxndr-w
Copy link
Contributor

ich kann's ebenso bestätigen.

@danspringer
Copy link
Contributor

Hatte auch Probleme bei großen DBs oder Table-Views. Habe dann einen neuen Reiter gebastelt, in dem man die zu exportierenden Tabellen auswählen/abwählen kann.

Funktioniert bei mir gut in 3 Projekten. Ob es sauber programmiert ist: hmm.. aber bei Interesse kann vllt mal jemand reinschauen.

Bildschirmfoto 2019-05-23 um 11 00 57
Bildschirmfoto 2019-05-23 um 11 01 03

@alxndr-w
Copy link
Contributor

imho muss man irgendwo - in der package.yml oder in der rex_config - hinterlegen können, dass Tabellen vom Backup ausgeschlossen werden. Der Addon-Entwickler weiß ja am besten, welche Tabellen ausgeschlossen werden sollen.

Zudem wäre es u.U. wichtig, die Tabellenstruktur dennoch mit ins Backup zu nehmen, nicht jedoch die Datensätze - gerade wenn es darum geht, ein Backup einspielen zu können.

@marcohanke
Copy link
Contributor

+1 Habe gerade eine ziemlich große Tabelle von "History"

@staabm
Copy link
Member

staabm commented Jun 18, 2019

@marcohanke ggf. kannst du mal #2760 testen und im pull request feedback geben ob die Änderung für deinen aktuellen use-case ausreicht

@gharlan gharlan added Backup "Backup"-Addon related things Feature Additional functionality labels Aug 8, 2019
@alxndr-w
Copy link
Contributor

Ich hab' da mal was vorbereitet...

@staabm
Copy link
Member

staabm commented Nov 12, 2019

hier vllt noch als Ergänzung zur urspr. Anforderung:

Addons können bereits selbst entscheiden ob tabellen im backup enthalten sein sollen.
Dazu muss man im tabellen namen den prefix rex_tmp_ verwenden, siehe:

if (null === $tables) {
$tables = [];
foreach (rex_sql::factory()->getTables(rex::getTablePrefix()) as $table) {
if ($table != rex::getTable('user') // User Tabelle nicht exportieren
&& substr($table, 0, strlen(rex::getTablePrefix() . rex::getTempPrefix())) != rex::getTablePrefix() . rex::getTempPrefix()
) { // Tabellen die mit rex_tmp_ beginnne, werden nicht exportiert!
$tables[] = $table;
}
}
}

@alxndr-w
Copy link
Contributor

Danke für die Ergänzung, @staabm!

tmp_ ist für mich nicht ganz eindeutig, denn Log-Tabellen oder bspw. die History sind ja nicht "temporär", sondern ein permanentes Archiv. Im Fall von search_it bspw. kann der Index ja kinderleicht frisch erstellt werden, würde mich aber dabei komisch fühlen, das als eine temporäre Tabelle zu führen.

Das Wording ist imho da nicht ideal, hat der tmp_-Präfix noch eine andere Aufgabe?

@staabm
Copy link
Member

staabm commented Nov 12, 2019

Das Wording ist imho da nicht ideal, hat der tmp_-Präfix noch eine andere Aufgabe?

siehe https://github.com/redaxo/redaxo/search?q=getTempPrefix&unscoped_q=getTempPrefix

dateien die mit temp-prefix ist, werden nicht vom medienpool sync beachtet.

tmp_ ist für mich nicht ganz eindeutig, denn Log-Tabellen oder bspw. die History sind ja nicht "temporär", sondern ein permanentes Archiv. Im Fall von search_it bspw. kann der Index ja kinderleicht frisch erstellt werden, würde mich aber dabei komisch fühlen, das als eine temporäre Tabelle zu führen.

tmp meint in diesem sinne dass es tabellen sind die keine nutzdaten tragen. search-index wäre ein idealer use-case dafür da die daten dafür aus anderen tabellen erzeugt werden.

tabellen die ein permanentes archiv darstellen sind nicht in als temporär in diesem context zu verstehen (du willst das archiv sicher auch im backeup mit drinnen haben?)

@alxndr-w
Copy link
Contributor

Jetzt ist es für mich klar, das mit den Nutzdaten ist anschaulich.

Die Archiv-Daten von article_slice_history und yform_history sind für mich nicht so relevant, als dass ich davon ein Backup benötige - betrachte sie dennoch als Archiv. Aber genau das kann ich ja dann selbständig einstellen und bspw. sagen, dass diese Tabellen viel seltener oder gar nicht in ein Backup müssen.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Add to Docs Backup "Backup"-Addon related things docs_tipp Feature Additional functionality
Development

Successfully merging a pull request may close this issue.

7 participants