今日は、データベースに関する話を書きます。
というのも、現在「SQLサーバー2005」というDBツールの勉強中なので、
忘れないように覚書きしておくためです。
なので、IT業界じゃない人が読んでもきっとあまり分かりません(笑)
さて、「SQLサーバー」というのはWindowsプラットフォーム向けに
Microsoftが販売しているデータベース管理システムのことです。
5年くらい前まで、自分でプログラムをガリガリ書いていたころは
「SQLサーバー2000」というツールを毎日操っていました。
最近は自分でプログラムを書くこともなくなり、DBもOracleばっかり使っていたので
SQLサーバーに触れるのはかなり久しぶりです。
当時は、大規模システムといえばOracleが主流で、
SQLサーバーは小規模か中規模向けというのが一般の認識でしたが、
最近のSQLサーバーの躍進には目を見張るものがあります。
こういった製品はバージョンが変わるとどんどん新しい機能が追加されて、
画面の見た目もガラッと変わるのでついていくのが大変です。。
さて、SQLサーバー2005になって一番変わったなと思うのが、
ストアドプロシージャやトリガを書くための言語が増えたことです。
昔は、Transact-SQLという言語でしか書けなかったのが、
C#やVB.NETといったリッチな言語で記述できるようになりました。
おかげで、デバッグは相当楽になっていると思います。
運用面で見ると、高可用性のための選択肢が増えたのも大きいです。
以前からあったフェールオーバークラスタ、ログシッピングに加えて、
データベースミラーリングの構成が可能になりました。
ちなみに、前者2つの説明は以下の通り。
・フェールオーバークラスタ
冗長化された2台のDBサーバが1台のストレージを共有することにより、
本番系DBサーバの障害発生時に待機系に自動的に切り替える仕組み。
(よって、ストレージサーバがクラッシュしたらアウトですね)
・ログシッピング
DBサーバと共にストレージサーバも2重化し、更に監視サーバを置くことで、
本番側のバックアップを定期的に待機側に反映させ、DBサーバ、
ストレージサーバのどちらに障害が発生して回復可能にする仕組み。
(ただし、データは完全には同期されておらず、切り替えは手動なのです)
で、新しく追加されたのはこれです。
・データベースミラーリング
基本的な構成はログシッピングと同様だが、
本番系(プリンシパル)と待機系(ミラー)間のデータ同期がリアルタイムに行われ、
さらに監視サーバが生きていれば障害発生時に自動復旧可能な仕組み。
すなわち簡単に言うと、データベースが完全にリアルタイムに2重化され、
かつ障害発生時に自動的に待機系に切り替わるので、より安心になったということですね。
IT系の仕事じゃない人はあまり実感できないと思いますが、
サーバとかディスクというものは意外に頻繁にクラッシュするものなので、
こういった構成にしておくことで運用者の負担が減り、逆にコスト削減できるのです。
それにしても、せっかく2005の勉強をしているのに、
先日、「SQLサーバー2008」がリリースされてしまいました。
ほんと、どんどん新しくなるのでこの業界はキャッチアップが大変ですね…。。