Linux环境下SVN代码库从旧服务器迁移到新服务器的步骤详解

李洋博客 2023-11-16 3.25 K阅读 1评论

文章最后更新时间:2023年11月17日已超过187天没有更新。

曾几何时我也是个能糊弄就糊弄的小白,不知道是年纪大了还是其他什么别的原因所致,遇到问题不在敷衍,总想着解决问题,就好比这次,因为旧主机磁盘已满想着续费不划算就趁着阿里搞活动新购一台,但是之前的数据多而杂且项目带有SVN库,如果是简简单单迁移还好说,毕竟备份恢复就完成了,这次我想着能不能把SVN也备份到新服务器直接使用,最终在我测试了36个小时之后得到的答案是【可以】,不然也不会有这篇文章了吧,哈哈~可能是因为比较笨,用时较长,哎反正不管怎么说这次SVN的备份和迁移算是尘埃落地,以下是我此次备份和迁移的过程。

Linux环境下SVN代码库从旧服务器迁移到新服务器的步骤详解 第1张

准备工作:

首先是备份网站的代码和数据库,但是不要备份网站根目录的【.svn】文件夹,因为这个svn都有自己的ID复制过去也不能直接使用而且还容易出错,正常备份还原即可。然后在【新服务器】安装和部署SVN功能,不会部署的直接参考【宝塔linux面板搭建SVN控制系统的图文教程】(仅仅参考到建库就行,后面的暂时不用),为了确定不出错也为了使记忆不混乱建议SVN库的名称设置跟【旧服务器】相同。
然后开始备份网站数据和数据到新服务器,也就是平常说的源代码和数据库,迁移完成后记得删除网站根目录的【.svn】文件夹,必须删除,必须删除,必须删除。

旧服务器操作步骤

首先在【旧服务器】进入下需要备份的SVN库的目录下,比如我要备份的是【svngnqy】,那就输入代码:

cd /www/svndata/svngnqy

进到目录后运行:

svnadmin dump /www/svndata/svngnqy/ > svngnqy.dump

代码解读是将【旧服务器】上SVN代码库目录【svngnqy】 ,备份成【svngnqy.dump】为了方便记忆我用的名称都是相同的,代码完成后如图:

Linux环境下SVN代码库从旧服务器迁移到新服务器的步骤详解 第2张

因为我使用新的SVN库做测试,所以内容比较少,这时候如果去SVN库目录我们就能看见这个备份的文件(下图有),备份完成后有两种方案下载,

第一种(不建议)方案

敲代码,在【新服务器上】输入代码:

scp -v  root@旧服务器的IP地址:/www/svndata/svngnqy/svngnqy.dump  /www/svndata/svngnqy

因为我们之前已经备份完成,现在需要在远程服务器下载到新服务器上,因为之前建的库就是相同的名称,所以仅供参考,把目录和名称换成实际库名。另外在输入旧服务器的root账号密码时要用【root】密码,而不是SVN库的,别问我怎么知道的,如图:

Linux环境下SVN代码库从旧服务器迁移到新服务器的步骤详解 第3张

第二种(建议)方案:

建议使用FTP等传输工具测试,毕竟我测试的svn库数据较小,如果大的话很浪费时间,如图这是使用代码迁移完成的,最下面就是备份的svn数据。下载备份好的文件,然后上传到【新服务器】,如图:

Linux环境下SVN代码库从旧服务器迁移到新服务器的步骤详解 第4张

【新服务器】操作步骤

还原svn库之前,确保网站源代码和数据已经恢复完成且访问正常,这个的还原仅仅针对SVN库的数据,不包含网站和数据,别弄错了。

在【新服务器】再次进入SVN库的所在目录,如下图,第一次没有在目录下进行的,所以出错,这里说下这个SVN库是前期准备工作建立的,如果没有建立需要先按照正常的顺序新建SVN库,名称可以跟旧服务器相同,以免弄错。

cd /www/svndata/svngnqy

然后再次输入还原命令:

svnadmin load /www/svndata/svngnqy < svngnqy.dump

如图所示,切记要进cd到对应目录下才能输入还原命令。

Linux环境下SVN代码库从旧服务器迁移到新服务器的步骤详解 第5张

将【svngnqy.dump】 < ( 写入 ) 到新服务器上【svngnqy 】的这个仓库中,过程根据文件大小决定,我的很小所以很快,如图成功。

Linux环境下SVN代码库从旧服务器迁移到新服务器的步骤详解 第6张

到现在已经完成了备份和迁移的【80%】,剩余的【20%】就简单了,刚刚不是说参考【宝塔linux面板搭建SVN控制系统的图文教程】到新建库吗,接下来就是设置访问权限等操作了,教程有,不过有个简单的办法,那就是直接下载【旧服务器】SVN库下的【conf】和【/hooks/】目录下的【post-commit】文件,然后给予【post-commit】文件【755】权限,最后直接输入同步代码:

svn checkout svn://新服务器IP/svngnqy /www/wwwroot/liblog.cn

其中【svngnqy】是SVN库的名称,【/www/wwwroot/liblog.cn】是指网站目录的路径,确定完成之后按回车,如图:

Linux环境下SVN代码库从旧服务器迁移到新服务器的步骤详解 第7张

同步完成之后我们只需要在本地【看好是本地的.svn文件夹,别再去删除服务器的】文件目录下删除【.svn】文件,然后将【旧服务器】IP地址更换成【新服务器】IP地址,然后【检出】即可,会提示什么非空,点击是自动同步了,好了,到目前为止教程步骤详解完成,该说不说哈,我愿称此文为我年度最佳文章,先不说字数多少,单单这个教程就是我找个好多个文章才摸索出来的,很有成就感,当然也可能是我不会搜索,没找到好用的教程,总之教程的算是完成了,接下来我就得挨个是备份下载和还原了,相信我接下来又会好长时间看不见我的文章,为什么?因为文章迁移的工作大且无聊,好了,有问题的留言反馈吧,反正我也不能解决,我就看看我不说话!!!

文章版权声明:除非注明,否则均为老李笔记原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
评论列表 (有 1 条评论,3253人围观)
网友昵称:李洋博客
李洋博客 V 博主 Sogou Explorer Windows 10 x64 沙发
2023-11-14 来自辽宁 回复
相信我,建议大家参考就行,如果可以选择我宁愿在新服务器重新搭建也不愿意走备份和迁移的道路。。。
取消
微信二维码
微信二维码
支付宝二维码