一个人不应该依附在其他人身上,一个人应该首先自力更生。你应该自己能够独立,能够安顿你自己,那你就不会害怕了。你爱你自己的话,别人不能不爱你吧。

Subversion库迁移及备份方案

上一篇 / 下一篇  2009-11-11 17:10:37 / 个人分类:SVN

Subversion库迁移及备份方案51Testing软件测试网 OJ:~/w-_` }
51Testing软件测试网r;j)f5o^tB8N-j%b
在做迁移操作前,请停止对svn进行提交操作。
&el(Q hl*L)j!{8T01. 迁移方案(采用dump -load方案):51Testing软件测试网9A6w-t.`7G F

!E(u'N4?m8`~0源SVN服务器:192.168.1.200,Windows服务器
WC'Kd4n0
*m2o `v&pU"R0目标SVN服务器:192.168.1.201,Windows服务器。采用CollabNet Subversion Server,假定subversion安装在D:\Program Files\CollabNet Subversion Server上,SVN的Repository为d:\Subversion\svnbackup51Testing软件测试网#Wk qKFmj [ Y

/vy;s a||2B0N2Q0也即Windows服务中,可执行文件的路径为:
-rO4^7u} } v}0mut"X051Testing软件测试网Le7D%g9KwE%a
“d:\Program Files\CollabNet Subversion Server\svnserve.exe” –service -r “d:\Subversion\svnbackup” –listen-port “3690″51Testing软件测试网5ut^Jgl"p-R!j
51Testing软件测试网+yd3G?:k"j2r w
由于目前在subversion服务器上实际上只有svn://192.168.1.200/rd目录下才有内容,因此只需要迁移svn://192.168.1.201/rd下的内容,步骤如下:51Testing软件测试网.N^}VB#o
51Testing软件测试网"T.J7njB8[ q
1、 在源服务器192.168.1.200上执行dump操作
*EeYMk7BE2T;i#M051Testing软件测试网4\7G;p4h(q~.o
注意此处实际上把repository中所有的目录都备份了,需要在load时候采用svndumpfilter命令过滤需要的目录。
!K6Mbf%JQu~.qe051Testing软件测试网W Td+J-F
svnadmin dump D:\Subversion\svnworkspace\bak >svn_all_20080520.dump51Testing软件测试网)h&`Dg$aVT'u&^
51Testing软件测试网oh"Syv d|;?1D
2、 在192.168.1.201上创建svnbackup Repository
7Y:C1Sa[4et g-Z,h%_051Testing软件测试网s b GE(]
svnadmin create d:\Subversion\svnbackup51Testing软件测试网-gI,Q*x:}&F?5B*g

/B S\F7bqB2p03、 下载一个windows 版本gnu 工具(例如http://sourceforge.net/projects/gnuwin32/),主要是使用cat方法
.p1Q IXXz@S:R5gF0
_6Xx6` Okd04、 将dump文件拷贝到上并执行load操作
:BWyG.b}[/LY0
1O7F C1tI(`uy d:a0        cat svn_all_20080520.dump | svndumpfilter --include:rd >svn_rd_20080520.dump
'o2MI5L(TxpW'w ^u0
9B"s(r'Sdj05、 执行svnadmin load
qabU_"MB4p0
k`&`N/i9Bq] I0        svnadmin load d:\Subversion\svnbackup < svn_rd_20080520.dump51Testing软件测试网+`"sX%A%D\

}h-j/N6rk9paG L06、 在192.168.1.201上配置svnserve.conf、passwd、authz文件
3o1T'y`0y O02. 迁移方案(采用svnsync方案)
u2y!D1^J.vc0
Yy4e)Rd_?0从subversion 1.4.4开始,提供了svnsync命令,可用于Subversion的库迁移和备份,这里我们用于备份操作的初始化同步。
9m6mqqzJ4T6l0
:v8~-]~dc/b,j0假定从源服务器192.168.1.201备份到192.168.1.8851Testing软件测试网_v|+s5ZCc3zs)o

