Sicherungsprotokoll

Sicherungsprotokoll

von Wilhelm Markötter -
Anzahl Antworten: 18
Moin aus Ahaus!

Dass das Backup nicht alle Kurse erfolgreich sichert, war ich aus moodle 1.5.3 gwohnt. Die habe ich dann "händisch" gesichert. Seit ich 1.7 fahre, erhalte ich das folgende Ergebnis.

Summary
==================================================
Courses: 85
OK: 24
Skipped: 1
Error: 0
Unfinished: 60

Some of your courses weren't saved!!

Hat jemand eine Idee, ob es auch auf einen Einstellungsfehler zurückgehen kann? Zumindest ist das Sichern von Hand bei diesen Zahlen sehr aufwändig!

Schönen Dank für die Mühe

Wilhelm
Mittelwert:  -
Als Antwort auf Wilhelm Markötter

Re: Sicherungsprotokoll

von Maik Riecken -
Hallo Wilhelm,

Die automatische Sicherung per cronjob ist aus Serversicht die allerschlechteste Methode, am Daten zu sichern. Aus Anwendersicht mag sie bequem sein. Du wirst grundsätzlich mindestens die maximal mögliche Scriptlaufzeit (max_execution_time) oder den Wert für memory_limit in der php.ini reißen, so dass der Server dein ressourcenfressendes Script mit Rücksicht auf andere User abbricht. Wäre ich Serververwalter, würde ich meinen Usern den Einsatz des Backupcronjobs sogar untersagen.

Tipps:
  • keine größeren (Kurs-)Dateien verwenden als der Wert für memory_limit vorgibt.
  • keine Archive (zip, tgz, tar.gz...) in den Kursdateien herumliegen lassen
... auf diese Weise sollte zumindest mehr Kurse als vorher gesichert werden - alle werden es dennoch nicht sein.

Andere Backupstrategie:
Den Ordner /moodledata und deine Datenbank regelmäßig sichern und die Sicherung ggf. auf einem lokalen Moodle auf deinem Rechner zu Hause einspielen und testen! Mit ein bisschen Übung geht das schnell und ist vor allem sicher (wenn man die Integrität des Backups auch überprüft).

Gruß,

Maik

Als Antwort auf Maik Riecken

Re: Sicherungsprotokoll

von Marc Fehrenbacher -
Hi,

ich richte bei mir gerade eine Sicherung ein. Hier ein paar Eckpunkte:

Provider Belwue.de, keine Shell-Ausführung zulässig, alle Logins verschlüsselt.

Vorgehen: Auf einem Windows-Server, auf dem eh' schon der Cron-Job für Moodle läuft, richte ich noch einen täglich Job ein, um die Daten vom Provider rüber zu sichern.

Dazu wird auf dem Moodle-Server ein Script ausgeführt, das die gesamte Datenbank in eine einzige Datei schiebt. Dieses wird vom Windows-Server per wget aufgerufen, also wie der Cron-Job von Moodle.

Danach hole ich die Datei mit wget.

Per rsync hole ich mir die geänderten Dateien des kompletten Servers (und nicht nur von moodledata lächelnd )
rsync lässt sich per ssh verschlüsselt anwenden, weil der Provider nichts anderes zulässt. Dazu wird von ssh-keygen ein Schlüsselpaar erzeugt und der öffentliche Schlüssel auf dem Provider-Server abgelegt.

Falls jemand genaueres braucht, schreibe ich das noch ausführlicher auf.

Gruß

Marc
Als Antwort auf Marc Fehrenbacher

Re: Sicherungsprotokoll

von Albert Kapune -
Dazu wird auf dem Moodle-Server ein Script ausgeführt, das die gesamte Datenbank in eine einzige Datei schiebt. Dieses wird vom Windows-Server per wget aufgerufen, also wie der Cron-Job von Moodle.

Wie machst Du das ohne Shell-Zugang? Auch ich habe ähnliche Backupprobleme und keine Shell zur Verfügung.

Vielen Dank und freundliche Grüße
Albert
Als Antwort auf Albert Kapune

Re: Sicherungsprotokoll

von Marc Fehrenbacher -
Die Datenbanksicherung läuft mit dem Skript aus:
http://www.belwue.de/download/webserver/

Dieses Skript konfigurieren (Datenbank, Username, Datenbankpasswort) und in den Ordner cgi-bin kopieren. Dieser liegt zwar außerhalb der Verzeichnishierarchie des "normalen" Webspace, kann aber über
http://elearn.feintechnikschule.de/cgi-bin/dbbackup.sh
aufgerufen werden. Die execute-Rechte müssen stimmen!

Ich kann bei Belwue.de keine Shell per Putty oder WinSCP öffnen, aber das Skript läuft.

Dieses Skript starte ich per wget. Das ist ein Programm, das URLs aufrufen kann (und mehr). wget läuft täglich per Cron.

