データベースを初期サイズ以下に縮小する
ライブの30GBコピーであるSQL Server 2005開発データベースを持っています。devで不要なデータをいくつか削除しました。これにより、使用されるデータファイルスペースが20GBに下がります。したがって、約33%が未使用です。 スペースを再利用する必要があります。これにより、サーバーに2番目の開発DBを(カットダウンバージョンに基づいて)配置できます。ただし、スペースを取り戻すことはできません。次のようにしました。 ファイルの初期サイズSMS2_Dataは30GBです。 DBCC SHRINKFILE (N'SMS2_Data' , 0, TRUNCATEONLY) に続く DBCC SHRINKFILE (N'SMS2_Data' , 19500) 喜びがない。バックアップを作成して、初期サイズの小さい新しいDBを作成してから復元しようとしましたが、初期サイズが上書きされて喜びません。また試しました: ALTER DATABASE SMS2HazSub MODIFY FILE (NAME = 'SMS2_Data', SIZE = 20000) これは誤り、言った: MODIFY FILEが失敗しました。指定されたサイズは現在のサイズよりも小さいです。 20800を試してから29000(29GB)まで上がり続けましたが、それでも変更できません。 縮小を行った後、回復モードをからFULLに変更しSIMPLEました。喜びがない。 いくつかのTEXT分野と関係があると思いました。システム全体で約6つあります。テストとして、すべてを削除してからファイルを縮小しましたが、変更はありませんでした。 残っている唯一のオプションは、データを別のDBに再インポートすることです。ライブDBで実行する必要があるため、これは実用的ではなく、リスクが高すぎます。半定期的にライブDBのコピーを取得し、dev / testを上書きします。500テーブルのようなものがあります。新しいDBにデータをエクスポートするリスクのない方法を教えてください。 データを別のファイルに移動しようとすると、データの5%を除くすべてがコピーされました。これが、すべてのテキスト列を削除しようとした理由です。 サーバーは互換モード90ですが、SP2です。これで、すべてのテーブルのインデックスの再作成、データベースのバックアップ、ファイルの圧縮、データベースの圧縮の3回を実行しました。まだ喜びはありません。 EXECUTE sp_spaceused 戻り値: database_name database_size unallocated space SMS2Tests 31453.94 MB …