====== 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