Ich hänge mal die Verzeichnisstruktur an und du siehst die Rechte.

Mit rsync (auch das ist vom Provider zugelassen) hole ich dann die Dateien aus moodle, moodledata, bilder und secure und den oben erzeugten Datenbankdump aus upload.

Gruß

Marc
Anhang verzstrukt.jpg
Als Antwort auf Maik Riecken

Re: Sicherungsprotokoll

von Wilhelm Markötter -
Hallo Maik!

Schönen Dank für deine Tipps. Ich habe zwischenzeitlich ein lokales moodle (1.7) installiert und vom server den Ordner moodledata heruntergeladen. Den Ordner moodledata im lokalen moodle habe ich nun durch den gesicherten Ordner moodledata erstetzt. Das lokale moodle findet aber die Daten nicht. Fehlt da noch was?

Schönen Gruß

Wilhelm
Als Antwort auf Wilhelm Markötter

Re: Sicherungsprotokoll

von Marc Fehrenbacher -
Du musst die Datenbank auch herüber holen. Da dein neuer Server sicher eine andere URL hat, musst du in der Datenbank alle Pfade ändern.
Wenn du die Datenbank als reine Textdatei extrahiert hast, geht das z.B. in Word raz-faz.

Gruß

Marc
Als Antwort auf Marc Fehrenbacher

Re: Sicherungsprotokoll

von Wilhelm Markötter -
Hallo Marc!

Schönen Dank für dir Tipps. Entschuldige die Nachfrage, aber wo finde ich die Datenbank. Ordner mit der db gibt es mehrere. Wo genau soll sie reinkopiert werden. Der Aufbau der lokalen Installation ist anders als auf dem Server.
Mit Pfad ist die URL gemeint, mit der ich die lokale Installation aufrufe?!

Einen schönen Sonntag und besten Dank für die Mühe

Wilhelm
Als Antwort auf Marc Fehrenbacher

Re: Sicherungsprotokoll

von Maik Riecken -

"Da dein neuer Server sicher eine andere URL hat, musst du in der Datenbank alle Pfade ändern."

Diese Information gilt nur für Links innerhalb von Moodle, die du manuell - also nicht über die Moodlefunktionen - erstellt hast. Moodle erstellt ansonsten seine Pfade dynamisch aus der config.php. Ein Serverwechsel ist gar kein Problem, solange man die Pfade in der config.php neu anpasst.

Informationen zur Sicherung der Datenbank findest du z.B. hier.

Gruß,

Maik

Als Antwort auf Maik Riecken

Re: Sicherungsprotokoll

von Wilhelm Markötter -
Hallo Maik!

Das waren wichtige und selbst für mich nachvollziehbare Tipps. Ich habe nun moodledata und eine sql-Datei als Sicherung auf meiner Festplatte. Außerdem ein lokal installiertes moodle. Wie kann ich nun testen, ob die Sicherungen wirklich was taugen?

sonnigen Sonntag

Wilhelm
Als Antwort auf Wilhelm Markötter

Re: Sicherungsprotokoll

von Maik Riecken -

... das ist innerhalb des Kurses eigentlich auch beschrieben.

  • neue Datenbank anlegen
  • sql-Datei in DIESE NEUE Datenbank einspielen
  • Moodle frisch herunterladen und in einen anderen Ordner (z.B. moodle_test) installieren
  • /moodedata z.B. in "moodledata_test" umbenennen und in den selben Ordner wie dein bereits installiertes /moodledata kopieren
  • config.php von /moodle_test anpassen (neue Datenbank und neue Pfade eintragen)
  • neues lokales Moodle per Browser aufrufen (richtig - erst JETZT)

Gruß,

Maik

Als Antwort auf Maik Riecken

Re: Sicherungsprotokoll

von Marc Fehrenbacher -
Dumm nur, wenn der Provider das Anlegen einer weiteren Datenbank nicht zulässt ärgerlich

Marc
Als Antwort auf Marc Fehrenbacher

Re: Sicherungsprotokoll

von Maik Riecken -
"Ich habe nun moodledata und eine sql-Datei als Sicherung auf meiner Festplatte. Außerdem ein lokal installiertes moodle."

vs.

"Dumm nur, wenn der Provider das Anlegen einer weiteren
Datenbank nicht zulässt"

Was hat der Provider mit Wilhelms Festplatte und seinem Rechner zu tun?

Gruß,

Maik
Als Antwort auf Maik Riecken

Re: Sicherungsprotokoll

von Wilhelm Markötter -
Lieber Maik!

die gesicherte sql-Datei will nicht in die neu geschaffene Datenbank:

Fehler

SQL-Befehl:

