私は、部署内のBlogとして.Textを使っています。
利用に当たっては、バイナリ版だと、どうしても修正できない点があるので、ソースをダウンロードして来ました。そして、PASSJの皆さんの記事を参考に、怪しいながらも修正を加えたりして使っています。(※まだあんまりうまくカスタマイズできていませんが...)
当初、Blog用には、設定どおりMSDE(SQL Server2000)をデータベースに使おうと思っていました。ですが、丁度SQL Server2005の評価を始めていた時期だったので、「これも評価の一環です!」という名目で、SQL Server 2005(April CTP)にBlogのデータを格納することにしました。
.Text用のテーブルやストアドプロシージャは、すべてスクリプトで作ることになっています。この点に関しては、MSDEでもSQL Server2005でも変わりが無く、一応問題なく.Textのデータベースとして利用することができました。(そして、おかげさまで、Management Studioなどの新しい管理ツールの操作にも、多少慣れることが出来ました...。)
さて、しばらく使っているうちに、いつの間にかSQL Server 2005 June CTPがリリース。それまで「利用できるかどうか」という立場で使っていたSQL Server 2005でしたが、本格的に採用できそうだね、との判定が出て、今後の開発はCTP Juneで進めようと言う話になりました。
AprilからJuneへの変更に関しては、教訓として色々学んだことも多かったのですが、なんとか開発用のWindows 2003 Serverにもインストールが終了(こちらは新規でした)。
それと引き換えに、.Textのデータ格納先としていたサーバの方を、一旦綺麗にしないといけません。書き込みがそこそこ溜まっていたので、CTP Juneになっているサーバに移行させることにしました。
移行に関しては、
- 単純に空のテーブル・データベースを作成し、export -> importする方法
- データベースファイルそのものを移行させる方法
のどちらかかな、と思ったのですが、まだこのあたりの操作に関しては不慣れ。2000の場合だと、Enterprise Managerで操作していたのですが、2005だとVisual StudioでIntegration Servicesのタスクを作らないといけないのかもしれないなあ...と、どうも不安になりました。
そんな折、Management Studio内で、データベースに対して実行できるタスクを見てみると、「データベースのコピー」といった処理は、Visuak Studioでタスクを作らなくとも、実施できるようでした。試しに起動させてみると、ウィザード形式で、データベースファイル単位での移動・またはコピーが行えるというもの。ですので、考えていたうちの、後者でした。
さらに、処理のタイプも、
- 移行元からデタッチ -> データファイルの移動 or コピー -> 移行先にアタッチ
- 移行先に新規のデータベースファイルを作り、オブジェクトを(Transact-SQLで)コピーする
という方法がありました。
「とりあえずやってみよう!」ということで、シンプルな1の方法からテスト。物理的名データベースファイルの移動・コピーを伴うので、サーバ同士が別々のホストで稼動している場合は、ファイル共有ができるディレクトリを使って、双方データをやりとりする仕組みのようです。
ウィザードに従って処理を進めると、最終的には、Integration Servicesを利用しているのか、移行用作業用のパッケージが作られる模様。「なんだ、簡単じゃないの~!」と、かなり嬉しくなり、即実行してみたのですが、どうもセキュリティ設定の関係で、失敗してしまいました...。
次に、2番目の方法でトライ。ですが、これも出来上がった移行作業用のパッケージを実行してみると、セキュリティの関係か、またしても失敗。(Agent関係のようです)
それでも、途中までは処理が進んでいたので、移行先を調べると、なるほど、新規(空)の状態のデータベースが出来上がっていました。
残念ながら、今回はそのままウィザードを使うことは断念して、手動でデタッチ -> アタッチして移行させる結果になりました。この作業に関しては、そんなに問題無く出来ました。とりあえずCTP AprilとCTP Juneの間ではデータベースファイルのやりとりは心配しなくて良いということが分かったので、まあ、収穫有りかな、と納得したのでした。
なお、SQL Server 2005同士だけでなく、2000との間でもデータベースのコピーが出来るようなので、この後も試す機会はありそうです。
今日は上手く行くといいな。