kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

TFSのバックアップ、移行、意図しないデータ削除について

バックアップ

Team Foundation Server のバックアップについて
TFS Power Toolsでバックアップをとることができます。TFS Power ToolsではSQL Serverのデータのバックアップが行われます。同時に採取されるものとしてはReporting Serviceの暗号化キーファイルです。
このバックアップはネットワーク上の共有に作成されます。将来的にはAzureのBlobに取れるといいですね。

意図しないデータ削除を復旧するには

バックアップファイルはSQL Serverのデータだけということです。じゃあ、WorkItem(作業項目)やテストケースを間違って消したらどうすれば復旧できるのでしょう?
あきらめてください
というのは半分冗談ですが、本当に戻したければ、データベースのリストアしかありません(たぶん、公式には)。
なので、影響を最小限にして、容易にバックアップから戻すためにはSQL Serverトランザクションログバックアップをしばしば(どのくらいしばしばかは許容できる範囲で)とっておく必要があります。
TFS のバックアップおよび復元

移行

先日のTFSUGでイベント後にこんなケースはどうすればいい?という質問がありました。

  • TFSでプロジェクトコレクション内にチームプロジェクトを複数(A,B)作っている。
  • AはTFS 2012へ移行したいが、Bはそのままそっとしておきたい。

TFSのチームプロジェクトはプロジェクトコレクション(DefaultCollectionとか)内での塊です。プロジェクトコレクション単位でアタッチ、デタッチすることはできますが、その配下のチームプロジェクトは一緒に移動する必要があります。やるとしたらこんな感じでしょうか。

  • 新しくTFS Serverを立てる。
  • A,BのプロジェクトコレクションをTFS 2012に移行する。
  • Bを削除する、もしくはチームプロジェクトのセキュリティで管理者のみアクセス可能にする。
  • 旧TFS ServerではAを削除する、もしくはチームプロジェクトのセキュリティで管理者のみアクセス可能にする。

サーバーを二台使うことになりますが、これはもうやむを得ないんじゃないでしょうか。古いTFSのほうはP2Vでもして、仮想環境に移行してしまうとかしてもいいのではないかと思います。仮想環境ならめったに使わないならば、シャットダウンしておいて、いつでも起動できますし。もちろん、Active Directory使っている場合はコンピュータアカウントのパスワードに気を付けてください。