キタハラヒロユキ・ドットコム
電脳生活



[prev][top]


とても大変なソフトのアップグレード

(2003.5.1)


キタハラヒロユキ・ドットコムは、仕事の関係で5年ほど前からあるWebサーバを管理している。 それは、WindowsNT4.0の上でWebサーバ(IIS4.0)とDB(SQLServer6.5)が動いており、 Webブラウザからデータの蓄積や検索ができるというシステムであった。
しかし、5年も同じマシンを使っていると、データの増加やセキュリティ問題の激増に備えて導入したウィルスチェックプログラムなどによりマシン性能の低下が目立ってくる。 そこで、そろそろ新しいマシンに置き換えようと思っていた矢先、 WindowsNT4.0のサポートが打切られ、それに伴ってセキュリティパッチの提供もされなくなるというニュースが飛び込んできた。 そこで、マシンの置き換えと同時にWindowsNT4.0やSQLServer6.5といったソフトもアップグレードすることにした。

初め、同じ会社の同じ製品にアップグレードするだからさぞかし簡単だろうと思って取り組んでみたのだが、 現実はその逆で苦難の連続であった。そこで今回の電脳生活では、
・同じようなことをする人に参考となる情報を提供し、同じ苦難にあうことを回避してもらう。
・ソフトのアップグレードはとても大変なこともあるので、軽い気持ちでやってはいけないよ!と主張する。
この2点を趣旨として書き下ろしてみたので、関連する方あるいは興味のある方は是非とも最後までご覧になっていただきたい。
なお、今回は話の内容上、技術的な用語や内容が多くなってしまったが、その点はご容赦願いたい。


・「さあやってみよう!」。その軽い言葉が苦難の始まりだった。

アップグレードに先立って、まずはアップグレードに関する資料の入手である。 本当にアップグレードが可能かどうかわからないものに、ムダなお金を出す必要はないからだ。 検索エンジンなどを利用して、以下の情報を入手することができた。

・Microsoft SQL Server サイトの「運用/移行」に関するページの各資料
 http://www.microsoft.com/japan/sql/techinfo/Deployment/2000/
 - 「自習書シリーズ管理編No.7 SQL Server 6.5 ユーザーにとっての SQL Server 2000」(Microsoft)
 - 「SQL Server 2000 に替えよう!」(SQLServerマガジン日本語版)
 - 「SQL Server 2000 へのアップグレード ホワイトペーパー」(Microsoft)

・SQLServer2000 日本語版マニュアル
 http://www.microsoft.com/sql/techinfo/productdoc/2000/books.asp
 マニュアルの、トップ → SQL Server のインストール → SQL Server  2000 へのアップグレード → SQL Server 6.5 からのデータベースのアップグレード  と辿ると、アップグレードに関する記述に辿り着ける。

資料を入手した後は、続いて資料を読んでみる。時に気になる点は、
・IISで動くアプリケーションが改造なしで動くかどうか?
・もし改造が必要なのであれば、どこをどのように直せばいいのか?
・SQLServerの使い方・運用法で大きく変わる点はないか?あればそれはどこか?
というような点だったので、これらに注目して読み進めていった。

まずは一番読みやすそうな「SQL Server 2000 に替えよう!」を読んでみる。 記事は小気味の良いテンポでかかれ、とても気持ちいい。 たとえば、こんな感じだ。

「SQLServer6.5データベースのアップグレードをずるずる引き延ばしてきた人は、 今こそ、それを21世紀に生まれ変わらせるチャンスである。 SQLServer7.0はもうスキップしてもかまわない。 〜中略〜SQLServer2000アップグレードを使えば、SQLServer6.5からSQLServer2000へ直接アップグレードできる。〜以下略〜」

冒頭からこんな文章を読んでしまい、キタハラヒロユキ・ドットコムは大変やる気にさせられた。 よしよし、ちょっと量はあるが、この勢いで続きを読破だ!

が、さっそく勢いをそがれることになる。 というのも、簡単だとか言っているくせに、その実態は大変で難しいことであったりする ようなことのオンパレードだったからだ。 正直って、読者を馬鹿にしているのか、それとも中身の大変さを知った上であえて皮肉で書いているのか良くわからないくらいの乖離がある。 例えば、 「新しいSQLServer(2000と7.0)は、たしかに6.5よりずっと管理しやすい。」 と言っておきながら、 「では、その分、手が空くだろうか。必ずしもそうとはいえない。」 と続けてみたり、 「アップグレードプロセスに難しいところはない」と言っておいて、 「インデックス付け、レプリケーション、バックアップを中心に、少し考え直す必要があるだろう」 と続けてみたり、更にはその後で「SQLServer2000と6.5では、インデックスの作り方はまったく異なる」 と来るのだ。とても読み進めている方としては、溜まったものではない (簡単なんだか難しいんだかハッキリ言え〜!)。 読み終わる頃には脳がヘトヘトに疲れ果ててしまった。

