トップページへ PASSJ ブログへ
トップページへ
分科会
特集!
コミュニケーション
資格
セミナー・コンファレンス
インフォメーション
エラーでおぼえる!? SQL Server 2000 管理運用術
文=鈴木智行(NEC Eラーニング事業部)
第5回
ログは自動でアーカイブされないの?
障害が発生した場合、事前に取得しておいたバックアップデータを使用して障害復旧に努めるというのは、データベースに限らずコンピュータシステムであれば当然のことだと思います。もちろん、 Oracle だろうが SQL Server だろうがその考え方に差異はありません。しかし実際にバックアップ / リカバリの運用を実装しようとすると、 Oracle と SQL Server では実装方法が大きく異なります。今回は、特に Oracle と異なる SQL Server のバックアップに関する基本的な話を中心にご紹介します。

目次
ロールバックセグメントは?
ログファイルはサイクリックに運用できない?
ログファイルはミラー化しないの?
ログの採取モード
データベース復旧モデル
バックアップの種類と計画
復元オプション
〜最後に〜

ロールバックセグメントは?


SQL Serverには、UNDO情報を格納するロールバックセグメントはありません。ただしUNDO情報をどこにも保存しないのではなく、ログファイル(OracleではREDOログファイルにあたる)のみに保存します。リカバリ時には、バックアップしておいたトランザクションログを使ってコミットされていないトランザクションをロールバックし、データの整合性を維持します。



ログファイルはサイクリックに運用できない?


Oracle では REDO ログファイルをサイクリックに使用できますが、 SQL Server では必ずしもサイクリックに使用されるわけではありません。何も考慮しなければ、ログファイルはサイクリックに使用されず、増加の一途をたどります。また、ログファイルはデフォルトで自動拡張オプションが設定されているため、ディスクの空き領域を食い尽くすようなことにもなりかねません。必要であればトランザクションログを監視し、トランザクションログの切り捨てを行って適切な量を保つ必要があります。



ログファイルはミラー化しないの?


Oracle では REDO ロググループに複数の REDO ログファイルを設定してミラー化することができますが、 SQL Server にはロググループはありませんし、ミラー化の機能もありません。もちろんログファイル自体の障害が発生してしまうと、アクティブなログを使用したリカバリができなくなります。これに備え、 Windows 2000 Server 以上の OS の機能によるミラーリングやミラーリング機能を実装した専用のハードディスクを使用することが必要になります。



ログの採取モード


SQL Server にはログの採取モード( NO ARCHIVELOG および ARCHIVELOG )は存在しせん。アーカイブするためにはトランザクションログをバックアップする必要があります。トランザクションログをバックアップすれば、ログの切り捨てを自動で行ってくれるためログの増加を防ぐことができ、さらにログファイルをサイクリックに使用することができます。



データベース復旧モデル


データベース復旧モデルはSQL Serverで設定可能なデータベースオプションの1つであり、下記の3つのモデルがあります。

フル復旧モデル
すべての操作をログに完全に記録します。
一括ログ記録復旧モデル
一括操作に対して、最小のログ領域を使用します。その他の操作はログに完全に記録します。
シンプル復旧モデル
一括ログ記録復旧モデルと同等のログを記録しますが、すぐに切り捨てられ、その領域は再利用されます。

このデータベース復旧モデルはバックアップの種類に制限を与えます。たとえばトランザクションログをバックアップするためには、データベースの復旧モデルがシンプル以外の復旧モデル(フル、一括ログ記録)でなければいけません。

SQL Server Enterprise Manager では、データベース復旧モデルを[データベース]プロパティの[オプション]タブで指定します(画面1)。

■ 画面1 データベース復旧モデルを指定
(図)データベース復旧モデルを指定


バックアップの種類と計画


SQL Serverにおけるバックアップ方法は、以下の4種類が用意されています。

・フルデータベースバックアップ
・トランザクションログバックアップ
・差分バックアップ
・ファイル/ファイルグループバックアップ

SQL Server Enterprise Managerでは、バックアップの種類を[ツール]-[データベースのバックアップ]タスクから[全般]タブで指定します(画面2)。

■ 画面2 バックアップの種類を指定
(図)バックアップの種類を指定

実際のバックアップを行う場合には、事前にデータベースのサイズや更新頻度およびビジネス環境に基づいてバックアップ方法を組み合わせて計画を立てることが重要です。データベースをスムーズに運用するための必要要件は、業務システムをとりまく環境によってさまざまであり、どのバックアップ運用計画を選択するのがが正しいかは、一概には言えません。

バックアップ方法の組み合わせは以下の5パターンに集約されると思いますので、ぜひ参考にしてください。

・パターン1 フルデータベース/トランザクションログバックアップの組み合わせ
・パターン2 フルデータベース/トランザクションログ/差分バックアップの組み合わせ
・パターン3 フルデータベース/差分バックアップの組み合わせ
・パターン4 フルデータベースのみ
・パターン5 ファイルグループ/トランザクションログバックアップの組み合わせ



復元オプション


データベースを復元するときのオプションにはさまざまな種類がありますが、最低限以下の 2つのオプションは覚えてください。

Recovery
データベースは操作可能状態。別のトランザクションログの復元は不可。
NoRecovery
データベースは操作不可状態。別のトランザクションログの復元は可能。

この 2 つの復元オプションで、バックアップデータを復元したときの状態を決定します。

Recovery オプションは、バックアップを復元し、データベースの整合性を保つように復旧するオプションです。最新のバックアップを復元するときに使用するオプションだと考えれば良いでしょう。

NoRecovery オプションは、バックアップを復元するだけのオプションです。復元プロセスの途中段階で使用するオプションだと考えれば良いでしょう。

たとえば、パターン1でのバックアップ運用計画を下記の表のように実現したとします。

AM8:00 フルデータベースバックアップ
AM10:00 トランザクションログバックアップ
AM12:00 トランザクションログバックアップ

上記のバックアップを使用してAM12:00の状態にデータベースを復旧するためには、次のような形でデータベース復元を実行します。

順番 使用するバックアップ 復元オプション
1 AM8:00 のフルデータベースバックアップ NoRecovery
2 AM10:00 のトランザクションログバックアップ NoRecovery
3 AM12:00 のトランザクションログバックアップ Recovery

SQL Server Enterprise Managerでは、復元オプションを[ツール]-[データベースの復元]タスクから[オプション]タブで指定します(画面3)。

■ 画面3 復元オプションを指定
(図)復元オプションを指定


〜最後に〜


今回は基本的なデータベースのバックアップにかかわる話をご紹介しましたが、もちろん障害といってもさまざまですし、どのように復旧すべきかも、システムの要件によって変わってくると思います。 SQL Server のバックアップ / 復旧に関する機能や設定は、これだけではありません。特にデータの損失に関わる被害は多大な損害を被る可能性が高いので、より深く、しっかりと理解してください。




・ 第1回 リモートからSQL Server 2000にアクセスできない?
・ 第2回 ディスクの空き領域がなくなる?
・ 第3回 権限があるのにアクセスできない?
・ 第4回 ジョブが失敗する?
・ 第5回 ログは自動でアーカイブされないの?
・ 第6回 メモリサイズは調整できないの?


著者プロフィール
鈴木 智行(SUZUKI, Tomoyuki)
NEC Eラーニング事業部
http://www.sw.nec.co.jp/el/

入社以来、インストラクタとして教育業務に従事。SQL Serverには、4.21aから携わる。最近はデータベースグループの一員として、より大きな見地からデータベースを担当。

← 特集!DBバイリンガル 目次

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