将Windows服务从一台服务器迁移到另一台服务器的方法

我正在设置一个临时服务器来testing一些关键软件的升级(WebSphere上的IBM Rational Team Concert)我不能重新安装应用程序,因为我没有所有的信息和configuration在原始安装过程中使用,所以我的计划是复制必要的文件夹并复制服务。 我找不到任何能让我导出服务的定义并将其导入到另一台机器上的任何东西。

Websphere在HKLM \ CurrentControlSet \ Services \ Websphereregistry项的周围和下面使用了一些额外的键,但在registry中没有其他任何东西。

我目前的计划是

  • 在目标上使用sc create(使用相同的服务名称)创build一个新的服务
  • 从源代码导出HKLM \ CurrentControlSet \ Services \ Websphere
  • 从上面导入注册码到目标上
  • 开始服务

任何人都可以看到这种方法的问题,或推荐一个工具来处理这个?

为了将我们的实时RTC和RQM服务器克隆到分段环境中,以下是我所做的,以防其他人适用:

  1. 将包含RTC / RQM / WebSphere的所有文件夹复制到目标机器上,保持path相同。 在我们的例子中是c:\program files\IBMc:\program files(x86)\IBM

  2. 在源机器上创build与WebSphere服务同名的服务(我们有一个RQM服务和一个RTC服务,我用sc create "IBMWAS70Service - SERVERNode01" binpath=c:\path\to\any\exe

  3. 从源计算机导出HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\IBMWAS70Service - SERVERNode01 。 您需要为每项服务都做到这一点。

  4. 将这些registry文件导入到目标机器上

  5. 我们的源服务器已经build立了一个名为ORACLE_JDBC的系统环境variables,它指向一个包含ojdbc14.jar的文件夹。 在目标上重新创build这个variables。 这个path也在系统PATH环境variables中,所以我也在那里添加了它。

  6. 删除c:\windows\temp\_jazz*c:\windows\temp\_.com_ibm*文件夹。

  7. 我们将所有数据库合并成一个具有不同模式的数据库。 当我们尝试启动RTC和RQM时,这导致了locking错误。 这是由两个程序共享相同的临时文件夹引起的。 我编辑了server.xml(位于\WebSphere\AppServer1\profiles\AppSrv01\config\cells\SERVERNode02Cell\nodes\SERVERNode02\servers\server1 )。 我把它添加到server.xml结尾附近的java properties部分<systemProperties xmi:id="olm_stage1" name="java.io.tmpdir" value="c:/temp" required="false"/>

  8. 编辑c:\windows\system32\drivers\etc\hosts并为您的数据库服务器(指向暂存数据库服务器)和rtc和rqm地址(指向登台机器本身)

  9. 开始服务