Subversionの不要な履歴を削除して容量を削減
年末にやっているバックアップ作業。
Subversionの全体容量が大きくなってきたので、不要な履歴 (リビジョン)を削除してバックアップ容量を削減しようとしているときの覚書。
環境: CentOS Stream 8, Subversion 1.14.1
どのリポジトリが容量を食っているか調べる。
# cd /home/svn/repo/
# du -hx --max-depth=1
容量の大きいリポジトリに移動して、容量が大きい順に並び替えて先頭10件だけ表示。
# cd project
# du -hxa --max-depth=4 ./db/revs/ | sort -hr | head -n 10
TortoiseSVNでどのリビジョンのコミットか調べる。
除外するパスを指定してdumpファイル生成。
(TortoiseSVNのPath部分をCtrl-Cでコピーできる)
# cd /home/svn/repo/
# svnadmin dump project/ | svndumpfilter exclude /trunk/90.Maintenance/Backup > project_20231225.dump
リポジトリを作り直してdumpファイルをインポート。
# mv project project.bak
# svnadmin create project
# svnadmin load project< project_20231225.dump
# chown apache. -R project
使用容量確認。
# du -hx --max-depth=1
Apacheを再起動。
# systemctl restart httpd
TortoiseSVNでcleanupしてupdateする。
大丈夫そうなのでdumpとバックアップを削除する。
# rm -rf project.bak/ project_20231225.dump
全リポジトリをアーカイブしてバックアップする。
# cd ../
# tar czvf repo_server02_20231225.tgz repo/
ダウンロードして外部ストレージとGoogle Cloud Storageに保存しておく。
68GBをダウンロードするのに2時間ぐらい掛かった。
Google Cloud StorageのArchive Storageなら100GB保存しても月額30円ぐらい。
参考: 料金 | Cloud Storage | Google Cloud