此處要備份的庫名以test
爲例服務器
當svn服務器發生災難級故障時,咱們能夠利用備份文件對公司資產:svn代碼進行恢復ide
整個svn備份文件很是大,若是每次進行都全量備份;將消耗很是多的硬盤資源。svn
使用全量備份+增量備份的方案;對svn代碼進行異地備份
每月1號進行一個完整備份,其餘時候進行差別備份工具
1.使用svnadmin dump 倉庫路徑 > dumpfile日誌
svnadmin dump /data/svn/test > /data/backup/svn/test_dumpfile
[root@localhost svn]# svnlook youngest /data/svn/test/ 73988
備註:73988
是當前倉庫的版本提交數量code
svnadmin dump /data/svn/test -r 73882:73988 --incremental > /data/backup/svn/test_dumpfile_73882-73988
凌晨1點開始備份,先使用svnlook youngest
獲取版本數量,而後再全量的壓縮備份。將全量備份的版本號記錄好,下次增量備份的時候,能夠用該版本號+1進行差別備份資源
上面咱們經過svn的官方備份工具svnadmin dump
,對svn倉庫已經進行了備份;如今咱們對數據進行還原開發
svnadmin load /data/svn/test/ < /data/backup/svn/test_dumpfile
[root@localhost svn]# svnlook youngest /data/svn/test/ 73881
/data/backup/svn/test_dumpfile_73881-73988
svnadmin load /data/svn/test/ < /data/backup/svn/test_dumpfile_73881-73988
Committed new rev 73989 (loaded from original rev 73988)
,表示還原成功[root@localhost svn]# svnlook youngest /data/svn/test/ 73988
先利用全量備份,再利用增量備份進行還原,最後和客戶端開發同窗協助確認下:還原的svn數據是否能夠被正常使用。rem
svn://192.168.1.1/test
中包含了公司全部的項目A、項目B、項目C(除客戶端代碼外);不便於直接使用it
爲了更好的區別項目,將不一樣的項目使用不一樣的版本庫;從test
中獨立出來的子文件夾有:
儘量對項目開發的影響較小;
192.168.1.2;這臺機器做爲svn還原使用
1.先利用全量還原好數據
2.使用增量備份文件,對差別部分進行還原便可(通常是1天的數據)
1.在項目二大羣中發一個通知:svn版本庫週末進行維護,週末暫停使用
2.使用完整備份的文件,過濾出須要的文件夾
svndumpfilter include 項目A < test_bak_0-90769 > 項目A_dumpfile svndumpfilter include 項目B < test_bak_0-90769 > 項目B_dumpfile # 若是包含了多個文件夾,能夠用空格+文件夾名,表明多個目錄 svndumpfilter include 項目C 17_項目C < test_bak_0-90769 > 項目C_dumpfile
3.在192.168.1.2
新建好版本庫
svnadmin create /data/svn/項目A svnadmin create /data/svn/項目B svnadmin create /data/svn/項目C
4.作好受權
準備好在用的人員信息,寫到新版本庫的受權文件中
5.使用步驟1的文件進行數據恢復
svnadmin load /data/svn/項目A < 項目A_dumpfile svnadmin load /data/svn/項目B < 項目B_dumpfile svnadmin load /data/svn/項目C < 項目C_dumpfile
1.準備差別文件 2.將差別部分進行還原 3.驗證差別部分
6.驗證沒有問題以後。將舊機器上面的文件隱藏移動到一個再也不使用的文件夾中;7/14天后確認沒有影響後刪除