SQL Serverデータベースを復元すると同時にそのファイルを圧縮する方法は?


9

たとえば、SQL Serverデータベースのデータファイルが初期サイズ100 GBで作成されているとしますが、そこには10 GBのデータしか含まれていません。その場合、データベースバックアップのサイズはわずか10 GBになります。

このバックアップを別のサーバー(または同じサーバー上の別のデータベース)に復元したいのですが、元のバックアップ(100 GB)と同じディスク領域を使用したくありません。これはデフォルトで行われます。

バックアップをとる前に元のデータベースを縮小することはできません(これは運用データベースであり、事前に割り当てられたスペースが必要です)。私は可能性があり、復元後に復元されたデータベースを縮小行われますが、私は実際にそれを持っていることを好むだろうではないことをしながら100ギガバイトを取ります。さらに、この特定のシナリオでは、ディスクに十分な空き容量がないため、復元はどこにも行われません。

データベース復元して、データベースに含まれている実際のデータと同じだけのスペースを占めるようにする方法はありますか?


同様の問題がありました。ディスクで使用されていた元のDBスペースは約30GB(約1.5GBの実データ)で、ローカルのMSSQL Expressサーバーでそれを復元したいと考えています。明らかな問題は、私のローカルサーバーが最大値しか許可しないことです。無料版なので10GBの。したがって、DBを復元する前にファイルを
圧縮

回答:


6

いいえ、申し訳ありません-方法はありません。Restoreは、バックアップ時のファイルを復元します。シンキングは、その後またはバックアップを取る前に行う必要があります。


2

ディスク容量が不足している場合は、.bakファイルをネットワーク共有に配置して、そこから復元できます。ドメインアカウントを使用して実行中のSQLサーバーで機能し、共有にファイルを読み取るための十分な権限を与える場合に機能するはずです。

以前にナットバスケットを使用していたもう1つのオプションは(SQL Server 2008 R2を実行している場合にのみ役立ちます)、SQL Serverは、トレースフラグを使用せずに直接共有へのデー​​タベースファイルの作成をサポートすることです。個人的な経験から、それは機能します!したがって、共有へのWITH MOVEを使用した復元を実行できます。


1

一般的に言えば、いいえ。役立つかもしれない、または役に立たないかもしれないいくつかのランダムなアイデア:

  • 特定のバックアップからのデータが絶対に必要でない限り、ターゲットサイズの新しい(空の)データベースを作成し、一括コピー(またはSSIS)を使用して、現在の(ライブ)データベースからすべてのテーブルをコピーにプッシュできます。
  • これが1回限りの操作ではない場合、この種のことを自動化するのに役立つサードパーティツール(Redgate Compareなど)があります。
  • 一部のサードパーティバックアップソフトウェア(Quest Litespeedなど)には、「オブジェクトレベルのリカバリ」を実行する機能があり、個々のテーブルやその他のオブジェクトを新しい(空の)データベースに復元できます。バックアップがLitespeedを使用して作成されていない場合でも、この製品はネイティブSQLバックアップで動作するはずです。

最後に、本番データベースの「エルボールーム」も好きですが、合計100 GBから90 GBを解放すると、少し極端に聞こえます。次の手順は、必要なものを提供する可能性があり、生産に影響を与えるべきではありません。

  1. DBCC SHRINKFILE ('myfile.MDF', TRUNCATEONLY)本番データファイルでを実行して、ファイルの最後にある空き領域を一時的に解放します(TRUNCATEONLYはIO集約的ではなく、インデックスを断片化しません)。
  2. ログファイルも大きい場合はDBCC SHRINKFILE、ログバックアップを作成した直後に、アクティビティが少ない時間帯に運用ログファイルでを実行します。
  3. バックアップを実行する
  4. を実行してALTER DATABASE MODIFY FILE、本番データファイルを元のサイズに再拡張します。

これらの手順を使用しても、本番環境への影響はありません。唯一のリスクは、データの一部がたまたま100 GBのデータファイルの最後にある場合です。この場合、ステップ(1)でスペースがほとんど解放されません。


ありがとう、私はすでにこれについて知っており、いくつかの回避策を考案しようとしました。元のデータベースには触れられず、バックアップのみが利用可能になりました...それはそのように構成されました。
マッシモ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.