基于一次ArcGIS Server迁移升级实践详谈如何给server切换数据库

2
分享 2019-12-31
需求:

现运行的数据库需要迁移到新机器上,新数据库IP会发生变化。
现运行的arcgis server 10.2需要迁移到新机器上并升级到10.6版本,新机器IP会发生变化。
现运行的arcgis server10.2引用了现运行中数据库中的数据,最终实现目标是将arcgis server升级到10.6后直接引用新数据库,避免重新配置mxd并发布服务。
同时,在迁移升级过程中,不影响现有业务系统使用在运行的数据库和ArcGIS  Server。


注:迁移有风险,动前需备份。
 
 
 
关键技术:
 
这次迁移之可以实现迁移前已经发布的服务迁移升级后直接引用新数据库数据,主要利用了ArcGIS Server10.4出的新特性:支持更新注册数据库和托管数据库的密码。
 
以下摘自arcgis server 104 whats new官方帮助:

“出于安全原因,大部分组织需要员工定期重置密码。如果您将数据库身份验证用于注册到 GIS 服务器的企业级地理数据库和数据库,则现在您可以导出包含当前密码的新数据库连接文件。该操作允许已发布到托管数据库的要素服务以及现有地图、要素和您从注册数据库发布的影像服务继续工作。
可自动更新从 ArcGIS 10.4 for Server 发布的新服务的连接。如果升级 ArcGIS Server 且希望能够更新现有服务所使用的连接中的密码,则 ArcGIS Server 管理员必须在升级 ArcGIS Server 站点后运行 ExternalizeConnectionStrings。”


 
注:如果是10.4及以后的ArcGIS Server,没有升级ArcGIS Server的需求,只有修改数据库的需求,可以参考这个连接
http://zhihu.esrichina.com.cn/article/3835
 
 
 
需求实现步骤:
  1. 将arcgis  server 10.2集群在新机器上还原单机站点;
  2. 通过覆盖安装,将arcgis server从10.2升级到10.6版本;
  3. 在升级后的arcgis server 10.6机器上执行externalizeconnectionstring.bat,实现更新服务数据库连接;
  4. 在server现有注册好的数据库中,修改数据库连接;注意一定要在原有数据库注册上修改, 而不是将其删除后重新注册新库;
  5. 重启arcgis server服务,将旧数据库停止测试出图是否正常。

 
 
换库详细步骤说明:
 
下面详细展开需求实现步骤3到 5中的操作。每一步的操作都很简单。 详细步骤中包含了每一步执行完成后被修改的arcgis server的关键文件。从arcgis server101之后图层引用数据源的关键信息存储在msd中。下面图一中是arcgis server升级前后同一个服务msd的对比图,此时没有区别。
 

p1.png

图一 升级前后同一服务的msd mxd文件没有区别
 
  第3步在ArcGIS Server升级到10.6版本后,在该机器上执行externalizeconnectionstring.bat,见图二。
 

p2.png

图二 运行bat工具升级102server的服务的msd文件
 
 
观察位置一通过图三中的修改时间可以观察到这个工具跟新了msd中的内容。
 

p3.png

图三 运行bat工具后msd文件被更新
 
同时观察服务的数据注册中,102版本发布的服务的数据库注册中,从‘referenced’变成了‘replaced’。
 

p4.png

图四
 
 
再观察一个站点升级到106版本后发布的服务做对比,依旧是‘referenced’的状态。
 

p5.png

图五
 
 
 
观察位置二
 
打开并观察服务的msd,找到包含sde连接文件,
 
10. 2 arcgis server版本的中msd中数据库连接如下:ENCRYPTED_PASSWORD=00022e682f44766c317a76735946706f2b427630774f697958513d3d2a00;SERVER=192.168.100.104;INSTANCE=sde:oracle$192.168.100.104/orcl;DBCLIENT=oracle;DB_CONNECTION_PROPERTIES=192.168.100.104/orcl;USER=sde;VERSION=SDE.DEFAULT;AUTHENTICATION_MODE=DBMS
 
10. 6 arcgis server版本的中msd中数据库连接如下:ENCRYPTED_PASSWORD=00022e6854415a41316472693273474d64386b536a75714976413d3d2a00;SERVER=192.168.100.104;INSTANCE="DSID=8e046387-6831-475f-b4b1-0347421a8003";DBCLIENT=oracle;DB_CONNECTION_PROPERTIES=192.168.100.104/orcl;USER=sde;VERSION=SDE.DEFAULT;AUTHENTICATION_MODE=DBMS
 
102版本升级上来的服务,经过externalizeconnectionstrin.bat工具更新后的如下:ENCRYPTED_PASSWORD=00022e6854415a41316472693273474d64386b536a75714976413d3d2a00;SERVER=192.168.100.104;INSTANCE="DSID=8e046387-6831-475f-b4b1-0347421a8003";DBCLIENT=oracle;DB_CONNECTION_PROPERTIES=192.168.100.104/orcl;USER=sde;VERSION=SDE.DEFAULT;AUTHENTICATION_MODE=DBMS
可以发现,102服务经过工具,sde连接已经跟106形式保持一致。
 
 第4步:更新现有数据库连接到新的数据库。(此时数据库已经成功迁移到新机器上,新旧数据库同时存在。)
!注意:要编辑已经注册的数据库连接,在其基础上选择新的数据库连接。
 

p6.png

图六 在已经存在的数据注册上直接修改,更新数据注册到新的数据库
 
 此处还应该在server升级前后,观察arcgis server注册数据源库的位置的对比。
位置示例:C:\arcgisserver\config-store\data\enterpriseDatabases
 
 第5步:重启arcgis server服务,然后将老数据库停止进行测试,确保动态服务出图正常。
 
 
 
参考链接:
https://enterprise.arcgis.com/ ... r.htm

0 个评论

要回复文章请先登录注册