結局のところ、この資料は、
・SQLServerの6.5または7.0から2000へのウィザードを使った2台のサーバ間で データベースをアップグレードする際に参考となる資料である。
・あくまでもデータベースをアップグレードするだけなので、IISで動くスクリプトへのアップグレードの影響 については、一切触れらていない。別途、調査・検討が必要。
・SQLServerの6.5から2000へのアップグレードには、数多くの注意点があり、それを抑えておく必要がある。 それらの注意点は資料内で紹介されている。
というものであるので、そう思って読んでみると良いだろう。


アップグレードの手順については、「SQL Server 2000 へのアップグレード ホワイトペーパー」、 「自習書シリーズ管理編No.7 SQL Server 6.5 ユーザーにとっての SQL Server 2000」でも 触れられているので、そちらも併せて参照されたい。
アップグレード方法を知るのに、アップグレード後にあたるSQLServer2000のBooksOnline(オンラインマニュアル)に情報があるのは変。 同様の内容がMicrosoftのWebサイトにも掲載されているので、そちらを見ると良い。(ってことも、散々苦労した後にはじめて知った。) そちらを見る必要がある。



・アップグレードはウィザードで。でも苦労の連続。



・更に苦難のASPアプリの移行。

ここで終わったのはまだデータベースのアップグレードのみである。 苦労はしたものの、これからの苦難に比べれば、まだ序の口である。 IIS4.0からIIS5.02へのアップグレードにおいては、なんら互換性において問題はなかった。 このアップグレードに起因する障害は一切発生せず、この点はとても満足のいくものであった。 数年前にIIS3.0からIIS4.0へのアップグレードを行ったときには、IIS3.0上では動いていたのスクリプトが、IIS4.0では動かなかった。結局、スクリプトに 手を入れざるを得ず、時間や手間やコストがかかってしまったという苦い記憶がある。


IIS3.0+ASP2.0では、文字列の連結を複数行にわたって記述できるのだが、 IIS3.0+ASP2.0では、各行毎にコメントを書くことができたのだが、 IIS4.0ではこれができなくなってしまっていたのだ。 SQL文を記述するのに、項目ごとに改行し、各行に項目の説明を書くことで、 保守性の良いスクリプトを記述できていたのだが、 IIS4.0にアップグレードすることで、これができなくなってしまったのは痛かった。

本当に苦労したのはSQLServerのアップグレードの影響である。

SQLServer6.5とSQLServer2000との間には、かなりの非互換事項がある。 いかなる理由があるとはいえ、それはそれで言語道断であるのだが、 それ以上に問題なのは、何が非互換事項なのかが、よくわからないという点である。
・先ず非互換事項について、どこか1箇所を見ればそれがわかる、といった記述がない。
互換性の差異について、書かれている複数の箇所に別れて書かれていたとしても、 それへのリンクがどこかでまとめられていれば、 まだ良いのだが、それさえもないので、困ってしまう。 自分自身で、膨大な資料の森の中を、彷徨うことになるのである。

・記述を見つけても安心してはならない。なぜなら、一般の利用者には、用語や言い回しが難しすぎ、 理解はできない記述がなされている。 だから、目の前に記述はあるのだが、その記述が自分に関係あるのかないのかが、判断できないのだ。
もちろんSQLServerには、SQLServer6.5の互換モードというものが存在している。 しかし、「完全にSQL6.5と同じ動作を保障するものではない」という脅し(逃げ)はあるが、 どこが同じでないのかという情報は書かれていない。 ビジネスで使われる業務アプリケーションでは、あいまいでは困るのだ。 多大なコストを投入して、それともありとあらゆるテストを行えというのだろうか。 これは、「TCOの削減」が叫ばれているが、この点はそれに逆行する大きな問題である。 安物買いの銭失いとは、このことだ。

「早くアップグレードをしろ」「次のバージョンアップでは、互換性の保障はない。」などと、 言われれば、6.5互換モードで動かすわけにはいかない。

・その他にも小さい苦労が積もって山となる

そのほかでも、問題とはいえないのかもしれないが、すべてを知っている人には当たり前なことなのかもしれないが、 それなりの投資が必要なのであることを忘れて名ならない。ここでも、TCOが増加しているのだ。 よく、マイクロソフトからTCOがこんなに削減できますというようなニュースが流されるが、 こういったコストを本当に含んでいるのだろうかと



・おわりに

・NT4+SQLServer6.5と心中を考えるのもひとつの選択肢である。 動いているシステムをわざわざ変えるのは、無駄な出費である。 よく「目に見えない出費」である。 お金がかかっても、出費がわかっているほうが、どれだけ まだ5年しか使っていないシステムだ、更にあと5年は使いたい。 今回のアップグレードはとりあえず乗り切ったが、釈然としないものが残り、後味が良くなかった そんな、

[prev][top]