SVN迁移

原服务器:WinServer 2008R2
SVN Server:3.6.1

新服务器:WinServer 2016
SVN Server:3.9.1

操作:

  1. 在新服务器上安装SVN Server,并配置存储库路径;
  2. 将原服务器SVN Server存储库下的所有文件同步到新服务器的存储库下;
  3. 同步方式自选(因为文件比较碎,手动拷贝麻烦,这里选用FileGee做文件同步);
    因为SVN Server的版本差异不大,文件结构一致,所以可以直接将原Repositories下的所有内容拷贝到新的Repositories下。
    这些文件当中不仅包含了SVN Server存储的文件数据,还包含用户账户的所有信息(账号、密码、分组)。
  4. 域名解析
    之后将新的SVN服务器映射到原SVN Server使用的外网端口(IP可以改变),并将原SVN Server使用的域名解析到该外网IP。
    这样对于原SVN用户来说,不需要做任何更改就可以继续使用原来已经获取的文件。

相比于SVN迁移的简单粗暴,TFS的迁移就要复杂一些。不过好在这里只是做的单机迁移。
两种方案:
一、同版本迁移;
二、重新部署升级版后,再迁移代码和相关账户;

TFS同版本迁移

  1. 同版本的范围包含:服务器版本、数据库版本、TFS版本要求一致;
  2. 依次安装配置服务器、数据库、TFS;
  3. 将原服务器TFS服务停止,保证数据不再变更;
  4. 对TFS产生的数据库进行分离;
  5. 将数据文件(.mdf与.ldf)拷贝到新TFS环境,进行附加;
  6. TFS配置完成后,在应用层-团队项目集合中附加集合,列出并选择新附加的数据库进行集合附加;
  7. 根据需求决定是否要将TFS服务器映射到外网;
  8. Windows Server账户我没有找到好的导出导入方法,如有好的方法还请赐教(多谢)。

TFS重新部署升级版迁移

