多くの場合、ログ ファイルは大きくて扱いにくいものです。ログ ファイルを使用せずに (または空のログ ファイルを使用して) SQL Server データベースを "バックアップ" する方法はありますか?
3 に答える
ログの一部は、実際にはバックアップに含まれています。これは、復元時に一貫性を確保する方法です。バックアップの実行中に変更されたページは、ログ (またはログに記録された変更) から取得され、復元プロセスの最後に適用されます。
これを回避することはできませんが、SQL Server が行うログの量を制限することはできます。データベースをシンプルモードにすることでこれを行いますが、これを行うと、誰かがで発行した時点まで回復できないことを理解してください
delete myTable
WHERE句を忘れていました。完全バックアップからのみ復元できます。
やりたいことは、(BACKUP DATABASE コマンドを使用して) データベースを定期的にバックアップし、BACKUP LOG コマンドをより頻繁に実行することです。通常、小規模なデータベースのフル バックアップを毎晩行ってから、1 時間ごとにログ バックアップを行います。これにより、これらすべてのバックアップ ファイルを保持していれば、1 日のうちの任意の時点に回復できます。
また、BACKUP LOG コマンドは再利用のためにログ ファイルのスペースを解放するため、ログ ファイルのサイズも管理します。
データベースの完全バックアップを作成する直前に、次を実行します。
BACKUP LOG databasename WITH TRUNCATE_ONLY
前に行う理由は、将来のログ バックアップでポイント イン タイムの一貫性が維持されるようにするためです。このようにして、常に有効なチェーンを保持します (とにかく、このフル バックアップから - TRUNCATE により、最後のログ バックアップがあったときからポイント イン タイム リストアを実行できなくなりますが、すべてのデータのみのバックアップはまだ有効です)。
申し訳ありませんが、あなたの質問は意味がありません。
BACKUP DATABASE では、ファイルではなく、データ ファイル (MDF および NDF) からデータページをバックアップします。次に、エンジンは、バックアップ中に発生したすべての変更を (ログエントリから) 追加します。
ログ エントリ (ファイルではない) は、BACKUP LOG でバックアップされます。データベースに単純復旧モデルがある場合、これは必要ありません。
DB を復元すると、ディスク上にファイルが再作成されます。これはあなたが意味するものですか?
ログ ファイル自体は、すべての RDBMS の動作に不可欠です。
ここでの唯一の問題は、BCP/DR 戦略のコンテキストでそれらをバックアップ/復元する方法です。