トップページへ PASSJ ブログへ
トップページへ
分科会
特集!
コミュニケーション
資格
セミナー・コンファレンス
インフォメーション
☆コラム「高信頼性データベース エンジンとは?」

最後にMSDE 2000がいかに素晴らしいデータベース エンジンであるのかをご紹介して、1回目の連載を終えたいと思います。
本連載の最終目標は、高信頼性データベース構築方法の取得を目指します。実はこのオペレーション操作は、MSDEやSQL Server7.0ではある障害によって実現できなかったことなのですが、やっと待望していた機能がMSDE 2000やSQL Server 2000によって実現されました。そういう意味でも高信頼性データベースを構築するためには、MSDE 2000やSQL Server 2000に即刻切り換えて下さい。
以下の画面操作で使っているデータベース エンジンは、Office XPに付属しているMSDE 2000を使いました。またEnterprise Managerは評価版のものです。付属のデータベース エンジンと評価版とは言え、ここまでの高信頼性を提供しているこの事実をぜひ、Accessプログラマの方は直視してください。またこのオペレーション操作はEnterprise Managerによって実現されるものであり、Access2002のデータベース管理機能では実現することはできません。ですからSQL Server 2000のライセンスを購入する必要があります。
それでもまだ、Jetデータベース エンジンを使い続けるのですか?
図31:新しくデータベースを作成する
図31:新しくデータベースを作成する
データベース サーバーに新しいデータベースを作成します。
図32:データベースの名前
図32:データベースの名前
新しく作成するデータベースの名前はSampleとします。
データファイルやトランザクションログファイルなどの条件はすべて既定値とします。
図33:データベースのプロパティ
図33:データベースのプロパティ
データベースのオプションを変更するために、データベースのプロパティを表示します。
図34:データベースオプションの変更
図34:データベースオプションの変更
MSDE 2000で作成されたデータベースの初期状態では、トランザクションログはログの切り捨てモードで動作するためにデータベースの復元操作で支障がでます。復旧モデルを「一括ログ記録」にすることで、トランザクションログが有効に働くデータベースとなります。
図35:テーブルの作成
図35:テーブルの作成
データベースの中に新しいテーブルを作成します。
図36:テーブルの列構成
図36:テーブルの列構成
2個の列からなる単純なテーブルを作ります。
図37:testテーブルにレコードの挿入
図37:testテーブルにレコードの挿入
図38:データベースのバックアップの実行
図38:データベースのバックアップの実行
データベースの完全バックアップを実行し、データベースを復元するときの基点となるバックアップデータファイルを作成します。
図39:Sampleデータベースの完全バックアップ
図39:Sampleデータベースの完全バックアップ
バックアップの出力先データファイルはディスクファイルとします。
図40:別の新しいテーブルの作成とレコード挿入
図40:別の新しいテーブルの作成とレコード挿入
testテーブルと同じ列構成のtest2テーブルを作成して、レコードを挿入します。
重要な点は、このtest2テーブルを作成した事実が、完全バックアップファイルの中には記録されていないことに注意する。
図41:Sampleデータベースのデータファイルを破壊する
図41:Sampleデータベースのデータファイルを破壊する
データベースサービスを止めてから、Sampleデータベースのデータファイルの名前を変更する。データファイルの名前を変えることによって、擬似的にデータベースを破壊したことになる。
Sampleデータベースのデータファイルは、MSSQL\Dataフォルダの中に作成されます。Sample\Data.MDFというファイルがデータベースのデータファイルを表します。このファイルの拡張子を変更します。データベースの一番重要なプライマリ データファイルが紛失したことになります。
図42:データベースが壊れた状態
図42:データベースが壊れた状態
データベースサービスを再び起動します。ところがSampleデータベースのプライマリデータファイルが紛失して見当たらないので、データベース サーバーは、このデータベースを開くことができない。
図43:Sampleデータベースの復旧に取りかかる
図43:Sampleデータベースの復旧に取りかかる
データベースが壊れたときのセオリー通りの復旧作業に取り掛かかります。図39に実施した完全バックアップファイルの中には、データベースが壊れるまでのデータは当然記録されていない。特にtest2テーブルの存在は一切書かれていない。
AccessのMDBデータベースを使ったシステムであれば、過去のバックアップを実行した状態に戻す方法しかない。ところがシビアなデータベースシステムでは過去の状態に戻ることなど一切許されない。
データベースが壊れる直前までの状態に復元するためには、完全バックアップを実施してからデータベースが壊れるまでのデータベースに対する時系列のデータ操作命令を吐き出すことです。それはトランザクションログのバックアップを行なうことで実現されます。
図43では、トランザクションログのバックアップを指示します。バックアップ先は、完全バックアップを実施したデータファイルとします。追加形式で書き込みます。
図44:ログバックアップのオプション指定
図44:ログバックアップのオプション指定
このような非常事態でのログのバックアップでは、アクティブでないエントリをトランザクションログから削除してはいけません。このオプションを外して、トランザクションログのバックアップを実施します。
実はこのバックアップ操作がMSDEやSQL Server7では実行できなかったのですが、MSDE 2000やSQL Server 2000では実行できるようになりました。
図45:データベースを削除
図45:データベースを削除
復旧操作を開始するので、壊れたデータベースを削除します。
図46:削除処理の確認
図46:削除処理の確認
バックアップと復元ヒストリは残しておくと良い。復元操作を行うときのヒントとなる。ただこのヒストリに頼って復元操作を行うのは実のところ、あまり感心しない。ちゃんとバックアップ操作記録を書類で残すようにしましょう。
図47:データベースの復元を開始する
図47:データベースの復元を開始する
完全バックアップファイルを最初に復元する。
図48:Sample2データベースという名前で復元
図48:Sample2データベースという名前で復元
バックアップファイルの先頭には、完全バックアップが記録されている。先頭は、バックアップ番号1となる。
図49:復元オプションの指定
図49:復元オプションの指定
完全バックアップを復元した後に、トランザクションログの復元を行なう。このため、復旧完了状態に注意する。ログファイルの復元操作が引き続き適用できるようにします。
図50:トランザクションログの復元処理
図50:トランザクションログの復元処理
トランザクションログのバックアップは、2番目に記録されている。
図51:復元オプションの指定
図51:復元オプションの指定
トランザクションログの復元を行なったらデータベースが使えるような状態になる。復旧完了状態は、操作可能状態にすること。
図52:復元完了メッセージ
図52:復元完了メッセージ
壊れたデータベースが復元できた。ほんとうにtest2テーブルが復元されたのだろうか?
図53:復元されたtestテーブル
図53:復元されたtestテーブル

図37と同じ状態のtestテーブルが得られた。このtestテーブルは、完全バックアップの中に記録されていた。
図54:復元されたtest2テーブル
図54:復元されたtest2テーブル
図40と同じtest2テーブルが復元できた。トランザクションログファイルの中には、テーブルを新しく作成する命令まで記録されています。
データベースが壊れる直前まで、復旧できました。このような高信頼性データベース エンジンが、すぐそのOffice XPのCD-ROMの中に入っています。









<< 前へ次へ >>
◆PAGE LINK  |  |  |  |  |  |  |  |  |  | 10 | 11 | コラム | OPTION 

PASSJメールニュース 著作権ついて プライバシーポリシー リンクポリシー お問い合わせ
(C) 2005 Professional Association for SQL Server Japan. All rights reserved.