在实际的工作环境中,服务的备份与恢复是日程基础的维护与管理操作。但是直到10.2的版本,ArcGIS for Server才推出站点的恢复与备份功能。这就导致10.2之前的10.1和10. 1sp1的Server,在需要迁移或者重新安装的时候,无法重用已有服务。官方的迁移和回复答案是对site中的所有的服务都需要重新发布。那么问题就来了,当site中的服务特别的多,更甚发布服务的mxd文档找不到的时候,重新发布服务变得比较困难。这个时候就迫切的需要在不需要重新发布服务的情况下,能批量对已有site中服务进行迁移且在新的site中能够正常的运行。
在日程的技术支持工作中,经常遇到用户反馈上述需求。基于上面的目的,为了测试在不重新发布服务的情况下,平稳的迁移site。特做了多组测试。最后总结服务迁移的操作方式。
1. 单台服务器
1.1 情形一:数据源相同
由于服务的能否正常使用,一个关键点是服务能够找到对应的数据源,为了避免数据源带来的影像,在情形一的所有测试中,假设发布服务的数据源的绝对位置没有发生变化和连接数据源的连接方式没有发生变化。
A. Config-store 和directories存放路径相同
测试说明:
假设迁移前的ArcGIS for Server 的服务目录为C:arcgisserver,config-store和directories位于该目录下。且迁移后,新的site的服务目录不变。
测试步骤:
STEP 1: 拷贝迁移前服务目录中的config-store里面的services目录和整个directories (更为方便的方式是拷贝整个arcgisserver目录)
STEP 2: 删除site
STEP 3: 重新创建site, 根据前提条件,目录和原先site保存不变
STEP 4: 如果STEP1拷贝的只是services和directories 转到步骤5,拷贝了整个arcgisserver目录转到步骤6
STEP 5: 将步骤1备份的Services目录和directories目录拷贝到新创建的site对应的目录下,覆盖对应目录。由于datastore的存储信息没有带过来,故重新注册data store(注意data store和迁移前的一模一样,包括data store 的名字,连接字符串等,否则不能称为数据源不变)。https://blog.csdn.net/smss007/article/details/76154962 https://blog.csdn.net/smss007/article/details/76174149 https://blog.csdn.net/weixin_30507269/article/details/99121844
ArcGIS Data Store Service(10.3才有吗):https://www.cnblogs.com/myyouthlife/p/4271838.html https://www.cnblogs.com/xinligis/p/4223569.html
https://blog.csdn.net/weixin_40625478/article/details/109988314(ArcGIS Data Store与ArcGIS server取消联合和重新配置)
ArcGIS 10.1
注册数据库
STEP 6: 拷贝过来的arcgisserver目录,由于拷贝丢失了相关的权限信息。故在文件夹属性的安全中,赋予ArcGIS for Server 的完全控制选项。
STEP 7: 重新启动服务
B. config-store和directories存放路径不同
C. ArcGIS for Server的账户不同
1.2 情形二:数据源不同
1.3 情形三:未注册data store的情形
2. 多台服务器
在实际的工作中,服务迁移,除了刚才的在同台服务器中迁移外,还有一种情形,就是在多台服务器中之间迁移。
2.1 测试环境
服务器A: ArcGIS for Server10. 1+Windows Server2008+0racle11gR2
服务器B和服务器A的环境一致。
2.2 测试说明
服务器A上安装了ArcGIS for Server,且具有地图服务,切片服务,要素服务,gp服务等。需要将这些服务前移到服务器B上,在不需要重新发布服务的情况下,能够正常使用。
2.3 测试步骤
按照单台服务器迁移的多种情况,分别进行了测试。大体如下:
首先在服务器B上,安装与服务器A中的相同版本的Server,构建站点。将服务器A中备份的文件拷贝到服务B arcgisserver相对应的目录下。在多台服务器上的迁移,根据测试的情形不同,出现的现象和单台服务器测试情形完全一样。
不同的是,如果将服务器A中整个arcgisserver的目录拷贝到B中,覆盖B的全部ArcGIS Server 目录的话,B中的站点将会丢失。访问manager将出现创建站点的页面,出现这个问题的原因是,arcgisserver 中的config-store记录了机器是否属于某个site。为了避免去逐个修改config-store中的machine中的机器名,建议只覆盖config-store中的services和directories目录。
3. 结论
根据上面的测试,可以完全在不用重新发布服务的情况下,对已有站点中的服务进行迁移。在迁移的过程中,需要至少对services和directories目录进行备份。根据迁移前后的情况配置情况,分别进行不同的设置。
最为简单的迁移模式,迁移前后的Server的用户名和密码保持一致,arcgis server的物理位置一致,数据的存储不变,将备份的services目录和directories目录覆盖到对应的目录下,重新启动服务即可。
如迁移前后arcgisserver的物理位置发生变化,在上面的基础上,去config-store的services目录下,找到服务的配置文件,修改msd的路径,指向新的路径。
如数据源发生变化,则需要通过ArcMap或者Arcpy修复服务器端的MXD文档,然后使用arcpy生成msd,覆盖旧的msd文件,重启服务即可。