SVN主從備份


SVN主從備份

兩套環境:192.168.67.63(主SVN)

                 192.168.67.60(從SVN)


1.主環境上已經裝好SVN並且存在數據倉庫/home/svndata在從環境上,新建一/home/svndata_bak倉庫:

[root@bsdi home]# svnadmin create /home/svndata_bak
[root@bsdi home]# ll
總用量 0
drwx------. 3 bhd  bhd  78 4月  11 2018 bhd
drwxr-xr-x. 6 root root 86 12月  3 13:59 svndata_bak
[root@bsdi home]# cd svndata_bak/
[root@bsdi svndata_bak]# ll
總用量 8
drwxr-xr-x. 2 root root  54 12月  3 13:59 conf
drwxr-sr-x. 6 root root 233 12月  3 13:59 db
-r--r--r--. 1 root root   2 12月  3 13:59 format
drwxr-xr-x. 2 root root 231 12月  3 13:59 hooks
drwxr-xr-x. 2 root root  41 12月  3 13:59 locks
-rw-r--r--. 1 root root 229 12月  3 13:59 README.txt

2.把主環境上的conf下的authz、passwd、svnserve.conf拷貝覆蓋掉從環境上的conf下的文件,覆蓋之后注意修改svnserve.conf中的路徑設置,並且主從環境上的svnserve.conf中的anon-access都要設置成none:

anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = /home/svndata_bak

3.修改hooks文件夾下的pre-revprop-change(注意主從環境上的都要做同樣的修改):

[root@bsdi hooks]# vim pre-revprop-change.tmpl
#!/bin/sh
exit 0
[root@bsdi hooks]# mv pre-revprop-change.tmpl pre-revprop-change
[root@bsdi hooks]# chmod +x pre-revprop-change

4.設置完成之后啟動svn,這樣就得到一個和主環境上相同用戶和權限的從SVN庫:

[root@bsdi hooks]# svnserve -d -r /home/svndata_bak --listen-port 2396

5.接下來在主環境上操作,如下這一條命令是初始化版本:

[root@bsdi hooks]# svnsync init svn://192.168.67.60:2396 svn://192.168.67.63:2396 --username limang --password pwd123!@ --no-auth-cache
復制版本 0 的屬性。
[root@bsdi hooks]#

6.同步數據:

[root@bsdi hooks]# svnsync sync --non-interactive svn://192.168.67.60:2396 --username limang --password pwd123!@
已提交版本 1。
復制版本 1 的屬性。
傳輸文件數據......................................................................................................................................................................
已提交版本 2。
復制版本 2 的屬性。
傳輸文件數據.
已提交版本 3。
復制版本 3 的屬性。
[root@vasoyn hooks]#

此時主從數據已經成功同步,在svn瀏覽器中訪問從環境,發現已存在一個一摸一樣的倉庫。

7.接下來在主環境上使用hooks下的post-commit腳本進行SVN實時同步:

修改post-commit如下:

[root@bsdi hooks]# vim post-commit.tmpl
#!/bin/sh
svnsync sync --non-interactive svn://192.168.67.60:2396 --username limang --password pwd123!@
[root@bsdi hooks]# mv post-commit.tmpl post-commit
[root@bsdi hooks]# chmod +x post-commit

此時當主環境上SVN有代碼提交時,會觸發這個腳本並執行里面的命令實現主從同步。

8.設置SVN開機啟動:

SVN主從同步的前提是,主從SVN可以互相訪問,所以需要將主從SVN都設置開機啟動:

修改/etc/rc.d/rc.local並設置該文件為可執行文件:

[root@bsdi hooks]# vim /etc/rc.d/rc.local
#!/bin/bash
svnserve -d -r /home/svndata --listen-port 2396
[root@bsdi hooks]# chmod +x /etc/rc.d/rc.local
[root@bsdi hooks]#


免責聲明!

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



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