GroupBoardサイトのお引越しはどうすればよいの?

こんにちは、GroupBoard 開発チームです。
先週はBlogの更新をお休みしてしまい申し訳ありません。毎週金曜日を一応の目安にしているのですが、先週はずっと風邪気味でついに金曜日にダウンしてしまいまた。なんとか今週復帰したのはいいのですが、出社早々多くの方にうつしてしまったようで、会社では私の席を中心にして同心円状に風邪で新たにダウンする方がでるありさまでして・・・。申し訳ありませんです、ハイ。

さて、今回はまたある方面からのリクエストで、サイトのお引越しについての話題です。お引越しとはまた季節的にもぴったりな(?) 話題ですね。今回はリモートのマシンを使ってあるサーバーからあるサーバーへサイトを引っ越す方法を中心にお届けします。

1. Smigrateツールのご紹介
お引越し自体はサイトデータのバックアップを行い、それをお引越し先に復元することで可能なのですが、GroupBoard および Windows SharePoint Services (以下WSS) では、サイトのバックアップ・復元について大きく分けて3種類の手法が用意されています。

a) SQLのデータベース自体のバックアップ・復元・・・WMSDEを使用してWSSをインストールしている場合でも、外部のSQLサーバーを使用してWSSをインストールしている場合にも、サイト上にあるリストのアイテム・ドキュメントなどはすべてSQLのデータベース上に格納されています。ゆえにこのSQLデータベースをバックアップして、他のSQLサーバーに移動し、引越し先のWebサーバー上でまたこのSQLデータベースからデータを読み出すように設定すれば、原理的にはお引越しは完了することになります。完璧な方法ですが、問題点としては 「WMSDEでは操作がコマンドラインでしか行えないので難しい」 「手順が煩雑」 「サーバーのマシン自体の管理者である必要がある」などが挙げられます。完全なサーバーの引越しをする場合で、SQLサーバーを使っており、さらにサーバー自体に管理者権限でログインできる環境ではお勧めの方法です。

b) STSADM.EXEによるバックアップおよび復元・・・STSADM.EXEは、WSSに含まれるコマンドラインツールで、サイト作成や削除、ユーザー管理などWeb上で行えるほぼすべての操作をDOSコマンドプロンプト上で行うことができます。また、これら一連の管理操作のひとつとして、サイトのバックアップおよび復元の機能をもっています。データベースとしてSQLサーバーではなくWMSDEを使っている場合や、定期的なバックアップを手軽に取りたい場合などに効果があります。このSTSADMを使用したバックアップおよび復元の方法については、GroupBoardの製品サイトに手順がありますので、こちらをご参照ください。
このSTSADMコマンドを使う場合の問題点としては、サーバーのマシン自体に管理者権限でログオンして実行する必要がある点です。

c) Smigrate.exeによるバックアップおよび復元・・・上記2つの方法は、どちらもGroupBoardおよびWSSがインストールされているサーバーに管理者としてログオンする必要があります。サーバーを自分で作成した場合にはこれでもよいのですが、他の方が作成したサーバー上に自分のサブサイトを作成した場合、またはホスティングサービスなどを利用していてサーバー自体にログオンすることができない場合には、この Smigrateによる方法しかありません。このSmigrateを実行してサイトのバックアップを行うためには、そのサイトの管理者グループに属している必要がありますが、通常、サブサイトを作成する権限は管理者グループに付与されていますので、少なくとも自分で作成したサブサイトについてはこのSmigrateで引越し作業を行うことができるはずです。

と、Smigrateではお手軽に引越し作業が行えるのはよいのですが、反面、デメリットもあります。

x) サイトユーザーに関する情報が引き継がれない場合がある。サイトユーザー情報とは、ユーザーの表示名やユーザーの属する権限グループ、内部で使われるユーザーIDなどなのですが、Smigrateでの引越しの場合、引越し元、引越し先それぞれのサーバーで等しくユーザー登録が完了しているのが前提になります。同じサーバー内での移動の場合など、引越し元、引越し先でユーザー情報が同じ場合には問題はないのですが、ユーザー登録を引越し後に行う場合、あるいは異なるドメインに属するサーバー間での引越しの場合などでは、注意が必要です。

y) アイテムやドキュメントの作成者や最終変更者が変更される、または削除される場合がある。これは、上記の場合のように、アイテムやドキュメントに付随するユーザー情報が引っ越し先のサーバーで解決できない場合に起こります。この場合、リストのアイテムの場合は作成者は引越し作業を行ったユーザー、ドキュメントの場合は作成者や最終更新者は空白になります。ドキュメントライブラリなどではユーザー情報が重要な場合も多いので、少々注意が必要になると思われます。

今回はとくに自分で管理していないサーバー上の自分サイトのお引越しをする、というシナリオで Smigrate の使い方を実際に見てみましょう。

2. Smigrateツールのダウンロード
SmigrateツールはWSSとは独立したツールとしてダウンロードすることができます。ダウンロードは以下のURLから可能です。(日本語のページも探したのですが、見つかりませんでした。ツール自体は英語ですが、日本語環境でも使用可能です。)
https://www.microsoft.com/downloads/details.aspx?familyid=3df85705-5635-40db-adbe-e13ab8684a60&displaylang=en

解凍可能な実行形式ファイルでダウンロードされますので、クライアントマシン上で適切なフォルダへ解凍します。解凍先の既定のフォルダ名がなぜか "Project Server Resource Kit" になっているのですが、変更していただいてかまいません。 Smigrateツールの動作環境としてWindowsXPが含まれていないのですが、今回の Blog作成の確認では 日本語版WindowsXP SP2を使ってみました。