|)~1L7F:nkTv0SVN服务器:192.168.1.201,Windows服务器,采用CollabNet Subversion Server,假定subversion安装在D:\Program Files\CollabNet Subversion Server上,SVN的Repository为d:\Subversion\svnbackup。51Testing软件测试网M8`jq1^

X9h0]U'N0备份服务器: 192.168.1.88,Redhat As 4服务器
XqxU E2a`XMX*W0
X"L k:l!A ];MT0采用svnsync进行数据迁移,方法如下:
W+b;Q-?_)v F0
RaV h+IG5k~ Sj01、 在备份服务器192.168.1.88上创建源服务器192.168.1.201上对应的备份库目录
qd By6QzZ&}9m0
/^)jRK v+c0mkdir /opt/subversion51Testing软件测试网fZw'qB$n|g;Z#qW
51Testing软件测试网8bO }'oV+h o
svnadmin create  /opt/subversion/svnbackup51Testing软件测试网L;KE9} z b&g2o
51Testing软件测试网2B)P.{ A0|&~K
2、在备份服务器192.168.1.88上启用钩子文件
y(f~(tZ051Testing软件测试网#P!P;Lh0\N5T
cd  /opt/subversion/svnbackup/hooks
7{lr [ ?\r;t3y9T0
#@$PA*`}7_e/hT0echo “#!/bin/sh”> pre-revprop-change
T)f*X9v.su'Q0
;lS7o)v1KO F0chmod 755 pre-revprop-change
C x2s-K,o&N$n-L#zvQ0
`)Cq#`9YV(Sxp03、在备份服务器192.168.1.88上运行svnsync init命令51Testing软件测试网8]6i Tlg Frp}wF

@yCF!h0svnsync init file:////opt/subversion/svnbackup  svn://192.168.1.201 –username username –password password
{wyA8]0
U7U0Q:wD G6~0注意,svnsync的语法为:svnsync init DEST SOURCE51Testing软件测试网W"?bMu:T_

"r]:v&S;t!x7u@-i-GE04、在备份服务器192.168.1.88上执行同步操作
9N Nzvf7p8W1G|0
4\9C R!xt5S O0svnsync sync file:////opt/subversion/svnbackup
+kG-EI{q h7i0
c U!Sk,@#A4A0由于svnsyc只能同步整个svn库,并不能同步指定的项目,因此建议迁移时候使用dump-load方案,备份时候采用svnsync方案
!p1zS Wv03. 备份方案:51Testing软件测试网DY S#} j GL*^|!z
51Testing软件测试网5k'?CXU2[
为保证svn服务器的安全,由脚本每天定时对svn库进行备份,以保证svn库的安全性。备份仍然采用svnsync来完成。
Z-^6}}3~5S)j0
#ZV!k4o1Kla01. 在192.168.1.88  上安装subversion 服务器端
|B]a3BNq]0
I.y lmCT4`02. 在192.168.1.88上创建备份用户帐号svnsync,以供192.168.1.201能够以此帐号实时把变更的同步到192.168.1.88上51Testing软件测试网&p)Xjt"P a"Q

$qwe sQB"W/w0配置文件svnserve.conf:51Testing软件测试网S2NyDb0hyp.PIdb8R
51Testing软件测试网/jIik,qD
[general]
#PX-Ps:s Ip'P051Testing软件测试网)hma1@ub
anon-access = none
:J cypt7M6Em#eC051Testing软件测试网\)HPk1~7~)sHG
auth-access = write51Testing软件测试网njf8\-I4|W
51Testing软件测试网%?4v`]G
password-db = passwd
W7Op(FD/?8C051Testing软件测试网,r8n+Lr!Mj}2f;x&]
authz-db = authz
j I#Za5b;E,a051Testing软件测试网.j x;T5f8^Ks t
配置文件passwd:
| qvEY%z ] GG051Testing软件测试网"H*^-Tr4T] |D
svnsync=svnsync
2X"r2t0v$sq0
ZL c8I8k)@'Qoj0配置文件authz
6pJ`)w T5I0
+x&ar x;[+g6j0[groups]
c8x&w-B^ a+|UVh0
hO6~hkY F0developer = svnsync51Testing软件测试网'N5[)~)i0}Wf G

d:F&]4fl#I6D\0[/]51Testing软件测试网 i+GHM[s3o(Y
51Testing软件测试网!Lv*w }j4p @*B
@developer=rw51Testing软件测试网Q%br Gp`,K1Y#Jb