这是本次记录的主要内容,即TFS2018的安装及配套配置。

  1. 版本信息;
    服务器:Windows Server 2016 Datacenter;
    数据库:SQL Server 2017(详细信息如下);

       Microsoft SQL Server Management Studio 14.0.17285.0
       Microsoft Analysis Services 客户端工具 14.0.1016.283
       Microsoft 数据访问组件 (MDAC) 10.0.14393.0
       Microsoft MSXML 3.0 6.0 
       Microsoft Internet Explorer 9.11.14393.0
       Microsoft .NET Framework 4.0.30319.42000
       操作系统 6.3.14393

    TFS:Team Foundation Server 2018 (16.131.28002.2);
    报表服务器:Microsoft SQL Server Reporting Services 14.0.6827.4788(产品/文件版本);

  2. 数据库安装配置;
    数据库安装前要先做一些准备工作(WinServer 2016的操作界面跟Win10很像,我喜欢):

    • 先创建几个用户备用,名称自己知道是做什么用的就行,不必同下方一样;

      TFS管理员账户:tfsadmin;
      执行账户:tfsexec;
      文件共享账户:filesharer;
      报表查阅:ReportReader;

      将tfsadmin账户添加到Administrators、Remote Desktop Groups、Performance Log Users(可根据自己的情况调整);

    • 服务器重命名;
      名称简短明了一些,后面配置,甚至登录时都会用到,这里就叫tfs2018,重启服务器;
    • 安装SQL Server;
      最好使用新的管理员账户tfsadmin远程登录服务器,安装配置过程方便一点;
      安装的详细步骤这里不赘述,多数地方都是默认就好:

      • 安装服务的选项:
        至少包含:数据库引擎服务、全文和语义提取搜索、Analysis Services、客户端工具连接;
        可选服务:客户端工具向后兼容性、SQL 客户端连接SDK(根据自身情况调整选项内容);
      • 实例根目录及共享功能目录路径的选择:
        不建议放到系统盘,除非你的系统盘容量足够充足,且读写性能比其他盘高一个档次。
        如果安装时选择了系统盘,后期想把数据迁移到其他盘,
        需要先将要迁移的数据库执行分离任务,然后将数据文件拷贝到其他盘,然后再对数据库进行附加。
      • 服务器身份认证选择“SQL Server 和 Windows 身份验证模式”,并添加 tfsadmin(即当前用户)为SQL Server管理员;
        如果前面没有添加 Windows 用户,可以用 sa 连接到数据库,
        在安全性-登录名下添加用户 tfsadmin,并将其服务器角色设置为sysadmin;
      • 在登录名下添加报表数据库账户:reportdba;
      • SQL Server Analysis Service配置时选择多维和数据挖掘(这一点很重要!!,否则报表服务配置会有问题)。
  3. 安装并配置报表服务器;
    安装过程没有什么特别要说的;
    配置很多选项可以使用默认选项,这里详细列一下;

    • 服务账户:默认即可,也可自行创建 Windows 用户,并配置为报表服务器服务账户;
    • Web服务URL:默认即可,如果需要配置外网访问,可在第一次配置完成后,再回来点击高级按钮进行域名或外网ip添加(也可绑定证书),如下图:
      报表服务URL绑定
    • 数据库:创建新的ReportServer即可,凭据可使用创建好的reportdba;
    • Web门户URL:URL的配置与Web服务URL的配置同理;
    • 电子邮件设置:根据自身情况进行配置;
    • 执行账户:默认即可,也可使用创建好的tfsexec;
    • 加密密钥:备份一下就可以了;
    • 订阅设置:默认即可,也可使用创建好的filesharer;
    • 其余选项默认即可;
      配置完成后,就可以去配置TFS了(可以在配置的过程中,安装下一个程序,提高效率);
  4. 安装配置TFS;
    安装过程不做赘述,多数为默认,安装地址根据自身情况选择;
    初次配置会有配置向导,根据配置向导进行逐项配置:
    多数采用默认设置就好,配置完,后面是可以修改的,无需新建集合,验证时会报JARA的错误,选择其提供的下载安装选项即可。
    配置完成后,可以根据自己的情况进行配置调整:
    其中绑定的端口是要在IIS的TFS站点上修改绑定的;
    这里主要说一下其中的几个坑:

    • 映射外网端口:内外网端口要一致,否则跳转的时候可能会出现意想不到的问题;
    • TFS站点并不是所有的端口都能用,哪怕这个端口在服务器端并没有被占用,如6666端口,谷歌浏览器就无法访问你的TFS,其他浏览器有的可以;
    • 公共URL与TFS站点地址不要冲突;
    • 防火墙的入站规则配置,要配置要用的端口,部分云服务器,如阿里云,还要配置安全组的端口(Web防火墙);
    • 管理控制台用户要把需要使用TFS控制台的用户添加进去,同时也要把该用户添加到远程用户组,及数据库登录名,否则操作过程中会很难受;
    • 关掉VPN,哪怕不是全局代理,因为会引起TFS访问登录异常,现象就是初次登录没问题,之后就间歇性抽风,不断跳出登录弹窗,这时你可以关掉代理后尝试登录;
    • 简单讲就是先把安装配置搞定,然后内网访问登录TFS,确定没问题,然后映射并测试外网端口是否畅通(telnet ip/domain:port 需要在启动或关闭Windows功能中安装Telnet客户端),之后再测试外网访问登录是否正常。
  5. 代码迁移;
    先根据原有目录依次创建集合(TFS控制台)、创建项目(TFS Web)、创建存储库(针对Git管理的项目);
    TFS管理的项目,先把原来的项目拉下来,然后复制上传到新的TFS上(因为数据库结构不同,我也没好的办法);
    Git管理的项目,把原来的项目克隆下来,然后镜像推送;用到的命令:

    git clone OldTfsCodeUrl
    git push --mirror NewTfsCodeUrl

    这样可以把原来的修改记录保留下来;
    注意:原来的代码中可能引用了某些旧的服务器地址,也需要手动修改;

  6. 用户迁移;
    我是手动创建的(期待您有好的建议);

至此我的SVN和TFS服务器迁移经历就叙述完了,记录一下两天三夜的忙碌。希望对你有所帮助。
有问题可以留言,不一定能回复,用到的资源可以联系我邮箱 ably@vip.163.com。


Ably
603 声望44 粉丝

Let everything around us become better