SCMLife.com

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 6944|回复: 5

[原创] TFS数据库分离附加经验总结

[复制链接]
发表于 2014-9-22 11:41:31 | 显示全部楼层 |阅读模式
       因TFS数据库已经100多G,所在的服务器D盘已没有空间满足tfs数据库的增长速度,故必须分离复制到其它盘。在分离过程中,先后分离了ReportServer、ReportServerTempDB、Tfs_Warehouse、TfsWarehouse、WSS_Config、WSS_Content数据库。  ; H; v: h3 ?- P1 K0 e: x
      就在分离了Tfs_Configuration数据库后,再想分离Tfs_DefaultCollection这个主库时,报“数据库无法登录”的错误,当时我就懵了,等反应过来才想到,难道这个是tfs的默认登录数据,赶紧打开tfs控制台发现tfs数据库层的连接字符串如下所示:  u7 {% R* q2 ]+ O
              
    Data Source=TFS-SERVER;Initial Catalog=Tfs_Configuration;Integrated Security=True
0 e0 X% J. K8 o' w

! y7 ]1 f4 E2 w" F; K* P- G% s, f0 Y$ f. ~- S
果然如此,默认数据库就是Tfs_Configuration。现在后悔也没办法了,谁让刚睡醒就加班,脑子都是浆糊。接着就是赶紧想各种办法,进行了以下尝试:: g) [9 c* I4 ~7 z6 [+ S
1.使用tfsconfig 命令:该命令用于管理服务器配置。- y+ m0 n- N; U, D' x" Y2 u$ z" A
  在使用该命令的过程中,先后尝试了recover、repair、RegisterDB、PrepSql等命令,均在执行过程中,报“tfs 无法连接到数据库库”的错误。以前也没用过该命令,看来tfsconfig的命令都是在Tfs_Configuration数据库连接正确的情况下执行的,通过更改数据库信息来进行服务器配置。) o  @* ~$ v! m1 S& y5 X1 e
2.使用sql脚本7 M- A/ h: k/ Y2 a% s* T
  但是尝试了几次都不行,连数据库都登录不进去,脚本也无法执行。. \" z, B) P* w. J7 x
3求救数据库专家
+ S# j, }! m4 ^' _; ]) f% D均表示不了解tfs,而且sql数据库都登录不进去了,也无法进行操作了。
# p, Y0 L  {2 c. I4 j) ^% v最后我崩溃了,难道要重装tfs,这个工作量可不是一般的大啊,本来周末已经累得跟狗似的,再通宵加班,娃咋办啊。没办法,只能先休息一下,跟我家小南北玩了一会回来继续尝试解决方案。看了一下SSMS的登录选项,点击如下所示:$ \" X  I* x1 L# H9 ]
                                     / T5 ^  Y- d, t: S5 e
* B, R& }6 r4 a
     以前没用过这个连接参数,但是看下面的“注:连接字符串参数将覆盖其它面板上的图形选择”,突然灵光一现,那我将连接字符串的默认数据库改成master(系统数据库)试试。然后我将以下连接字符串填到文本框,如下所示:
6 Y9 V4 ~6 E+ ?8 g' T2 c. f/ U          Data Source=TFS-SERVER;Initial Catalog=<FONT color=red>master;</FONT>Integrated Security=True7 C: C0 i' B. N. h. a
7 d! q0 f$ h/ L! L3 ]3 S; {: Y
         点击连接,正如所想进入数据库了,而且tfs所有数据库都能看到,就差1个Tfs_Configuration数据库。然后顺其自然地点击界面“附加数据库”,但是不幸的事情又发生了,报“无法连接默认数据库,账号无法登录“的错误。又完蛋了,这无法附加上去,tfs根本使用不了啊,还是只有重装啊。又开始解决如何附加数据库,既然界面不行,那这次登录进来通过脚本执行应该行吧,尝试以下附加命令,阿弥陀佛,附加成功,客户端访问一下TFS,OK,跟以前一样。
! l, z4 l+ G6 U6 x# x8 t   
  • EXEC sp_attach_db @dbname = N'dbname',
  • @filename1 = N'数据库路径,
  • @filename2 = N'日志路径;
  • ) _4 H$ T9 I8 y1 D0 N- U
