===数据库
声明:如下内容本是本身写给单位内部同事的参考手册,可是被传到百度文库中。陆续有用户就这方面的问题,经过电话,邮件等方式联系我。首先,感到荣幸。其次是,因为本人当时测试和编写的时候,因为仓促,可能有存在着缺陷的地方。若是你们在实际的工做中,按照这个方式出现问题或者想和我交流的话,请在该文章下面留言,尽可能回复你们。最后,我的不表明单位,也不表明官方。json
该文章百度文库的链接以下:安全
我是度娘服务器
下面的内容与文库有点不同,修改了诸如图片序列,错别字等低级错误。测试
===加密
在实际的工做环境中,服务的备份与恢复是平常基础的维护与管理操做。可是直到10.2 的版本,ArcGIS for Server才推出站点的恢复与备份功能。这就致使10.2以前的10.1和10.1sp1的Server,在须要迁移或者从新安装的时候,没法重用已有服务。官方的迁移和回复答案是对site中的全部的服务都须要从新发布。那么问题就来了,当site中的服务特别的多,更甚发布服务的mxd文档找不到的时候,从新发布服务变得比较困难。这个时候就迫切的须要在不须要从新发布服务的状况下,能批量对已有site中服务进行迁移且在新的site中可以正常的运行。url
在平常的技术支持工做中,常常遇到用户反馈上述需求。基于上面的目的,为了测试在不从新发布服务的状况下,平稳的迁移site。特作了多组测试。最后总结服务迁移的操做方式。spa
测试环境:Windows Server 2008, ArcGIS for Server 10.1, Oracle 11gR23d
因为服务的可否正常使用,一个关键点是服务可以找到对应的数据源,为了不数据源带来的影像,在情形一的全部测试中,假设发布服务的数据源的绝对位置没有发生变化和链接数据源的链接方式没有发生变化。rest
A. Config-store 和directories 存放路径相同
测试说明:
假设迁移前的ArcGIS for Server的服务目录为C:\arcgisserver, config-store和directories 位于该目录下。且迁移后,新的site的服务目录不变。
测试步骤:
STEP 1: 拷贝迁移前服务目录中的 config-store里面的services目录和整个directories(更为方便的方式是拷贝整个arcgisserver目录)
STEP2: 删除site
STEP 3:从新建立site,根据前提条件,目录和原先site保存不变
STEP4:若是STEP1拷贝的只是services和directories 转到步骤5,拷贝了整个arcgisserver目录转到步骤6
STEP5:将步骤1备份的Services目录和directories 目录拷贝到新建立的site对应的目录下,覆盖对应目录。因为data store的存储信息没有带过来,故从新注册data store(注意,data store和迁移前的如出一辙,包括,data store的名字,链接字符串等,不然不能称为数据源不变)。
STEP6: 拷贝过来的arcgisserver目录,因为拷贝丢失了相关的权限信息。故在文件夹属性的安全中,赋予ArcGIS for Server的彻底控制选项。
STEP7: 从新启动服务
结果:
测试的地图服务,要素服务,gp服务,切片服务都能正常运行。则证实经过这种方式,彻底能够在不用从新发布服务的状况下,对站点中的服务进行迁移。测试中发现,STEP5中即便不注册数据源也能成功,证实在msd中记录了数据源的链接信息。
B. config-store 和directories 存放路径不一样
假设迁移前的confg-store和directories在C:\arcigsserver,而新安装的ArcGIS for Server的目录在D:\arcigsserver 目录下。则按照上面1中的测试步骤测试。重启服务的时候,出现了如图1-1的错误。
图 1‑1重启服务出现错误
这错误也有力说明了,服务的发布是经过msd的形式。既然是msd的路径没有改过来,就须要找到Server的配置文档,并修改相对应的位置,在该过程当中,分别尝试修改了两个出现上面路径的地方
路径1:在arcgisinput的目录下的相对应服务目录下的manifest.json和manifest.xml文件(如arcgisinput\siteRS\MyMapServiceRS.MapServer\extracted\),经过这种方式重启服务,任然出现图1错误。说明msd的路径的映射不在该位置。
路径2:在config-store的services目录中找到对应的服务目录,修改了服务名对应的json文件中的相对应路径(如:config-store\services\siteRS\MyMapServiceRS.MapServer\MyMapServiceRS.MapServer.json)如图1-2所示:
图 1‑2服务配置文件
将以上路径,修改新site中的对应的位置,从新启动服务。全部服务都能正常启动。
C. ArcGIS for Server的帐户不一样
上面1和2的测试状况,易出如今Server正常而site的不能正常的状况,在能够不从新安装Server的状况下,修复site中的服务。
除了上面的状况,还有一种较为常见的状况,就是Server服务不能正常启动。这个时候就手动须要修复Server。一般推荐的方式,就是经过卸载已有的ArcGIS for Server,而后从新安装。
测试说明:
备份的ArcGIS for Server的帐户Administrator 密码:Administrator,而从新安装的ArcGIS for Server的帐户:ArcGIS 密码:ArcGIS;且arcigsserver目录保持不变。
测试步骤:
STEP1:卸载前,对config-store中的services和directories或者整个arcgisserver目录进行备份。
STEP2:删除Program Files目录中的所有Server目录,删除arcgisserver目录(也能够不手动删除,可是建议所有删除)
STEP3: 从新安装Server,建立站点
STEP4:将STEP1中的备份文件拷贝到对应的目录下
STEP5:重启服务,可是出现如图1-3所示的错误:
图 1‑3启动错误
经过查看日志文件,出现以下建立实例失败。如图1-4所示:
图 1‑4日志文件
一般出现该问题就是Server的帐户没有权限访问到arcgisserver目录。为了验证是帐户权限致使该问题,做了以下两种验证:
方式1:经过Configure ArcGIS Server Account 更改Server的帐户,操做如图1-5所示,更改到备份前Server帐户。重启Server服务,服务能正常启动和使用。
图 1‑5修改server帐户
方式2:在不修改server帐户的前提下,修改arccgisserver文件夹属性,更改其安全,如图1-6所示,赋予新的ArcGIS Server帐户对arccgisserver目录的控制权限。重启备份的服务,服务能正常启动和使用。
图 1‑6更改文件权限
PS:请注意ArcGIS for Server的帐户与ArcGIS for Server的管理帐户的区别。
上面的情形一中,都是默认数据源是相同的。可是在实际的状况下,有可能出现以下状况诸如:
更改了Server中的服务的数据源的链接字符串,如数据库的用户名,密码或者ip发生了变化,致使经过注册到Server的旧的sde链接字符串没有办法访问新的数据库。还又如发布服务的时候数据存储在filegeodatabase中,如今数据存储转存到sde中等等。无论怎么样,就是如今的Server访问不到发布服务的数据源。
测试说明:
为了单纯的测试数据源的不一样,该测试中,默认迁移的时候,Server的帐户和site的存储位置不变。只改变了链接sde的密码。
测试步骤:
和上面步骤大体同样。启动服务,服务可以正常启动,如图1-7所示:
图 1‑7 服务界面
可是经过rest页面访问的时候,出现以下1-8的错误:
图 1‑8 错误信息
因为Server端服务的正常与否是由msd决定的。为了探究可否直接修改msd中的数据源链接,来修复服务。尝试更改了msd的后缀,将其更改成zip,然后解压,能够看到msd包括的内容如图1-9所示:
图 1‑9 msd的文件结构
其中layers里面包含了服务的图层的配置和渲染信息,也记录了链接数据库的信息。因为数据库的密码已经被加密了,没有办法直接去更改xml文档中的密码。既然msd是由mxd生成,故选择修复服务器端的mxd文档,根据修改后的文档去从新生成msd。
Mxd和msd都位于该arcgisinput目录的对应的服务里,如:
C:\arcgisserver\directories\ArcGISsystem\arcgisinput\SiteRS\MyMapServiceRS.MapServer\extracted\v101
结果:
使用arcmap或者arcpy修复mxd,而后经过arcpy生成msd,覆盖现当前的msd,从新启动服务。服务可以正常启动和使用。同理可推,若是是将数据从file迁移到filegeodatabase或者到sde,或者三种互相迁移,一样能够先经过修复服务器端的mxd,而后再生成msd文件,来修复服务。
上面测试的情形,都是注册了data store的状况。在实际的状况中,还有未注册data store的状况。因为不注册data-store,服务中使用的数据,已经存在在服务目录的arcgisinput的目录中以文件(shapefile或者影像)或者filegeodatabase的形式存在。
因为服务的发布是经过msd的形式,只要恢复的Server可以访问到对应的msd文件便可。具体的更改和设置参考情形一中的多种状况。
在实际的工做中,服务迁移,除了刚才的在同台服务器中迁移外,还有一种情形,就是在多台服务器中之间迁移。
服务器A:ArcGIS for Server10.1+Windows Server2008+Oracle11gR2
服务器B和服务器A的环境一致。
服务器A上安装了ArcGIS for Server,且具备地图服务,切片服务,要素服务,gp服务等。须要将这些服务前移到服务器B上,在不须要从新发布服务的状况下,可以正常使用。
按照单台服务器迁移的多种状况,分别进行了测试。大致以下:
首先在服务器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目录。
根据上面的测试,能够彻底在不用从新发布服务的状况下,对已有站点中的服务进行迁移。在迁移的过程当中,须要至少对services和directories目录进行备份。根据迁移先后的状况配置状况,分别进行不一样的设置。
最为简单的迁移模式,迁移先后的Server的用户名和密码保持一致,arcgsiserver的物理位置一致,数据的存储不变,将备份的services目录和directories目录覆盖到对应的目录下,从新启动服务便可。
如迁移先后arcgisserver的物理位置发生变化,在上面的基础上,去config-store的services目录下,找到服务的配置文件,修改msd的路径,指向新的路径。
如数据源发生变化,则须要经过ArcMap或者Arcpy修复服务器端的MXD文档,而后使用arcpy生成msd,覆盖旧的msd文件,重启服务便可。