Очевидно, что вы можете отсоединить все базы данных и повторно подключить с помощью процедур sp_attach и sp_detach. Есть ли онлайн-способ сделать это, быстро гуглил, но ничего не вижу.
Лучший способ, который потребует некоторого времени простоя, - использовать ALTER DATABASE ... SET OFFLINE. Для этого есть несколько веских причин.
Подробнее здесь:
Как переместить базу данных SQL Server в один экземпляр без потери настроек
К сожалению, не существует "безопасного" онлайн-метода.
Вы должны отключить базу данных или отключить ее.
Вы не можете «очистить» файл журнала, как файл данных.
Вы можете сделать резервную копию, а затем восстановить резервную копию. Во время восстановления вы можете указать другое место для журнала транзакций.
Если вы хотите переместить файл журнала без необходимости отключать базу данных, есть способ, которым я пользовался раньше. Надеюсь, я правильно помню:
Добавьте новый файл журнала в новое место, например:
ALTER DATABASE foo ДОБАВИТЬ ФАЙЛ ЖУРНАЛА (NAME = NewLog, FILENAME = 'YourNewPhysicalPath', SIZE = 100MB, другие параметры ...);
Очистите старый файл журнала с помощью:
USE foo; DBCC SHRINKFILE (OldLog, EMPTYFILE);
Сделайте резервную копию журнала с помощью BACKUP LOG foo ...
Удалите старый файл журнала с помощью:
ALTER DATABASE foo УДАЛИТЬ ФАЙЛ OldLog;
Если последний говорит, что вы не можете удалить, потому что файл не пуст, попробуйте выполнить 2 и 3 еще раз, а затем 4.
РЕДАКТИРОВАТЬ: Ну, оказывается, я не запомнил это правильно ... ЭТО НЕ БУДЕТ РАБОТАТЬ таким образом, и, как указал gbn, вы не можете «очистить» файл журнала через SHRINKFILE (но это не было моей целью в любом случае - я просто хотел чтобы пометить файл как «не для использования», чтобы он не использовался повторно и его можно было удалить позже). Я думаю, что подобная техника все еще возможна для любых дополнительных файлов журналов, которые у вас есть, кроме первого, но я опубликую об этом, когда у меня будет возможность изучить это.