3. Smigrateツールを使ったサイトのバックアップデータの作成
ツールの準備が整ったら、DOSのコマンドプロンプト上でSmigrateを実行して、まず引越し元のサイトからデータをバックアップします。書式は以下のとおりです。

 Smigrate.exe -w https://<サーバーのURL>/<サブサイトURL> -f <バックアップファイルの保存先>

例えば、https://GroupBoard/Test というサイトのバックアップをc:\backupに作成するのであれば

 Smigrate.exe -w https://GrouBoard /Test -f c:\backup\test.fwp

となります。バックアップのファイル拡張子は便宜上"fwp"を使います。これは FrontPage Web Package の略で、もともとこのツールがFrontPage2003でのサイトのバックアップ・復元の機能を単体exeに切り出したものであることから由来しています。
ホスティングサーバーや異なるドメインに属しているサーバーなどで、サイトを開くときに認証が必要な場合には、-u と -pw オプションをつけます。例えば、前の例でサーバーが基本認証だけのサポートの場合は、

 Smigrate.exe -w https://GrouBoard /Test -f c:\backup\test.fwp -u ユーザー名 -pw *

にします。-pwに*を指定すると実行した後にパスワードを打ち込むことになります。
成功であれば、指定したサイトからデータを順次取り出して指定した場所のfwpファイルに固めていきます。この作業はアイテムやドキュメントをひとつずつ順に取り出していくために、サイトのサイズが大きいと非常に時間がかかる場合があります。WSS管理者ガイドによれば、「サイトのサイズが約 4.5 ギガバイト (GB) ある場合、バックアップには最大で 3 時間を要します。」とあります。ドキュメントライブラリに大量にファイルがある場合には、時間とHDD容量に余裕を持って望みましょう。

4. Smigrateツールを使ったサイトの復元
つぎに引越し先に復元するのですが、ここで**非常に重要な手順**があります。今回のBlogはこの点をお伝えするために書いているようなものです。それは、復元前にあらかじめ引越し先のサイトを作成しておくのですが、このとき「サイトテンプレートを適用しない状態でサイトを準備する必要がある」、ということです。詳細な手順は以下のとおりです。

1) 引越し先のサーバー上で [サイトの設定] から [サイトとワークスペースの管理]をクリックします。
2) [作成] をクリックして新規サブサイトの作成ページへ移動します。
3) タイトル、説明およびURLを指定します。これらは引越し前の値とは関係なく指定することができます。
4) [作成] ボタンをクリックします。
5) [テンプレートの作成] ページに移動したら、テンプレートを選択しないでブラウザを閉じます。  

このサイト作成を寸止めでやめておくというのが重要なコツなんですが・・・。
なお、当然のことなのですが、GroupBoard のサイトのお引越しの場合には、お引越し先のサーバーにもあらかじめ GroupBoard をインストールしておく必要があります。

サイトの準備ができたら、Smigrateでデータを復元します。書式は以下のとおりです。

 Smigrate.exe -r -w https://<サーバーのURL>/<サブサイトURL> -f <バックアップファイルの保存先>

バックアップ時と同じく、もしお引越し先のサイトが基本認証だけであれば、-u と -pw オプションを使用してユーザー名とパスワードを指定します。比較的復元のほうがバックアップより時間がかかりますので、こちらも余裕を持って作業しましょう。

完了したら、引越し先に指定したURLをブラウザで開きましょう。

5. (おまけ) バックアップからファイル単体を復元する
ツールを解凍した際に気がついた方もいらっしゃると思いますが、fwpファイル自体はCabinet ファイル形式で圧縮されているファイルなので、拡張子を.cabに変更すると 内部を開くことができます。内部はほとんどが一意な文字列と数字のファイルなのですが、これらひとつひとつがドキュメントライブラリに保存されていたファイルだったり、ユーザーがカスタマイズしたページ (aspxページ)だったりします。
試しにドキュメントライブラリにあったファイルをひとつ取り出してみましょう。内部に "manifest.xml"というxmlファイルがありますので、これをメモ帳などで開きます。ドキュメントライブラリに存在したファイルの名前で検索して、Src の値を読み取ります。これがfwp内部に圧縮されているファイルの名前になります。例えば、"企画書.doc"というファイルは "h5000000.000" というファイル名でfwp内に圧縮されていることがこの検索でわかれば、"h5000000.000" ファイルもfwp内にあるはずなので、そのファイルを探して拡張子をもとに戻すと (この場合はdoc)、元のファイルに戻すことができます。あまり実用的な使い方ではないのですが、サイトのバックアップを取ったときのスナップショットとしてこのfwpを保存しておくと、後でファイル1つだけ復元したい、というときに使えることがお分かりかと思います。

参考ページなど
今回はさわりということで、詳細な使用方法および追加のコマンドラインオプションは以下のページをご参照くださいませ。

FrontPage のバックアップと復元および SharePoint 移行ツール (Smigrate.exe)
https://www.microsoft.com/japan/technet/prodtechnol/office/office2003/maintain/bureswss.mspx#E2JAE

「Windows SharePoint Services 管理者ガイド」の「バックアップと移行」セクションの「Web サイトの移行とアップグレードを行う」ページ
https://www.microsoft.com/downloads/details.aspx?FamilyID=a637eff6-8224-4b19-a6a4-3e33fa13d230&DisplayLang=ja

 

今回は文字ばかりでちょっと読みづらくてすみません。
来週は部署で花見の予定なのですが、桜はまだ大丈夫でしょうか・・・。では。

コミュニティにおけるマイクロソフト社員による発言やコメントは、マイクロソフトの正式な見解またはコメントではありません。