# MySQL dump by phpMyDump
# Host: localhost Database: usrdb_afrahdbb_moodle2007
-------------------------- --
# Server version: 4.1.22
# ----------------------------------------
# table structure for table 'adodb_logsql'
CREATE TABLE adodb_logsql(

`id` bigint( 10 ) unsigned NOT NULL AUTO_INCREMENT ,
`created` datetime NOT NULL default '0000-00-00 00:00:00',
`sql0` varchar( 250 ) COLLATE utf8_unicode_ci NOT NULL default '',
`sql1` text COLLATE utf8_unicode_ci,
`params` text COLLATE utf8_unicode_ci,
`tracer` text COLLATE utf8_unicode_ci,
`timer` decimal( 16, 6 ) NOT NULL default '0.000000',
PRIMARY KEY ( `id` )
) ENGINE = MYISAM DEFAULT CHARSET = utf8 COLLATE = utf8_unicode_ci COMMENT = 'to save some logs from ADOdb';

MySQL meldet: Dokumentation

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '----------------------------

CREATE TABLE adodb_logsql (
`id` bigint(' at line 1

Da scheint was nicht zusammen zu passen! Serverversion und Sicherung??

Gruß

Wilhelm


Als Antwort auf Wilhelm Markötter

Re: Sicherungsprotokoll

von Marc Fehrenbacher -
Bei mir sieht der Dump so aus für ein Moodle 1.7 (anderes Sicherungsprogramm):

-- Dump by MySQLDumper 1.21 b6 (http://www.mysqldumper.de/board/)
-- Dump created at 2007-02-03 07:48

--
-- Create Table `adodb_logsql`
--

DROP TABLE IF EXISTS `adodb_logsql`;
CREATE TABLE `adodb_logsql` (
`created` datetime NOT NULL default '0000-00-00 00:00:00',
`sql0` varchar(250) NOT NULL default '',
`sql1` text NOT NULL,
`params` text NOT NULL,
`tracer` text NOT NULL,
`timer` decimal(16,6) NOT NULL default '0.000000'
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

Auffällig:
Bei den Parametern in Klammern sind keine Leerzeichen!

Diese Datensicherung lief bei mir problemlos wieder in die selbe(!) Datenbank.

Gruß

Marc

Als Antwort auf Wilhelm Markötter

Re: Sicherungsprotokoll

von Maik Riecken -
Der Dump ist unvollständig (Scriptlaufzeit ist begrenzt). Bitte deinen Provider, dir einem vollständigen Dump zur Verfügung zu stellen. Das hier sind keine Probleme für ein Moodleforum. Es ist die Aufgabe deines Providers, dich hier zu unterstützen.

Schau' dir mal diesen Thread an. Da steht die Lösung.

Gruß,

Maik


Als Antwort auf Maik Riecken

Re: Sicherungsprotokoll

von Marc Fehrenbacher -
Jetzt verstehe ich gar nichts mehr traurig .

Ich hätte auch gedacht, dass Pfade dynamisch aus der config.php gewonnen werden. Doch ich hatte ein Problem nach einer Serverumbenennung: Dateien, die per Moodle hochgeladen worden waren(!), wurden nicht mehr gefunden.

Mir wurde hier im Forum empfohlen, die Pfade in der Datenbank zu ändern, was auch geholfen hat.

Die Angaben in der config.php hießen früher:
$CFG->wwwroot = 'http://www.tausch.feintechnikschule.de/moodle';
$CFG->dirroot = '/srv/www/virtual/KUNDENNUMMER/www.tausch.feintechnikschule.de/vhostdata/htdoc/moodle';
$CFG->dataroot = '/srv/www/virtual/KUNDENNUMMER/www.tausch.feintechnikschule.de/vhostdata/htdoc/moodledata';

Nach der Umbenennung änderte ich in der config.php nur das wwwroot:
$CFG->wwwroot = 'http://elearn.feintechnikschule.de/moodle';
$CFG->dirroot = '/srv/www/virtual/KUNDENNUMMER/www.tausch.feintechnikschule.de/vhostdata/htdoc/moodle';
$CFG->dataroot = '/srv/www/virtual/KUNDENNUMMER/www.tausch.feintechnikschule.de/vhostdata/htdoc/moodledata';

Doch die Dateien, z.B. Bilder der Nutzer, wurden nicht gefunden. Erst eine Umbenennung in der Datenbank half.

Ist aber Schnee von gestern (zumindest bei mir) lächelnd

Gruß

Marc
Als Antwort auf Marc Fehrenbacher

Re: Sicherungsprotokoll

von Maik Riecken -
Hallo Marc,

Dein /moodledata-Verzeichnis ist via URL erreichbar. Das würe ich dringend ändern!

Gruß,

Maik

Als Antwort auf Maik Riecken

Re: Sicherungsprotokoll

von Marc Fehrenbacher -
Tja, leider habe ich keine Rechte ein Verzeichniszu erstellen außerhalb htdoc. Ich habe es mit einer .htaccess gesichert. Reicht das nicht?
Belwue ist sonst schon sehr auf Sicherheit bedacht.

Gruß

Marc