配置svnsync主从复制:
一.首先准备两台服务器,端口号3690都得打开。
二.通过yum install subversion -y安装svn
主服务器:192.168.248.135
从服务器:192.168.248.136
192.168.248.135主机配置
1.首先安装svn ,安装好以后,rpm -qa subversion 查看svn版本是否一样
yum install subversion
2.创建svn源库目录
mkdir /home/svn
3.创建svn版本库
svnadmin create /home/svn/peace/
cd /home/svn/peace/
ls
4.修改conf下的三个配置文件
4.1修改文件svnserve.conf
[general]
anon-access=none //匿名用户访问权限:无
auth-access=write /普通用户访问权限:读、写
password-db=passwd //密码文件
authz-db=authz //权限配置文件
realm=/opt/svn/peace //版本库所在1
注意:所有以上的配置项都需要顶格,即前面不能预留空格,否则报错
4.2配置文件passwd
[users] admin = admin
4.3配置文件authz
[/]
admin = rw
* = rw
5.修改钩子文件:/home/svn/peace/hooks
cd /home/svn/peace/hooks
cp pre-revprop-change.tmpl pre-revprop-change
chmod 755 pre-revprop-change
vi pre-revprop-change
全部注释,结尾加
exit 0
修改配置文件post-commit 实现自动更新
cd /home/svn/peace/hooks
cp post-commit.tmpl post-commit
chmod 755 post-commit
全部注释,结尾加:
svnsync sync --non-interactive svn://10.129.13.136:3690 --username XX --password XX
export LANG=en_US.UTF-8 #避免主从编码不一致导致的错误
主机配置完成,启动svn
svnserve -d -r /home/svn/peace/ --listen-port 3690
备机配置:
1.首先安装svn ,安装好以后,rpm -qa subversion 查看svn版本是否一样
yum install subversion
2.创建svn源库目录
mkdir /home/svn
3.创建svn版本库
svnadmin create /home/svn/peace/
cd /home/svn/peace/
ls
4.手动复制主库的配置文件
scp 主库IP:/home/svn/peace/conf/* /home/svn/peace/conf/
cd /home/svn/peace/hooks
cp pre-revprop-change.tmpl pre-revprop-change
chmod 755 pre-revprop-change
vi pre-revprop-change
全部注释,结尾加
exit 0
启动备机启动:
svnserve -d -r /home/svn/peace/ --listen-port 3690
在主机实施初始化
初始化
svnsync init svn://192.168.248.136/ svn://192.168.248.135/
svnsync sync svn://192.168.248.136/ svn://192.168.248.135/
即svnsync init 目标库 源库
如果是多个库,路径一定要指到目标库
将向你询问登录目标库和源库的用户名和密码,建议为两个库设置相同的用户名及相同的密码
正确后,显示
Copied properties for revision 0.
初始化完成
测试:
查看主备的版本号是否相同: svnlook youngest /home/svn/peace/
在主机创建测试文件:
创建项目:svn mkdir svn://192.168.248.135/test/
svn co svn://192.168.248.135/test/
写一个测试文件 cd test && echo 132 > test
svn add test
svn ci -m "注释"
在备机查看测试文件:
svn ls svn://192.168.248.136/test/
如果有test文件,那么你就成功了
查看版本号:
svnlook youngest /home/svn/peace/ (版本号加一)
切换备机:
查看版本号: svnlook youngest /home/svn/peace/ (版本号加一)
svn checkout svn://192.168.248.135
将同步的文件导出,便可查看。
问题总结
1、
提示“svnsync: Repository has not been enabled to accept revision propchanges;
ask the administrator to create a pre-revprop-change hook”
按之前说明给主库也配置好pre-revprop-change文件
2、
svnsync: Revprop change blocked by pre-revprop-change hook (exit code 255) with no output.
修改hook下的文件权限
chmod a+x pre-revprop-change
svnsync: Session is rooted at ‘svn://10.129.13.97/home/svn/peace’ but the repos root is ‘svn://10.129.13.97’
3、拷贝完db目录后同步
[root@BJ-13-132 db]# svnsync sync file:///home/svn/peace/
svnsync: Destination repository has not been initialized