CSVN備份初體驗


備份方法挺多的,目前我知道有四種

其一:

首先復制舊csvn服務器上repositories下的版本庫文件夾到新csvn服務器repositories文件夾下面(做以下修改時最好把csvn服務停掉)

然后復制舊csvn的svn_auth_file到新csvn上(相當於復制用戶密碼)

接着就是復制舊服務器上的用戶賬號信息(例如郵箱,權限等)

 csvn-production-hsqldb.script   在這個文件里搜索INSERT   INTO  USER 然后復制這幾行,追加到新服務器上的對應文件中(這里我遇到一個問題,就是我在csvn的web管理界面可以看到我新建的用戶,但是我在這個文件中卻找不到對應的插入信息,最后發現是沒有重啟csvn的問題)

接着用舊csvn服務器上svn_access_file文件覆蓋新csvn服務器上的對應文件,該文件為用戶訪問權限(為了安全起見,最好將被替換的文件先做好一個備份,防止出現異常情況無法恢復)

最后重啟csvn,遷移就完成了。

其二:

svnadmin dump 

原服務器

cd repositories

svnadmin dump svncopy/ > test.dump

復制版本庫的服務器

1056 scp root@10.0.3.107:/application/csvn/data/repositories/test.dump ./     #scp傳文件就是杠杠的
1057 ls
1058 svnadmin load test.dump  #命令有錯
1059 svnadmin load /application/csvn/data/repositories/ test.dump  #命令有錯
1060 svnadmin load /application/csvn/data/repositories/ < test.dump  #還是有錯
1061 ls
1062 ls -l
1063 chown -R csvn:csvn test.dump            #嘗試修改擁有者,無效
1064 svnadmin load /application/csvn/data/repositories/ < test.dump
1065 svnadmin create test        #新建一個版本庫
1066 svnadmin load /application/csvn/data/repositories/test < test.dump   #執行成功
1067 ls
1068 ls -l
1069 chown -R csvn:csvn test      #配置權限


其三:

svnadmin hotcopy

 服務器a:

[root@localhost repositories]# svnadmin hotcopy testb testb.hotcopy  

服務器b:

1074 scp -r root@10.0.3.107:/application/csvn/data/repositories/testb.hotcopy ./
1075 ls
1076 ls -l
1077 chown -R csvn:csvn testb
1078 ls -l
1079 chown -R csvn:csvn testb.hotcopy/

其四:

svnsync

[root@node2 svnmirror]# cd /application/csvn/data/repositories/      #我選擇直接在這里備份版本庫
[root@node2 repositories]# svnadmin create bp              #創建同名的備份庫
[root@node2 repositories]# svnsync init file:///application/csvn/data/repositories/bp/ http://10.0.3.107:18080/svn/bp      #同步前先初始化,file后面就是我用來存放備份版本庫的路徑,后面是需要備份的版本庫路徑。然后,報錯
svnsync: E165006: Repository has not been enabled to accept revision propchanges;
ask the administrator to create a pre-revprop-change hook
[root@node2 repositories]# cp bp/hooks/pre-revprop-change.tmpl bp/hooks/pre-revprop-change    #安全起見,pre-revprop-change是我們初始化過程中需要的文件
[root@node2 repositories]# vi bp/hooks/pre-revprop-change                    #不能將文件清空,只需要把最后一行的exit 1改為exit 0
[root@node2 repositories]# svnsync init file:///application/csvn/data/repositories/bp/ http://10.0.3.107:18080/svn/bp    #再次嘗試初始化
Copied properties for revision 0.
[root@node2 repositories]# svnsync sync file:///application/csvn/data/repositories/bp/        #正式開始同步
Transmitting file data .
Committed revision 1.
Copied properties for revision 1.
[root@node2 repositories]# ls
bp
[root@node2 repositories]# ls -l
total 4
drwxr-xr-x 6 root root 4096 Nov 22 02:23 bp
[root@node2 repositories]# chown -R csvn:csvn bp/                       #這時候進入csvn的web管理界面,會提示權限不足或者無法顯示出來,所以我們需要修改擁有者
[root@node2 repositories]# svnsync sync file:///application/csvn/data/repositories/bp/        #這個相當commit吧
Transmitting file data .
Committed revision 2.
Copied properties for revision 2.
[root@node2 repositories]# ls

編輯被同步的csvn服務器上的post-commit(本來是沒有這個文件的,需要把post-commit.tmpl 重命名為post-commit)

/application/csvn/bin/svnsync synchronize --non-interactive http://10.0.3.102:18080/svn/svncopy --username admin --password admin

那個網址為用來同步的另一台服務器svn路徑(我是直接進入csvn里面查看檢出命令,得到這個路徑的)

然后重啟csvn服務器就差不多了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM