Переместить файл журнала, не переводя базу данных в автономный режим

14

Мне нужно переместить файл журнала базы данных в новый раздел, не переводя базу данных в автономный режим.

Обычный способ сделать это - отсоединить БД, переместить файл журнала, а затем снова подключить БД.

Возможно ли это сделать без отключения самой базы данных и если да, то как?

Не я
источник

Ответы:

16

Нет способа сделать это с онлайн базой данных.

Когда вы перемещаете файл базы данных ( ALTER DATABASE ... MODIFY FILE), вы даже получаете следующее сообщение:

Файл «YourFile» был изменен в системном каталоге. Новый путь будет использоваться при следующем запуске базы данных .


Обычный способ сделать это - отсоединить БД, переместить файл журнала, а затем снова подключить БД.

Это не «нормальный» или принятый способ, которым я бы это сделал. Чтобы переместить файлы базы данных, я делаю следующее:

  1. Запустите команду ALTER DATABASE, чтобы изменить местоположение файла (ов)
  2. Отключить базу данных
  3. Физически переместить файл (ы) в новое место, указанное на шаге 1
  4. Вывести базу данных в онлайн

См. Эту ссылку на TechNet. Перемещение пользовательских баз данных.

Томас Стрингер
источник
3

В соответствии со ссылкой на TechNet Move User Database из ответа Томаса Стрингера , если вы хотите переместить файлы без остановки всего экземпляра SQL Server (следуя «Процедуре планового перемещения»), порядок должен быть:

ALTER DATABASE database_name SET OFFLINE;
... move the file(s) to new location
ALTER DATABASE database_name MODIFY FILE ( NAME = logical_name, FILENAME = 'new_path\os_file_name' );
ALTER DATABASE database_name SET ONLINE;

Обратите внимание на Оффлайн сначала; после этого переместите файлы и сообщите SQL Server о новом местоположении.

Если вам необходимо отключить весь экземпляр SQL Server (см. Процедуру «Перемещение для планового обслуживания диска»), лучше сначала изменить расположение файлов, чтобы при перезапуске экземпляра не возникало проблем с поиском файлов. в новых локациях.

DocOc
источник
1

Я знаю, что это старый вопрос, но вы не можете просто добавить второй файл журнала (который затем используется БД вместо оригинала) в новом месте, а затем сжать / удалить оригинал?

ibmdba
источник