Назад | Перейти на главную страницу

SQL Server - удалить основной файл журнала без простоя

У меня есть MDF и LDF на одном диске, и на нем почти нет места. У меня есть второй диск на том же сервере, и я хотел бы переместить на него файл LDF. Я знаю, что могу отсоединить и снова присоединить, но это связано с простоями, и я хотел бы сделать это прозрачно.

  1. Я создал второй файл журнала на своем новом диске и добавил его в базу данных, поэтому в базе данных есть два файла журнала.
  2. Когда я пытался удалить старый файл журнала, я получаю сообщение «Невозможно удалить основной файл журнала».

Все проведенные мною исследования показали, что нет способа изменить «первичный» файл журнала в онлайновой базе данных - вы должны отсоединить его и заново присоединить, используя только тот файл журнала, который вы хотите использовать в качестве основного. Вот как я представляю себе, что в идеальном мире это должно работать:

  1. Создайте второй файл журнала и добавьте его в базу данных
  2. Установите новый файл как «основной», чтобы в него записывались все новые данные журнала.
  3. DBCC SHRINKFILE, проверяя возможность переноса всех данных в другие файлы в той же группе
  4. Поскольку старый «первичный» файл теперь пуст, вы можете удалить его из базы данных.

Я сумасшедший? Есть ли способ сделать это, о котором я не знаю?

Я бы так сделал:

  1. Резервная база данных
  2. Создать новый файл журнала
  3. Запустите shrinkfile в старой базе данных
  4. Установите для исходного размера старого файла журнала значение 1 МБ, а для параметра Authogrowth - значение Нет.

У вас будет два файла журнала, но в одном будет всего 1 МБ.

Надеюсь, это поможет. Я надеюсь, что есть способ сделать это лучше

Как и ответ Лукаша

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

Однако теперь у вас есть 2 файла журнала. Вы можете ВОССТАНОВИТЬ ... С ПЕРЕМЕЩЕНИЕМ ... чтобы оба были на нужном вам диске. Если вы хотите удалить один, вам нужно отсоединить, удалить, прикрепить (что не рекомендуется ...).