8e8j~*u%p}r0* =51Testing软件测试网![ }Bq2Y^
51Testing软件测试网,hn[Z4NS)W6oD
3. 在备份机上开启iptables的3690端口51Testing软件测试网q@:n1T*d
51Testing软件测试网*Hlk:z6Hn['M-G#H
4. 在备份机192.168.1.88上创建备份库目录
%c;^*y&C5u0Q-S&sW}0
{ PnaK$hR8k0svnadmin create /opt/subversion/svnbackup51Testing软件测试网{T#M t/e b

V^ PE l.U0chown –R svnsync:svnsync  /opt/subversion/svnbackup51Testing软件测试网-B"MC-j*H W"S*Y
51Testing软件测试网RKA^a#u3l\
5. 按照上述采用svnsync方案的步骤,将库同步到192.168.1.88上,初始化svn库51Testing软件测试网5lx)\(},[r~$R
51Testing软件测试网UF`x6rJ6oaB
cd  /opt/subversion/svnbackup/hooks
e;QP/[1Pn an0
1J#\cf(e&i"L&\0echo “#!/bin/sh”> pre-revprop-change
1C#Y N H3f3C t051Testing软件测试网n+Ta?2NE&FVYg
chmod 755 pre-revprop-change
f A\5z$B5Q:l0
@k^%F]!R4k0svnsync init file:////opt/subversion/svnbackup  svn://192.168.1.201 –username username –password password51Testing软件测试网!j3q c q2` ~E N

#\([i8MB#wM"l0svnsync sync file:////opt/subversion/svnbackup51Testing软件测试网5\P"A*HU[3Q
51Testing软件测试网6G-z.r"xg{8c3b*O&m
6. 在源服务器192.168.1.201上,创建钩子文件,保证192.168.1.201上的变动实时同步到192.168.1.88上:51Testing软件测试网+u9fw8n Y*?p6h!q ]O
post-commit
._6Z^.{ `MCC0r0
1`3}dh2q0# Propagate the data to the remote repository51Testing软件测试网E*` g ai7ZC
51Testing软件测试网;\S HQ1h)F&B9D
D:\Program Files\CollabNet Subversion Server\svnsync synchronize --username svnsync --password svnsync  svn:// 192.168.1.8851Testing软件测试网}!o7O$wP H$Dq]6}-u"?M
51Testing软件测试网#o v*h|)b+n f e
post-rev-changes
7z4`*CK4J(tF0
&O^KCvm0# Propagating changes to the remote repository.51Testing软件测试网 j`%|bo5WA$Vs

vYXDv|%I!C#x0D:\Program Files\CollabNet Subversion Server\bin\svnsync copy-revprops --username svnsync --password svnsync  svn:// 192.168.1.88 $REV 51Testing软件测试网/{$ikQY8T#o4Y6k
51Testing软件测试网-uq;Gn Hqj&\
4. 参考文档:
9j^,W C4Xm)[m0
&k-Nl-s'QX2b$g0http://blog.notreally.org/articles/2006/11/30/setting-up-a-subversion-mirror-repository-using-svnsync/
#f4sfl;bWYh"} k0
6V4y\2rySkEC1|0

TAG:

 

评分:0

我来说两句

Open Toolbar