Я копирую базы данных из SQL 2000 в экземпляр 2008 на другом сервере с помощью DETACH, копирую файл Windows на сервер 2008, а затем, наконец, ATTACH. Я пришел в базу данных, где файл журнала находится в двух файлах 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
Я хотел бы иметь только один файл для журнала (т.е. я могу увеличить его и настроить параметры роста, но я бы предпочел, чтобы это был всего один файл, прежде чем я обновляю базу данных до SQL2008).
Я сделал резервную копию базы данных. Я выпустил: BACKUP LOG MasterScratchPad WITH TRUNCATE_ONLY. Я выполнил несколько команд DBCC SHRINKFILE для обоих файлов LOG. Самой последней попыткой была DBCC SHRINKFILE (MasterScratchPad_X1_Log, 0), но результат такой же, как указано выше.
Как я могу достичь этой цели, имея только один .LDF? Я не могу найти ничего о том, как удалить файл с идентификатором файла 3 и / или как объединить несколько файлов в один файл журнала.
Это довольно просто ... Вот ваш сценарий ниже. Позвольте мне знать, если вам нужно что-нибудь еще.
Спасибо!
-VM
ИСПОЛЬЗУЙТЕ [MasterScratchPad]
ИДТИ
ИЗМЕНИТЬ БАЗУ [MasterScratchPad] УДАЛИТЬ ФАЙЛ [MasterScratchPad_X1_Log]
ИДТИ
Тем не менее, знайте, что вы делаете. Однофайловые (базы данных, журналы) базы данных МЕДЛЕЕ, чем многофайловые - есть веские причины иметь X-файлы каждый, где X - количество ядер. Все это хорошо задокументировано Microsoft - но, похоже, многие люди не любят читать (я редко вижу компетентного администратора SQL в этих и некоторых других отношениях).