54

SQL Server 2008 ファイルが与えられた場合、トランザクション ログなしでファイルからのみデータ ファイル.bakを復元する方法はありますか?.bak

私が尋ねている理由は、このデータベースのトランザクション ログ ファイルのサイズが非常に大きく、私がすぐに利用できるディスク容量を超えているからです。

私はトランザクション ログには関心がなく、未完了のトランザクションには関心がありません。通常、データベースを復元したら、ログをゼロに縮小します。しかし、そもそもログを作成するための十分なディスク容量がない場合、それは役に立ちません。

私が必要としているの.bakは、トランザクション ログではなく、ファイルからデータのみを復元するように SQL Server に指示する方法です。それを行う方法はありますか?

私はファイルの生成を制御できないことに注意してください.bak-それは外部ソースからのものです。.bakファイルを生成する前にトランザクション ログを圧縮することはできません

4

5 に答える 5

9

トランザクション ログは、バックアップの不可欠な部分です。SQL Server にトランザクション ログを無視するように指示することはできません。トランザクション ログ ファイルの復元と圧縮を同時に行う方法がないからです。ただし、DBA の投稿を見てプロセスをハックすることはできますが、まったくお勧めできません。

別の方法として、復元用のサードパーティ製ツール、特に多くのスペースと時間を節約できる仮想復元プロセスを試すこともできます。ApexSQL Restore、RedGate Virtual Restore、Idera Virtual Database を確認してください。

免責事項: 私は ApexSQL でサポート エンジニアとして働いています。

于 2014-02-07T21:00:50.590 に答える
7

いいえ、トランザクション ログは必要です。

オプション1:

オプションは、十分なスペースがあるマシンに復元することです。次に、復元されたコピーでログを一括ログまたは単純に変更し、ログを縮小し、この新しいコピーで別のバックアップ操作を実行してから、それを使用してターゲット マシンに復元し、現在ははるかに小さいトランザクション ログを作成します。

オプション 2:

または、外部ソースの連絡先がトランザクション ログを送信する前に圧縮することもできます (大量の大きなトランザクションが原因でログが大きい場合、これは機能しない可能性があります)。

ログ ファイルを縮小するコマンドに関するドキュメントは、こちらから入手できます

于 2011-12-07T13:44:49.453 に答える
4

これは実際には ServerFault または DBA サイトに関する質問ですが、短い答えはノーです。完全な .bak ファイルのみを復元できます (ファイル グループや断片的な復元などの「特殊な」シナリオは別として)。「巨大」が何を意味するのかはわかりませんが、ディスク容量は安価です。さらに追加できない場合は、外部ソースからデータを取得する別の方法を見つける必要があります。

于 2011-12-07T13:33:18.507 に答える
2

.bak ファイルの生成を制御できないため、これは機能しない可能性がありますが、ソースを説得してデータベースを切り離し、.mdf ファイルのコピーを直接送信することができれば、.mdf を添付してサーバーは新しい空のトランザクション ログ ファイルを自動的に作成します。

sp_detach_db および sp_attach_db (または SQL Server のバージョンに応じて CREATE DATABASE database_name FOR ATTACH) を参照してください。

于 2013-08-26T21:02:46.027 に答える