DB数据库的数据不能同步到Warehouse数据仓库

问题原因:

远程登录到服务器,开始->管理工具->计算机管理->事件查看器->Windows日志->应用程序,打开错误信息,错误提示参考文档。                      

查看文档,我们这么一句看到应修整名称“SysImpManagement_ImplyIssue_SupportConfirmtime ”开头或结尾的空白。

SysImpManagement_ImplyIssue_SupportConfirmtime是实施问题流程的一个字段,我们看到字段后面有一个空格,通过查看数据库,此字段添加的时间为2013-10-17 上午11点左右,Warehouse中2013-10-17上午9点的数据已经同步,在在17号11点之后的数据都没有同步进来,因此我们将问题定位在这个空格上。

解决方案:

确定问题字段

(1)       实施流程在DefaultCollection项目集合上有部署。首先,我们使用查看在这个数据库下的Fields表的这个字段:

select *

from Tfs_DefaultCollection.dbo.Fields a

where a.Name='S_实施支撑确认时间';

查看ReferenceName字段的值,确实包含一个空格;

(2)       用UE打开实施问题流程,查看'S_实施支撑确认时间'字段,发现其引用名为refname="SysImpManagement.ImplyIssue.SupportConfirmtime
",可以看到出现了乱码‘
’,即空格。我们查看其他字段是否含有空格,因为系统有时报的错误并不全面,发现还有‘S_实施支撑分析时间’和‘S_实施支撑分析者’的引用名后面有乱码;

创建新字段代替旧字段

(3)       保存此文件,命名为“实施问题原字段流程.xml”,令复制一份,命名为“实施问题中间流程.xml”;

(4)   在“实施问题中间流程.xml”中重新定义三个字段来代替'S_实施支撑确认时间'、‘S_实施支撑分析时间’和‘S_实施支撑分析者’,注意按照原命名规则进行定义,不要发生冲突,将所有用到'S_实施支撑确认时间'、‘S_实施支撑分析时间’和‘S_实施支撑分析者’的地方全部替换为新定义的字段,注意不要删除原字段;

(5)   将“实施问题中间流程.xml”更新到DefaultCollection项目集合下的项目中;

(6)   新建查询,保证列选项中有'S_实施支撑确认时间'、‘S_实施支撑分析时间’、‘S_实施支撑分析者’和新定义的三个字段,保存查询;

(7)   将查询结果在Excel中打开,将'S_实施支撑确认时间'、‘S_实施支撑分析时间’和‘S_实施支撑分析者’的值拷贝到对应的新添加的字段中,发布;

删除旧字段

(8)   拷贝一份“实施问题中间流程.xml”,命名为“实施问题新字段流程.xml”,将'S_实施支撑确认时间'、‘S_实施支撑分析时间’和‘S_实施支撑分析者’的定义删除,保存;

(9)   将“实施问题新字段流程.xml”更新到服务器;

从数据库中删除字段

(10)   在DefaultCollection数据库中按一下方式删除字段:

select * from Tfs_DefaultCollection.dbo.Fields a where a.Name='S_实施支撑确认时间';--FldID=10206

delete from Tfs_DefaultCollection.dbo.Fields where FldID=10206;

delete from Tfs_DefaultCollection.dbo.FieldUsages where FldID=10206;

delete from Tfs_DefaultCollection.dbo.WorkItemTypeUsages where FieldID=10206;

由于Fields是主表,所以删除时需先执行下面两条语句。

(11)   在Warehouse数据库中按一下方式删除字段:

select * from Tfs_Warehouse.dbo._WitFields a where a.FieldId=10206 and a.DisplayName='S_实施支撑确认时间';--SK=38203

delete from Tfs_Warehouse.dbo._WitFields where SK=38203;

(12)   按照(10)和(11)的方法删除‘S_实施支撑分析时间’和‘S_实施支撑分析者’字段。

posted @ 2013-11-06 20:00  虎虎小猫咪  阅读(418)  评论(0编辑  收藏  举报