Eine Sicherungskopie von Moodle besteht aus einer Datenbanksicherung und der Sicherung von 3 Verzeichnissen, nämlich
/var/lib/moodle
/usr/share/moodle
und
/etc/moodle
Alle Arbeiten sollten als root an einer Konsole ausgeführt werden. Um mit der Kopie arbeiten zu können, müssen noch die Rechte für Postgres eingestellt werden.
Die Sicherung kann jederzeit wieder hergestellt werden, indem die Datenbank wieder hergestellt wird und die Verzeichnisse zurückkopiert werden.
Zunächst müssen Datenbankzugriffe unterbunden werden.
/etc/init.d/apache2 stop
Anmeldung als postgres:
su postgres
Kopieren der Datenbank mit createdb:
createdb -O moodle -T moodle moodle_bak
Der Befehl erstellt die Datenbank moodle_bak als Kopie der Datenbank moodle1) für den Besitzer moodle2).
Als postgres abmelden:
Strg+d
Dadurch ist die Datenbank allerdings nur innerhalb der PostGres-Umgebung gesichert. Möchte man sie als Ganzes sichern und z.B. auf einem anderen Datenträger übertragen, gibt man als root ein:
pg_dump -U postgres moodle> moodle_pgdump
(In der Datei „moodle_pgdump“ finden sich die exportierten SQL-Statements im Textformat. Diese Datei lässt sich dann am Ende als root mit:
psql -U psql moodle < moodle_pgdump
wieder einspielen).
Dann kann Apache wieder gestartet werden.
/etc/init.d/apache2 start
→ Diesen Punkt können Sie bei der Version 9.1 von PostgreSQL unter Linuxmuster 6.1 überspringen: Testen Sie dies mit:
cd /etc/postgresql/ ls
Steht hier ein 8.3, fahren Sie so fort, wie unten beschrieben. Bei 9.1 brauchen Sie die Rechte in der pg_hba.conf nicht anzupassen.
Ansonsten: Auf die gesicherte Datenbank kann nicht zugegriffen werden, da die Zugriffsrechte auf Datenbanken in der Datei
/etc/postgresql/8.3/main/pg_hba.conf
eingestellt werden müssen.
Suchen Sie alle Zeilen mit der Datenbank moodle und kopieren Sie diese mit neuem Datenbanknamen 3).
Zunächst müssen Datenbankzugriffe unterbunden werden.
/etc/init.d/apache2 stop
Anmeldung als postgres:
su postgres
Dann das Verwaltungsprogramm starten:
psql
Jetzt die Datenbank moodle entfernen:
DROP DATABASE moodle;
Schließlich die Sicherungskopie wieder zurück benennen - bei PSQL 8.x:
DATABASE RENAME moodle_bak TO moodle;
- Bei PSQL 9.x:
ALTER DATABASE moodle_bak RENAME TO moodle;
Programm beenden
\q
und abmelden, sowie Apache wieder starten:
Strg+d /etc/init.d/apache2 start
Kopiere die Verzeichnisse:
cd /etc cp -R moodle moodle_bak cd /var/lib cp -R moodle moodle_bak chown -R www-data.www-data moodle_bak cd /usr/share cp -R moodle moodle_bak
Entfernen der Verzeichnisse und zurück umbenennen der Sicherungskopien:
cd /etc rm -r moodle mv moodle_bak moodle cd /var/lib rm -r moodle mv moodle_bak moodle cd /usr/share rm -r moodle mv moodle_bak moodle