DETACH を使用して SQL 2000 から別のサーバーの 2008 インスタンスにデータベースをコピーし、Windows ファイルを 2008 サーバーにコピーしてから、最後に ATTACH を実行しています。ログ ファイルが 2 つの Windows ファイルにあるデータベースに至りました。
name fileid filename size maxsize growth usage
MasterScratchPad_Data 1 C:\SQLDATA\MasterScratchPad_Data.MDF 6041600 KB Unlimited 5120000 KB data only
MasterScratchPad_Log 2 C:\SQLDATA\MasterScratchPad_Log.LDF 2111304 KB Unlimited 10% log only
MasterScratchPad_X1_Log 3 E:\SQLDATA\MasterScratchPad_X1_Log.LDF 191944 KB Unlimited 10% log only
ログ用のファイルを 1 つだけにしたいです (つまり、ログ ファイルを大きくして、増加パラメータを調整できますが、データベースを SQL2008 にアップグレードする前に、ログ ファイルを 1 つだけにしたいです)。
データベースをバックアップしました。 発行したのは BACKUP LOG MasterScratchPad WITH TRUNCATE_ONLY です。 両方の LOG ファイルに対して複数の DBCC SHRINKFILE コマンドを実行しました。 最新の試行は DBCC SHRINKFILE(MasterScratchPad_X1_Log, 0) でしたが、結果は上記のとおりです。
.LDF を 1 つだけにするという目標をどのように達成できるでしょうか? ファイル ID が 3 のファイルを削除する方法や、複数のファイルを 1 つのログ ファイルに統合する方法に関する情報が見つかりません。
答え1
これはかなり簡単です... 以下にスクリプトを示します。他に何か必要な場合はお知らせください。
ありがとう!
-VM
[MasterScratchPad]を使用する
行く
ALTER DATABASE [MasterScratchPad] REMOVE FILE [MasterScratchPad_X1_Log]
行く
答え2
そうは言っても、何をするかは意識してください。単一ファイル (データベース、ログ) のデータベースは、複数ファイルよりも低速です。それぞれ X 個のファイル (X はコアの数) を持つのには十分な理由があります。これはすべて Microsoft によって十分に文書化されていますが、多くの人は読むことを好まないようです (この点や他の点に関して有能な SQL 管理者にはほとんど会いません)。