トップ回答者
システムDBと作成したDBのバックアップタイミングを揃える必要があるのではないか

質問
-
msdnなどを参照すると、システムDB(masterなど)と、作成したDB(testDBなど)のバックアップを実行するタイミングは、
非同期で各々スケジュールすれば良いようにみえます。
しかし、oracleでいう制御ファイルにあたる情報が、システムDBにあるとすると(下記、URL)
http://www.microsoft.com/japan/sqlserver/2005/prodinfo/compare/fororacle/sqlserver_01_chap2_02.mspx
トランザクションログがどこまで適用されたか、トランザクションログの切捨てはどこまで実施してよいか等の情報が、
システムDB上にあるのではと思います。
すると、システムDBと作成したDBの、バックアップタイミングは揃える必要があるように思います。(かつ、リストアするときは、全て
一緒に戻す必要がある。)
正確にタイミングを揃えることは、できなさそうなので、
・CHECKPOINTを、作成したDBで実行。
・作成したDBをバックアップ。
・システムDBをバックアップ。
を続けて実行することで、できるだけ、同タイミングに近づけることができるように思います。
いかがでしょうか。
回答
-
こんにちは、nagino です。> トランザクションログがどこまで適用されたか、トランザクションログの切捨てはどこまで実施してよいか等の情報が、
> システムDB上にあるのではと思います。ありません。トランザクションログ内にあります。> すると、システムDBと作成したDBの、バックアップタイミングは揃える必要があるように思います。(かつ、リストアするときは、全て
> 一緒に戻す必要がある。)ありません。ただし、ログイン等インスタンスレベルの情報に関してはシステム DB に記録されていますので、それらに変更があった場合はシステム DB もあわせて復元する必要があります。SQL Server では、トランザクションログに記録する各処理毎に LSN(Log Sequence Number) という一意な番号を振っています。LSN は、データファイルのページと、トランザクションログと、両方に記録されています。この LSNと、チェックポイント、コミット等の情報を元に、復元時にロールフォワード(REDO)、ロールバック(UNDO)すべき内容を特定します。そのため、データファイルとトランザクションログのみでリストアが行えます。
MCITP(Database Developer/Database Administrator)- 回答としてマーク さび 2009年7月12日 8:35
-
すべての返信
-
こんにちは、nagino です。> トランザクションログがどこまで適用されたか、トランザクションログの切捨てはどこまで実施してよいか等の情報が、
> システムDB上にあるのではと思います。ありません。トランザクションログ内にあります。> すると、システムDBと作成したDBの、バックアップタイミングは揃える必要があるように思います。(かつ、リストアするときは、全て
> 一緒に戻す必要がある。)ありません。ただし、ログイン等インスタンスレベルの情報に関してはシステム DB に記録されていますので、それらに変更があった場合はシステム DB もあわせて復元する必要があります。SQL Server では、トランザクションログに記録する各処理毎に LSN(Log Sequence Number) という一意な番号を振っています。LSN は、データファイルのページと、トランザクションログと、両方に記録されています。この LSNと、チェックポイント、コミット等の情報を元に、復元時にロールフォワード(REDO)、ロールバック(UNDO)すべき内容を特定します。そのため、データファイルとトランザクションログのみでリストアが行えます。
MCITP(Database Developer/Database Administrator)- 回答としてマーク さび 2009年7月12日 8:35
-