Ich hatte in der Vergangenheit Pech mit heißen Kopien allein. Wenn es Code ist, der im Laufe des Tages mehrmals aktualisiert und festgeschrieben wird, kann es eine tiefere Backup-Strategie wert sein.
Für meine persönlichen Sachen benutze ich einfach den svnadmin hotcopy
-Befehl einmal die Woche, aber für missionskritische Repositories, die viele Entwickler enthalten, ist das genug? Oder sollte ich die Zeit aufwenden, um eine strengere Backup-Strategie zusammenzustellen, die vollständige Backups und inkrementelle Backups umfasst?
hotcopy
scheint der einfachste Weg zu sein, aber ich möchte einen Repo wiederherstellen können, wenn er aus irgendeinem Grund beschädigt wird. Wird mir nur ein Dump über hotcopy
erlauben, dies zu tun?
Machen Sie sich Sorgen wegen der Druckausgabe oder machen Sie sich Sorgen, dass Sie nur einmal pro Woche einen Backup machen?
Hotcopy erstellt eine sichere und vollständige Sicherung Ihres Repositorys, auch wenn andere Prozesse (z. B. Ihre Entwickler) gleichzeitig auf das Repository zugreifen. Wenn Sie immer noch nicht vertrauen, fahren Sie den Zugriff auf das Repository herunter und sichern Sie es, indem Sie es mit den üblichen Dateisystem-Tools kopieren. (Die Entwickler werden nicht rund um die Uhr arbeiten, oder?)
Wenn Sie sich Sorgen um den einmal wöchentlichen Teil machen: Denken Sie nur darüber nach, was passiert, wenn das Repo am Tag vor dem geplanten nächsten Backup verschwindet. Ist es wichtig? Wenn ja, erstellen Sie häufiger Sicherungen. So einfach ist das.
Ist Ihr Repository zu groß, um mehrere Tage oder Wochen voller Backups zu speichern? Implementieren Sie ein rotierendes Sicherungsschema, das vollständige und inkrementelle Sicherungen verwendet. Haben Sie viel Platz für Backups? Sparen Sie sich die Probleme und machen Sie nur vollständige Backups.
Eine weitere gute Strategie besteht darin, ein zweites SVN-Repository zu führen und es mit dem Haupt-Repository zu synchronisieren mit svnsync , normalerweise mit einem Post-Commit-Hook.
Der Hauptvorteil besteht darin, dass Sie, wenn das erste Repository aus irgendeinem Grund ausfällt, sofort zu dem Backup-Repository wechseln und ohne Ausfallzeiten weiterarbeiten können.
Ich habe einen Backup-Plan für das SVN 1.4.x-Repository eines Unternehmens (zu dem Zeitpunkt unter Windows gehostet) implementiert und dabei das Script python
verwendet. svn-backup-dumps.py
Ich rufe svn-backup-dump.py
von einem post-commit
Hook auf, um inkrementelle Backups für eine bestimmte Revision auszulösen. Ich habe schtasks
verwendet, um eine wöchentliche "vollständige" Sicherung mit demselben Skript zu planen.
Die Wiederherstellung (die wir zweimal durchführen mussten, weil ein Verzeichnis im Repository mit Fett gefingert wurde) ist relativ einfach: Nimm die letzte vollständige Sicherung, stelle sie wieder her. Wenden Sie Inkremente bis zur letzten Revision an.
Ich habe in diesem Bereich keine Verbesserungen / Änderungen für 1.5 untersucht, aber ich glaube, dass ein ähnlicher Plan gut für Sie funktionieren würde.
Rufen Sie mich an, alte Schule, aber was ist mit Sub-Versioning zu einer Partition und dann Ghosting nach einem Zeitplan?
Die von Davide Gualano vorgeschlagene svnsync-Option klingt auch gut. Ich lehne diese Option ab, um eine unnötige Partitionierung meiner Laufwerke zu verhindern (dies kann auch andere Admins in die falsche Richtung bringen und macht bei einigen meiner VPS-Umgebungen keinen Sinn).
Ich habe den Befehl svnadmin 'dump' in letzter Zeit viel benutzt. Dies funktioniert ähnlich wie der Befehl mysql dump, da er Ihr Repository in bak create-Befehle exportiert. Dieser Befehl könnte als crontab / geplante Task implementiert und dann als Datei auf ein externes Laufwerk kopiert werden. Beispielbefehle:
%Vor%Verwenden Sie dann das Robocopy / Kopierwerkzeug Ihrer Wahl, um die Datei an einen anderen Ort zu verschieben. Dies ist nützlich, wenn Sie die Dateien vollständig vom Repo-Server entfernen möchten, aber keinen externen Zugriff auf die Subversion haben.
Ich habe es immer noch nicht mit einer schönen Kunst zu tun. Wenn ich diese Dateien zwischen Rechnern verschiebe, bekomme ich gelegentlich etwas wie "UUID stimmt nicht überein". Ich habe dies gelöst, indem ich den Projektordner gelöscht / unterbewertet habe, und dann:
%Vor%Dies sollte den Fehler beheben. Möglicherweise müssen Sie Verknüpfungen mit Eclipse oder anderen Projekten neu erstellen oder wiederherstellen. Wenn die UUID beschädigt ist, kann dies auch andere Personen betreffen, die das Projekt verwenden. Dies sollte berücksichtigt werden.
Sie können diese Methode als Fallback für Hotcopy verwenden. Dazwischen sollten Sie das Repo wiederherstellen können.
P.S. Ken, es sieht so aus, als ob svn-backup-dump.py hierher verschoben wurde: Ссылка
Wenn Sie ein beschädigtes Repo über die Oberseite Ihrer zuvor unverdorbenen Sicherung kopieren, verlieren Sie Ihre beschädigte Sicherung.
Wenn Sie sich darüber Sorgen machen, müssen Sie, wie andere bereits gesagt haben, Ihre Backups drehen.
Sie können auch veranlassen, dass 'svnadmin verify' ebenfalls automatisch ausgeführt wird.
Machen Sie sich Sorgen wegen der Druckausgabe oder machen Sie sich Sorgen, dass Sie nur einmal pro Woche einen Backup machen?
Hotcopy erstellt eine sichere und vollständige Sicherung Ihres Repositorys, auch wenn andere Prozesse (z. B. Ihre Entwickler) gleichzeitig auf das Repository zugreifen. Wenn Sie immer noch nicht vertrauen, fahren Sie den Zugriff auf das Repository herunter und sichern Sie es, indem Sie es mit den üblichen Dateisystem-Tools kopieren. (Die Entwickler werden nicht rund um die Uhr arbeiten, oder?)
Wenn Sie sich Sorgen um den einmal wöchentlichen Teil machen: Denken Sie nur darüber nach, was passiert, wenn das Repo am Tag vor dem geplanten nächsten Backup verschwindet. Ist es wichtig? Wenn ja, erstellen Sie häufiger Sicherungen. So einfach ist das.
Ist Ihr Repository zu groß, um mehrere Tage oder Wochen voller Backups zu speichern? Implementieren Sie ein rotierendes Sicherungsschema, das vollständige und inkrementelle Sicherungen verwendet. Haben Sie viel Platz für Backups? Sparen Sie sich die Probleme und machen Sie nur vollständige Backups.
Für meine persönlichen Sachen benutze ich einfach den %code% -Befehl einmal die Woche, aber für missionskritische Repositories, die viele Entwickler enthalten, ist das genug? Oder sollte ich die Zeit aufwenden, um eine strengere Backup-Strategie zusammenzustellen, die vollständige Backups und inkrementelle Backups umfasst?
%code% scheint der einfachste Weg zu sein, aber ich möchte einen Repo wiederherstellen können, wenn er aus irgendeinem Grund beschädigt wird. Wird mir nur ein Dump über %code% erlauben, dies zu tun?
Eine weitere gute Strategie besteht darin, ein zweites SVN-Repository zu führen und es mit dem Haupt-Repository zu synchronisieren mit svnsync , normalerweise mit einem Post-Commit-Hook.
Der Hauptvorteil besteht darin, dass Sie, wenn das erste Repository aus irgendeinem Grund ausfällt, sofort zu dem Backup-Repository wechseln und ohne Ausfallzeiten weiterarbeiten können.
Rufen Sie mich an, alte Schule, aber was ist mit Sub-Versioning zu einer Partition und dann Ghosting nach einem Zeitplan?
Die von Davide Gualano vorgeschlagene svnsync-Option klingt auch gut. Ich lehne diese Option ab, um eine unnötige Partitionierung meiner Laufwerke zu verhindern (dies kann auch andere Admins in die falsche Richtung bringen und macht bei einigen meiner VPS-Umgebungen keinen Sinn).
Ich habe den Befehl svnadmin 'dump' in letzter Zeit viel benutzt. Dies funktioniert ähnlich wie der Befehl mysql dump, da er Ihr Repository in bak create-Befehle exportiert. Dieser Befehl könnte als crontab / geplante Task implementiert und dann als Datei auf ein externes Laufwerk kopiert werden. Beispielbefehle:
%Vor%Verwenden Sie dann das Robocopy / Kopierwerkzeug Ihrer Wahl, um die Datei an einen anderen Ort zu verschieben. Dies ist nützlich, wenn Sie die Dateien vollständig vom Repo-Server entfernen möchten, aber keinen externen Zugriff auf die Subversion haben.
Ich habe es immer noch nicht mit einer schönen Kunst zu tun. Wenn ich diese Dateien zwischen Rechnern verschiebe, bekomme ich gelegentlich etwas wie "UUID stimmt nicht überein". Ich habe dies gelöst, indem ich den Projektordner gelöscht / unterbewertet habe, und dann:
%Vor%Dies sollte den Fehler beheben. Möglicherweise müssen Sie Verknüpfungen mit Eclipse oder anderen Projekten neu erstellen oder wiederherstellen. Wenn die UUID beschädigt ist, kann dies auch andere Personen betreffen, die das Projekt verwenden. Dies sollte berücksichtigt werden.
Sie können diese Methode als Fallback für Hotcopy verwenden. Dazwischen sollten Sie das Repo wiederherstellen können.
P.S. Ken, es sieht so aus, als ob svn-backup-dump.py hierher verschoben wurde: Ссылка
Wenn Sie ein beschädigtes Repo über die Oberseite Ihrer zuvor unverdorbenen Sicherung kopieren, verlieren Sie Ihre beschädigte Sicherung.
Wenn Sie sich darüber Sorgen machen, müssen Sie, wie andere bereits gesagt haben, Ihre Backups drehen.
Sie können auch veranlassen, dass 'svnadmin verify' ebenfalls automatisch ausgeführt wird.
Ich hatte in der Vergangenheit Pech mit heißen Kopien allein. Wenn es Code ist, der im Laufe des Tages mehrmals aktualisiert und festgeschrieben wird, kann es eine tiefere Backup-Strategie wert sein.
Ich habe einen Backup-Plan für das SVN 1.4.x-Repository eines Unternehmens (zu dem Zeitpunkt unter Windows gehostet) implementiert und dabei das Script %code% verwendet. %code%
Ich rufe %code% von einem %code% Hook auf, um inkrementelle Backups für eine bestimmte Revision auszulösen. Ich habe %code% verwendet, um eine wöchentliche "vollständige" Sicherung mit demselben Skript zu planen.
Die Wiederherstellung (die wir zweimal durchführen mussten, weil ein Verzeichnis im Repository mit Fett gefingert wurde) ist relativ einfach: Nimm die letzte vollständige Sicherung, stelle sie wieder her. Wenden Sie Inkremente bis zur letzten Revision an.
Ich habe in diesem Bereich keine Verbesserungen / Änderungen für 1.5 untersucht, aber ich glaube, dass ein ähnlicher Plan gut für Sie funktionieren würde.