由于Windchill系统升级失败,需要将系统恢复到备份时的状态。停掉所有服务后,开始做文件系统的恢复。恢复完成后启动Windchill,观察methodserver的启动日志发现methodserver启动出错,最后停止服务。报错信息如下:
星期四 10/16/08 09:13:27: main: ManagerServiceFactory: 关闭所有管理器。
星期四 10/16/08 09:13:27: main: ManagerServiceFactory: 无法启动所有管理器。
星期四 10/16/08 09:13:27: main: MethodServerMain abort: wt.services.ManagerException: 无法启动所有管理器。
星期四 10/16/08 09:13:27: main: 嵌套异常是: (wt.services.servicesResource/21) wt.services.ManagerException: 无法启动下列管理器:"com.ptc.windchill.upgrade.history.service.DatabaseVersioningService" ,它带有实现类:"com.ptc.windchill.upgrade.history.service.StandardDatabaseVersioningService"
星期四 10/16/08 09:13:27: main: 嵌套异常是: wt.services.ManagerException
星期四 10/16/08 09:13:27: main: 嵌套异常是: com.ptc.windchill.upgrade.history.IUHException: Cannot activate installation that is not the latest one
星期四 10/16/08 09:13:27: main: at com.ptc.windchill.upgrade.history.InstallAndUpgradeHistory.activateWorkingInstallation(InstallAndUpgradeHistory.java:172)
星期四 10/16/08 09:13:27: main: at com.ptc.windchill.upgrade.history.service.StandardDatabaseVersioningService.performStartupProcess(StandardDatabaseVersioningService.java:195)
星期四 10/16/08 09:13:27: main: at wt.services.StandardManager.startup(StandardManager.java:622)
星期四 10/16/08 09:13:27: main: at wt.services.ManagerImplementation.startup(ManagerImplementation.java:446)
星期四 10/16/08 09:13:27: main: at wt.services.DefaultStartupHandler.startup(DefaultStartupHandler.java:205)
星期四 10/16/08 09:13:27: main: at wt.services.StandardManagerService.performStartupProcess(StandardManagerService.java:211)
星期四 10/16/08 09:13:27: main: at wt.services.StandardManager.startup(StandardManager.java:622)
星期四 10/16/08 09:13:27: main: at wt.services.StandardServicesHandler.start(StandardServicesHandler.java:43)
星期四 10/16/08 09:13:27: main: at wt.method.MethodServerMain.run(MethodServerMain.java:304)
星期四 10/16/08 09:13:27: main: at wt.method.MethodServerMain.start(MethodServerMain.java:207)
星期四 10/16/08 09:13:27: main: at wt.method.MethodServerMain.main(MethodServerMain.java:174)
星期四 10/16/08 09:13:27: main: Stopping services...
星期四 10/16/08 09:13:27: main: ManagerServiceFactory: 关闭所有管理器。
星期四 10/16/08 09:13:27: main: MethodServer stopped.
用应用用户连接ORACLE是OK的。重新启动监听和数据库也没用,重启小型机问题也没解决。从错误提示看好像跟升级有关,同时还提到了ORACLE。难道升级的过程中往数据库插入了一些记录?是些什么记录呢?应用端的配置肯定是没问题的,因为是从磁带恢复过来的。那问题可能出现在数据库上。从冷备还原数据库,然后再次启动服务,OK!看来真是在升级的过程中往DB表里写入了些什么,如果能找到是哪张表,以及是哪些记录就更好了。这样就省了还原数据库的时间。知道的XD告诉我一下啊。
今天来更新一下这个帖子。
跟PTC工程师交流后得出一个大致的结论:升级的过程中往数据库中插入一些记录,如果升级失败,用原来的FS进行恢复。wc启动的过程中会检查数据库,这时会发现数据库记录的条目跟备份的FS中的数据不一致,这样就导致wc启动失败。另外还有一种情况:wc连接不同的数据库,因为其它数据库记录的组件可能跟原来的数据库不一样也会导致wc启动失败。在HA测试中有时也会导致wc无法正常启动,恢复备份的文件系统(wc所在的文件系统),wc依然无法启动。这说明数据库发生改变了。用数据库的冷备还原一切OK。但冷还原的代价比较高,如果能具体到某张表效率就会高很多。经讨论最有可能改变的表应该是repository。最后我们可以检查infoenger的一些设置。另外有几张跟wc组件相关的表也很重要:wtupginst_incrementalupdate;wtupginst_installtion;wtupginst_upgradephase;wtupginst_versionedassembly.
有说错的地方还请大家指正,这样才能一起提高。
阅读(2478) | 评论(0) | 转发(0) |