" p( v" D3 M5 T' o. p/ ^
[color=rgb(51, 102, 153) !important]复制代码
4 K: O* k  @8 L' \% Q2 h$ ~

; x( F  ?0 n, s- b, ?. A. E, y( \; z
# A5 r/ Y7 h# p* m1 T       兴奋不再重装的时候,回到服务端,想通过sa进行tfs数据库继续最后一个主库的界面分离操作,结果还是无法登录到TFS数据库,点击所有右键菜单都会报错,真是一波未平一波又起啊,怎么问题一个接一个,那就继续解决吧。既然sa不行,可能是因为它的默认数据库也是Tfs_Configuration,如何才能更改sa的默认数据库呢,还是通过脚本?但是设置默认数据库不敢随便尝试啊,之前没用过这命令,怎么办呢?那就再新增一个系统管理员呢?再通过另一个管理员账号登录进行设置sa的默认数据库,这样操作肯定靠谱点。最后执行以下脚本:EXEC sp_addsrvrolemember n'test', 'sysadmin'
0 f+ F2 d4 Y! ^  q4 \9 k# Q复制代码将目前sql中已有的1个test账号提升为管理员角色,最后通过test登录,再在”安全性“里面设置sa和windows administrator的默认数据库为Tfs_Configuration,测试一下所有操作,完全正常,终于解决了所有问题。
5 R3 y8 f- `4 [. U( \     整个过程真的很焦心啊,怕万一不行,整个周末就完蛋了,而且如果重装tfs,恢复100多个G的数据肯定也会遇到各种问题,就影响大家的工作了。我现在最庆幸的决定是:问题肯定能解决,不到万不得已,一定不能重装TFS!
  m- H# o& D- A  \1 d! m
发表于 2015-2-3 09:30:28 | 显示全部楼层
过程虽然曲折,结果很美好!~赞LZ
回复 支持 反对

使用道具 举报

发表于 2015-6-4 18:01:04 | 显示全部楼层
你好,咨询下,分离数据库之前需要停止TFS服务么???
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-6-8 16:00:11 | 显示全部楼层
cupido 发表于 2015-6-4 18:01
0 G! Y5 N" @1 Q你好,咨询下,分离数据库之前需要停止TFS服务么???

3 M# K  G- Q  w; n2 T当然要停
8 ~. e6 Z* ?# L$ Y0 J, I
回复 支持 反对

使用道具 举报

发表于 2015-6-9 09:07:11 | 显示全部楼层
zhangxuwei 发表于 2015-6-8 16:00% ]2 b$ S4 L& [; i" ]& X
当然要停
3 q' K- G% Q# }* Z: }, h: D/ {
你好,在请教下哈,是不是用tfsservicecontrol quiesce命令停止tfs服务??还有,如果在分离时最后一个分离tfs_configuration数据库,是不是就不会出现你文中所述的问题???也就是说分离的前后顺序是???谢谢啦!!!
; s# [" t" W# L' r4 R; b& l, f
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-6-11 16:06:32 | 显示全部楼层
cupido 发表于 2015-6-9 09:07
; [6 k& |3 a2 h* y! p1 h你好,在请教下哈,是不是用tfsservicecontrol quiesce命令停止tfs服务??还有,如果在分离时最后一个分 ...
9 A  w+ E% A, L* E
     停掉IIS tfs站点和sql 数据库服务,我到现在也没有分离configuration 库。你可以试一下。4 }6 k4 T' i: J% p
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

SCMLife推荐上一条 /5 下一条

QQ|小黑屋|手机版|无图版|SCMLife.com ( 京ICP备06056490号-1 )

GMT+8, 2020-2-26 14:51 , Processed in 0.074385 second(s), 8 queries , Gzip On, MemCache On.

Powered by SCMLife X3.4 Licensed

© 2001-2017 JoyShare.

快速回复 返回顶部 返回列表