web-dev-qa-db-ja.com

250GBドライブ上のSQLServer2008データベース250GB

新しいジョブを開始し、サイズが250GBの2008SQLデータベースがあります。開発者は、サイズはほぼ正しいと主張しています。問題は、250GB MDFファイルが250GBドライブにあることです。

データベースのバックアップを実行しようとしましたが、次のエラーが発生します。

System.Data.SqlClient.SqlError:ファイル "C:\ Backup\backup.bkf:" 112で回復不能なI/Oエラーが発生しました(このエラーのテキストを取得できませんでした。理由:1815)。 (Microsoft.SqlServer.Smo)

基本的に2つのオプションがあります。

  • 可能であれば、MDFのサイズを小さくしてみてください。
  • RAIDアレイをアップグレードする

助けていただければ幸いです。

ありがとう

2
Skeep

はい、十分な空き容量がある別の場所にバックアップを実行する必要があります。 SQL2008 R2 Standard(または2008 Enterpriseの任意のリリース)を使用している場合は、圧縮バックアップを実行できます(Quest Litespeedなどのサードパーティソフトウェアでも可能です)。それ以外の場合、バックアップはデータファイルサイズ+ログファイルサイズと同じ大きさになります。

縮小に関しては、ファイル自体の使用済みスペース/空きスペースを知ることにより、ファイルを縮小することが可能であるかどうかを最初に判断する必要があります。 250GBのファイルでは、240GBを使用して10GBを空けるか、またはその逆を行うことができます。 (これを判断する最も簡単な方法:データベースを右クリックして、[タスク]> [縮小]> [ファイル]に移動します。[OK]をクリックしないでください。現在割り当てられている容量と[使用可能な空き容量]の数値を確認し、[ファイルの種類]ボックスを下にドロップしてください。データとログを参照してください)。

見つけたものに応じて、いくつかの選択肢があります。

  1. ファイル内に十分な空き容量がある場合は、問題ない可能性があります。データファイルは、完全にいっぱいになるまで拡大しようとはしません(特に大規模なテーブルでのインデックスの再構築など、いくつかの例外があります)
  2. ファイル内に空き領域がある場合は、ファイルの some を回復してみてください。 (SQLには、いわば「エルボールーム」が必要なので、 all 空き領域を回復しようとしないでください。)最初に[未使用領域を解放する]オプションを使用します(これにより、単に解放されます)すでにファイルの最後にあるスペース)。次に、さらに必要な場合は、 all の空き領域を回復するのではなく、特定のターゲットサイズを選択します。データが縮小するとファイルが断片化するため、常に完全なインデックスの再構築を行ってください。
  3. データファイルでほぼいっぱいの場合でも、いくつかのオプションがあります。別のドライブに(同じ「ファイルグループ」内の)新しいデータファイルを追加できます。 250GBファイルが not に自動拡張に設定されていること、および新しい新しいファイル(別のドライブ上)が is に設定されていることを確認します自動成長。したがって、最初のファイルからの「オーバーフロー」は2番目のファイルに拡大します。
  4. もう少し慎重になりたい場合は、 new Filegroupを使用して(別のドライブに)ファイルを作成できます。次に、特定のテーブルまたはインデックスをこの新しいファイルに移動する必要があります(ALTER TABLEを使用)
2
BradC

データベースファイルの縮小を試みることができます。データベース->タスク->縮小(Mgmt Studio内)を右クリックします。 250 GBのデータベースの場合、これには長い時間がかかります。おそらく最大1時間かかります。

または、外付けUSBハードドライブを接続して、それにバックアップしてみることができます。

0
jftuga

明らかに、別のドライブにバックアップを取ります。データベースに250GBが必要な場合は、250Gbのままにしておきます。メンテナンス作業のために追加のスペースが必要です。追加のストレージをビジネス上正当化するのに最適です。 SHRINKDATABASEを実行しない正当な理由があります...

0
Remus Rusanu