SVN===》SVN服务器迁移MySQL数据库迁移
Posted 一夜暴富--gogogo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SVN===》SVN服务器迁移MySQL数据库迁移相关的知识,希望对你有一定的参考价值。
一、SVN迁移服务器步骤
将SVN从一台服务器(源服务器)迁移到另一台服务器(新服务器)上,操作分为两步
- 按照源服务器的版本,在新服务器安装同样的版本的SVN
- 同步源服务器的SVN库到新服务器上
二、老服务器上安装部署SVN步骤(迁移不做此操作,只是补充SVN的部署流程)
#1.下载安装
yum install subversion
svn --version 查看版本
#2.创建仓库目录
mkdir -p /home/data/svn/
cd /home/data/svn/
#3.创建SVN仓库
svnadmin create axhub
#4.配置SVN
(svnserve.conf)
cd /home/data/svn/axhub/conf
vim svnserve.conf
#匿名访问的权限,可以是read,write,none,默认为read
anon-access=none
#使授权用户有写权限
auth-access=write
#密码数据库的路径
password-db=passwd
#访问控制文件
authz-db=authz
#认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字
realm = /home/data/svn/axhub
(passwd文件)
该文件由一个[users]配置段组成,格式:<用户名>=<口令> 注:口令为未经过任何处理的明文。
cd /home/data/svn/axhub/conf
vim passwd (可以设置多个用户)
[users]
admin=admin
(authz文件)
该文件由[groups]配置段和若干版本库路径权限段组成
[groups]配置段格式:<用户组>=<用户列表>,用户列表由若干个用户组或用户名构成,用户组或用户名之间用逗号","分隔,引用用户组时要使用前缀"@"
cd /home/data/svn/axhub/conf
vim authz
[groups]
[/]
admin=rw
* =
[/axhub]
admin=rw
* =
总结:
SVN管理员可以通过这3个配置文件设置svnserve服务的用户名口令,以及对版本库路径的访问权限。这些配置文件保存后就立即生效,不需要重启svnserve服务。
#5.启动svn
svnserve -d -r /home/data/svn/axhub/
#6.停止svn
killall svnserve
三、新服务器上安装部署SVN
#1.下载安装SVN
yum install subversion
svn --version 查看版本
四、迁移
SVN的迁移: ( 建议迁移的时候,将所有源库SVN所有账号的权限改成只读,或者停掉SVN服务器 )
迁移方法两种:
- dump出源机器SVN的代码库,然后load到新服务器上去。
- 使用 svnsync 直接同步源机器代码库。(推荐使用)
(第一种方法存在隐患:dump完,如果文件很大,几十个G,时间会很长)
1.采用dump迁移SVN代码库
#1.dump 出源机器的SVN代码库: ( 依照SVN数据量的大小,时间可能会很长 )
svnadmin dump 库目录 > 111.dump
#2.使用 scp(secure copy)命令,将dump出来的文件传到 新机器上
scp -r /home/data/svn/111.dump root@111.111.111.111:/home/data/svn
#3.在新机器上创建仓库
svnadmin create /home/data/svn/axhub
#4.将 dump 文件 load 进 新服务的仓库中
svnadmin load /home/data/svn/axhub < 111.dump
#5.启动新机器的SVN服务
svnserve -d -r /home/data/svn/axhub/
#6.查看 SVN服务是否 启动
ps -ef|grep svn|grep -v grep
#检测svn 端口
netstat -ln |grep 3690
#补充: SVN服务的默认启动端口是 3690, 可以通过 svnserve --listen-port 8899 -d -r axhub(SVN仓库路径)指定端口启动
2.使用 svnsync 迁移SVN代码库 ( 推荐使用这种方式 )
#1.在新服务器上创建代码仓库
svnadmin create /home/data/svn/axhub
#2.修改新建仓库中hooks 下的 名为 pre-revprop-change 的文件
cd /home/data/svn/axhub/hooks
cp pre-revprop-change.tmpl pre-revprop-change
vim pre-revprop-change
最后一行将exit()改成exit 0
#3.初始化
svnsync init file:///home/data/svn/axhub http://139.224.224.108:82/svn/axhub
( svnsync init file:// 新机器仓库目录路径 源服务器的IP(可以通过 http 协议,还可以通过svn协议) )
这块需要输入密码验证,新服务器的密码 源服务器SVN的账号密码,此账号应该有仓库所有代码的读取权限
#4.同步
svnsync sync file:///home/data/svn/axhub
#5.等待同步完成,启动SVN服务器即可
五、mysql数据库迁移
- 停掉原有服务防止在迁移过程中产生数据差异
- 在原数据库上进行备份:mysqldump -uroot -p --all-databases --single-transaction -q -E -R --triggers >bak.sql
- 将备份文件scp到目标服务器
- 在目标服务器部署数据库
- 导入备份数据:mysql -uroot -p < bak.sql
以上是关于SVN===》SVN服务器迁移MySQL数据库迁移的主要内容,如果未能解决你的问题,请参考以下文章