問題調査のために開発者オフィスに転送したクライアントからのbakファイルがあります。現在、バックアップは25GBで、復元されたデータベースはほぼ同じサイズですが、復元するには100GBが必要です。これは、データベースが75GBのトランザクションログサイズを持つように設定されているためだと思います。データベースを復元した後、ログファイルを圧縮できますが、復元でこれを行う方法はありますか?
問題調査のために開発者オフィスに転送したクライアントからのbakファイルがあります。現在、バックアップは25GBで、復元されたデータベースはほぼ同じサイズですが、復元するには100GBが必要です。これは、データベースが75GBのトランザクションログサイズを持つように設定されているためだと思います。データベースを復元した後、ログファイルを圧縮できますが、復元でこれを行う方法はありますか?
回答:
あり-常に行いません。これは、イン・ライブ環境スペースが限られている場所が圧縮フォルダにログファイルを復元することによって、使用することができますハック。既存のフォルダーを圧縮して復元することでこれを試行すると、エラーが発生するため、シンボリックリンクでチートする必要があります。
D:\LogCompressed\
圧縮フォルダーへのシンボリックリンクを作成する mklink /D /J D:\Log\ D:\LogCompressed\
を指すldfファイルでデータベースを復元します D:\Log\
ログファイルを適切なサイズに縮小する
データベースをデタッチし、ログファイルを非圧縮フォルダーに移動し、アタッチします
それは汚い、不正行為です、ライブでそれをしないでください、しかしそれは動作します。32MBのログファイルを使用して新しく作成されたデータベースのクイックテストでは、圧縮時のディスク上の330kbを占有し、フォルダを解凍するとディスクサイズが32MBに戻ったことが示されます。
バックアップが25 GBで、復元されたデータベースが100 GBである理由は、トランザクションログのためではないと思います。私の推測では、データベースファイルには100 GBのスペースが割り当てられており、データベースには25 GBの実際のデータがあります。
割り当てられたデータベースファイルスペースと使用されたデータスペースには違いがあります。この場合、前者は100 GBで、後者は25 GBです。