DeRedmineBackupRestore » History » Revision 4
Revision 3 (C S, 2021-01-12 09:44) → Revision 4/5 (C S, 2021-01-13 13:26)
Übersetzung der "Rev. 9":https://www.redmine.org/projects/redmine/wiki/RedmineBackupRestore/9 (Noch nicht fertiggestellt!)
h1. Sichern und Wiederherstellen von Redmine
{{>toc}}
h2. Backup
Redmine-Backups sollten Folgendes enthalten:
* Datenbank
* Anhänge (standardmäßig im @files@ Ordner unter dem Installationsverzeichnis gespeichert)
h3. Sicherung der Datenbank
h4. MySQL
Mit dem Befehl @mysqldump@ können Sie den Inhalt Ihrer MySQL-Datenbank in einer Textdatei sichern. Zum Beispiel:
<pre>
/usr/bin/mysqldump -u <username> -p<password> -h <hostname> <redmine_database> > /path/to/backup/db/redmine.sql
</pre>
Sie finden <username>, <password>, <hostname> und <redmine_database> in der Datei @config/database.yml@. <host_name> ist je nach Installation der Datenbank möglicherweise nicht erforderlich.
h4. PostgreSQL
Mit dem Befehl @pg_dump@ können Sie den Inhalt einer PostgreSQL-Datenbank in einer Textdatei sichern. Hier ist ein Beispiel:
<pre>
/usr/bin/pg_dump -U <username> -h <hostname> -Fc --file=redmine.sqlc <redmine_database>
</pre>
Sie finden <username>, <hostname> und <redmine_database> in der Datei @config/database.yml@. <hostname> ist abhängig von Ihrer Installation der Datenbank möglicherweise nicht erforderlich. Der Befehl @pg_dump@ fordert Sie bei Bedarf zur Eingabe des Kennworts auf.
h4. SQLite
SQLite-Datenbanken bestehen jeweils nur aus einer einzigen Datei, sodass diese recht einfach durch eine Kopie an einen anderen Speicherort gesichert werden können.
Sie können den Dateinamen der SQLite-Datenbank anhand der Konfigurationsdatei ermitteln. Diese liegt unter @config/database.yml@.
h3. Anhänge sichern
Alle Datei-Uploads werden in @attachments_storage_path@ gespeichert (standardmäßig in das Verzeichnis @files/@). Sie können den Inhalt dieses Verzeichnisses an einen anderen Speicherort kopieren, um es einfach zu sichern.
*WARNUNG:* @attachments_storage_path@ verweist möglicherweise auf ein anderes Verzeichnis als @files/@. Überprüfen Sie unbedingt die Einstellung in @config/configuration.yml@, um eine korrekte Sicherung sicherstellen zu können.
h3. Beispielsicherungsskript
Hier ist ein einfaches Shell-Skript, das für tägliche Sicherungen verwendet werden kann (vorausgesetzt, Sie verwenden eine MySQL-Datenbank):
<pre>
# Database
/usr/bin/mysqldump -u <username> -p<password> <redmine_database> | gzip > /path/to/backup/db/redmine_`date +%Y-%m-%d`.gz
# Attachments
rsync -a /path/to/redmine/files /path/to/backup/files
</pre>
h2. Wiederherstellung
h3. Datenbank wiederherstellen
h4. MySQL
Wenn Sie beispielsweise eine komprimierte Sicherungsdateisdatei mit dem Namen @2018-07-30.gz@ haben, kann die Datenbank mit dem folgenden Befehl wiederhergestellt werden:
<pre>
gunzip -c 2018-07-30.gz | mysql -u <username> --password <redmine_database>
Enter password:
</pre>
h4. PostgreSQL
Wenn die Option @-Fc@ des Befehls @pg_dump@ wie im obigen Beispiel verwendet wird, müssen Sie den Befehl @pg_restore@ verwenden:
<pre>
pg_restore -U <username> -h <hostname> -d <redmine_database> redmine.sqlc
</pre>
andernfalls kann eine Textdatei mit dem Befehl @psql@ wiederhergestellt werden:
<pre>
psql <redmine_database> < <infile>
</pre>
h4. SQLite
Kopieren Sie die Datenbankdatei einfach von Ihrem Sicherungsordner in den Zielordner.
h3. Anhänge wiederherstellen
Kopieren Sie die Dateien aus Ihrem Sicherungsordner wieder in das entsprechende Zielverzeichnis zurück.