====== Moodle Sicherunskopie erstellen ======
Die beschriebene Vorgehensweise sollten Sie nur durchführen, wenn Sie sich sicher sind. Tippfehler und Ungenauigkeiten können verheerende Folgen haben.
Eine Sicherungskopie von Moodle besteht aus einer [[:#datenbank_sichern|Datenbanksicherung]] und der [[:#verzeichnisse_sichern|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_einstellen|Rechte]] für __Postgres__ eingestellt werden.
Die Sicherung kann jederzeit wieder hergestellt werden, indem die [[:#datenbanksicherung_wieder_einspielen|Datenbank wieder hergestellt]] wird und die [[:#verzeichnisse_zurueckholen|Verzeichnisse zurückkopiert]] werden.
===== Datenbank sichern =====
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 **moodle**((template -T moodle)) für den Besitzer moodle(( owner -O moodle)).
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
===== Rechte einstellen =====
-> 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 ((erster Eintrag in der Zeile)).
===== Datenbanksicherung wieder einspielen =====
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
===== Verzeichnisse sichern =====
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
===== Verzeichnisse zurückholen =====
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