• 停電に備え、SQL Server が稼働するサーバーを安全に停止する方法

    日本マイクロソフトの北川です。

    電力の緊急ひっ迫により実施される計画停電時には、サーバーをあらかじめシャットダウン (電源オフ) しておくことが推奨されます。それと同時に、予定時刻より早く停電となってしまった場合に備えて SQL Server のバックアップをあらかじめ取得しておくことも推奨されます。

    本文書では「SQL Server が稼働するサーバーを安全に停止する方法」および「停電に備えて SQL Server のバックアップを取得する方法」について記載します。以下、各種情報を参照のうえ、計画停電への備えをお願いいたします。

    注意

    • 本文書は専任のサーバー管理者/データベース管理者がアサインされていないシステムに対しての対処を前提に記述しています。専任の管理者がアサインされている場合には、事前に管理者にコンタクトを試みていただけますようお願いいたします。
    • 連続稼働していたシステムを停止した場合、HDD など一部のモーターを利用するハードウェアが稼働しなくなる場合がごくまれにあります。時間的な余裕があれば、停止前にバックアップを取得することを推奨いたします。

     参考 (2011年3月19日追記)

    • サーバー管理者/データベース管理者に必要な包括的な情報に関しては下記ページに別途まとめられております。
      • パソコンやサーバーの停電対策、節電機能、その他、役立つマイクロソフト・サポート技術情報 [マイクロソフト サポート オンライン]
      • マイクロソフト製品群のバックアップ、障害対応及び節電に関する情報 [TechNet]

     

    SQL Server が稼働するサーバーを安全に停止する方法

    SQL Server は Windows Server と連携できるよう開発が行われており、SQL Server の起動や停止は Windows Server の起動や停止と連動して行えるようになっています。本文書では、できるだけ安全に (停電復帰後に特別な処理なく軌道が行えるように) SQL Server が稼働するサーバーを停止する (以下、サーバーを停止する) 手順を案内します。

     

    停電に備えてサーバーを停止する前に

    大容量のメモリを搭載しているサーバーは停止に際して時間がかかりますし、外部ストレージを利用しているサーバーはサーバーの停止の前に外部ストレージの電源を切ってしまうと SQL Server のデータを失ってしまうこともあります。下記ご留意のうえ、サーバーの停止作業を実施ください。

    • 計画停電が予定されている少なくとも30分前にサーバー停止のための作業を開始してください。
    • サーバー停止の前に、サーバーに接続されている外部ストレージ及びその停止方法をご確認ください。USB などの外付けストレージでは特別な手順なく電源を切ることが可能ですが、SAN 等で接続された大規模なストレージ アレイでは、各ストレージごと、ハードウェア ベンダーが指定する停止方法がある場合があります。

     

    停電に備えてサーバーを停止する

    サーバーの停止方法は

    • 1. 「シャットダウン」を実行してサーバーを停止する (電源を切る)
    • 2. サーバーに接続されている外部ストレージを停止する (電源を切る)

    になります。

    管理者としてサーバーにログインし、「スタート」メニューから「シャットダウン」を選択してください。Windows Server をご利用の場合、下記の画面になります。

     

    Windows Server 2008 R2

    ※Windows Server 2008 R2 シャットダウン画面

     

    下記のような警告画面が表示されますので、オプションで該当する項目を選択し、「XX月XX日計画停電」と入力し、OK をクリックしてください。下記画面のように「その他 (計画済)」を選択した場合、コメントを入力しないと OK がクリックできませんのでご注意ください。

     

    Windows Server 2008 R2

     

    ※Windows Server 2008 R2 のシャットダウンに伴う警告画面

     

    Windows Server で自動的に内部アプリケーションを正常終了させ、サーバーのシャットダウン処理を行い、サーバーの電源が切れます。

    サーバーの停止を確認したら、サーバーに接続されている外部ストレージ機器を停止してください。サーバーの停止前に外部ストレージ機器を停止すると、ディスクに書き込まれていないデータが失われてしまう可能性がありますので、必ずサーバーが停止したのを確認したのちに外部ストレージ機器の停止を実行してください。

     

    参考:Microsoft 製サーバー製品の計画的な停止手順 - メディア with Microsoft [Link]

    参考:停電に備えてサーバーの停止をする場合の操作方法 - 大塚商会 テクニカルサポート QQ-Web [Link]

    参考:VBScript でリモート コンピューターをシャットダウン - SE の雑記 [Link]

     

     

     

    計画停電後、SQL Server が稼働するサーバーを起動する

    計画停電から復帰後、SQL Server が稼働するサーバーを起動するためには、下記の順番で機器の電源を入れてください。

    • 1. サーバーに接続された外部ストレージ機器の電源を入れる

    外部ストレージ機器によっては、起動に時間がかかることがあります。機器の起動完了は LED の点滅などで判別することができますので、それぞれのマニュアルを参照ください。

    • 2. サーバーの電源を入れる

    サーバーが正常に起動したのを確認するため、管理者として Windows Server にログインし、イベント ビューアーでエラーが発生していないか確認ください。

     

     

    停電に備えて SQL Server のバックアップを取得する方法

    予期せず停電となってしまった場合、ごくまれに SQL Server が正常にデータをディスクに書き込めず、一部のデータを失ってしまう場合があります。このようなデータの損失を防止するために、SQL Server ではデータベースのバックアップを取得するための機能が標準で提供されています。また、このバックアップは SQL Server のツールを利用することで、数回のクリックで実行することもできます。詳しいバックアップの手順は、それぞれご使用中の SQL Server のバージョンにあわせて以下の資料をご参照ください。

    なお、取得したバックアップは、可能な限り高速なポータブル USB ハードディスクや高速な USB メモリなどの外部媒体に保存することを推奨します。

    今回の停電に備えて初めてバックアップを取得される方は、以下の資料を参照のうえ、リカバリ手順についても確認ください。

     

    SQL Server 2008 R2

    SQL Server 2008 R2 の便利な運用機能が知りたい [Link]

    バックアップと復元 [Word (15.1 MB)] [Sample Script (4.41 KB)]

     

    SQL Server 2008

    SQL Server 2008 の便利な運用機能が知りたい [Link]

    バックアップと復元 [XPS (8.24MB)] [PDF (5.60 MB)] [Sample Script (4.04 KB)]

     

    SQL Server 2005

    SQL Server 2005 自習書シリーズ [Link]

    バックアップ・リカバリ [XPS (1.46 MB)] [PDF (1.38 MB)]

     

    SQL Server 2000

    SQL Server 2000 自習書シリーズ [Link]

    管理編 No.6 バックアップ編 [Word (3.08 MB)]

     

    上記の情報をご参照のうえ、安全に計画停電を迎えられるよう準備をお願いいたします。

  • SQL Server 2008 R2 Evaluation (評価版) ダウンロード

    マイクロソフトの斎藤です。

    SQL Server 2008 R2 の評価版のダウンロード提供を開始しておりますので、お知らせいたします。

    Microsoft SQL Server 2008 R2 Evaluation: IT プロフェッショナル用トライアル版

    Microsoft® SQL Server® 2008 R2 PowerPivot for Microsoft® Excel - RTM

    Microsoft SQL Server 2008 R2 レポート ビルダー 3.0

    Microsoft® SQL Server® 2008 R2 Feature Pack

  • SQL Server Migration Assistant (SSMA) v5.1 がリリースされました。

    日本マイクロソフトの北川です。

    SQL Server code name “Denali” CTP3 にも対応する SQL Server Migration Assistnat (SSMA) v5.1 がリリースされました。SSMA v5.1 には移行元データベースとして MySQL, Access, Oracle, Sybase をターゲットにした4種類があります。v5.1 では、Oracle Database の Sequence を Denali の Sequence に、MySQL の LIMIT 句を Denali の OFFSET/FETCH 句に変換する機能が追加されています。

    英語 UI でのみの提供ではありますが、移行作業を格段に楽にしてくれますので一度お試しください。

    詳細は SQL Server Migration Assistant (SSMA) Team's Blog - Announcing SQL Server Migration Assistant (SSMA) v.5.1 を参照ください。

  • Microsoft SQL Server 技術書アプリ for iPad 提供開始

    日本マイクロソフトの北川です。

    ブログでのご案内が遅くなってしまいましたが、先週木曜日に ”Microsoft SQL Server 技術書アプリ for iPad” が AppStore に公開されました。本日で公開されてから5日になりますが、総合ランキングで最高5位、電子書籍ランキング最高4位を達成しています。

    コンテンツは当初 4 つ同梱されておりますが、コンテンツサーバー (Windows Azure) より自動的に追加配信される仕組みとなっています。技術文書はこれからさらに強化してまいりますので、一度ダウンロードいただき、お試しいただければと思います。

    なお、iPad 以外のデバイス、スマートフォンをご利用の方向けには、ePub 形式での技術書提供も行っております。

    ぜひお試しください!

  • SDS でも使用される TDS とは

    マイクロソフトの太田です。前回のSQL Data Serviceの記事の後で、TDSを検索してみましたが、「東京ディズニーシー」等がリストアップされ、適切な結果を得ることができませんでしたので、簡単にTDSについて解説しておきます。

    TDSはTabular Data Streamの略で、テーブル形式のデータストリームというところでしょうか。データベースアプリケーションとしてのクライアントと、SQL Server間で情報をやりとりするためのアプリケーション層のプロトコルです。プロトコルですので、そこでやりとりされるメッセージの形式・フォーマットとそれぞれのメッセージを送受信する際の状態、条件等(状態遷��)が規定されます。

    元々TDSというプロトコルはSybaseのSQL Serverで使用されていたもので、今でもMicrosoftもSybase社もTDSと呼んでいます。バージョンはそれぞれに進化していますが、基本的なSyntax等は多くは変わっていません。私は90年代初頭にSybaseの日本法人ができた当初から3年間ほどSybaseのエンジニアリング部門でソースコードを見ていました。当時は今のSQL Server のプロファイラーのようなツールがなく、サーバの挙動をしらべるために、このプロトコルをネットワークの途中で取り出し、解析するプログラムを作った記憶があります。当時はTDSは仕様が公開されていなかったのですが、今はTDSの仕様は公開されています。

    http://download.microsoft.com/download/a/e/6/ae6e4142-aa58-45c6-8dcf-a657e5900cd3/%5BMS-TDS%5D.pdf

    このプロトコルがテーブル形式と呼ばれる理由を以下の例から見てみましょう。図は、Microsoft Network Monitor 3.1でSQL Server Management StudioとSQL Server 2008との間のSQL (Select * from table_a)とその応答をモニターしたところです。

    図1 SQL Server Management Studio の結果画面

     

    図2 SQL Server からSSMSへの応答メッセージのパケット詳細(クリックすると画面を拡大します)

     

    詳細に表示されているものが、SQL Serverからの応答メッセージです。

    Hex Detailの中で紫色の04から始まる部分がTCPのペイロードとしてのTDSメッセージです。04はこのメッセージがSQL Responseであることを意味しています。その後に状態や長さ(0x0074=112バイト=04から最後の00までのバイト数) が続きます。水色の81から始まる部分がCOLMETADATA(カラムのメタ情報)となり、カラム名(緑色でマーキング)をはじめとするカラム情報が含まれています。次に水色のD1から始まる部分がROW(各行)データです。ここではInt型の値(長さ0x04バイトと値0x00000001)とCHARの文字列(長さ0x0Aと値 'aaaaaaaaaa')が返ってきていることが分かります。

    さらに2行目も同様に0xD1 からはじまります。このようにテーブルそのものの形式が送られてくるためにTDSと呼ばれます。

    TDSは1980年代というネットワークが非常に低速な時代に考えられたプロトコルであり、またデータベースというパフォーマンスが最優先されるサーバに対するプロトコルであるために冗長的な情報はほとんどありません。密結合を前提としたプロトコルです。最近のRESTのようなプロトコルと対比すると違いが明らかですね。