Перемістити файл журналу, не знімаючи базу даних офлайн


14

Мені потрібно перемістити файл журналу бази даних на новий розділ, не знімаючи базу даних в автономному режимі.

Нормальним способом цього було б від'єднання БД, переміщення файлу журналу та повторне приєднання db.

Чи можна це зробити, не знімаючи саму базу даних в автономному режимі, і якщо так, то як?


Відповіді:


16

Неможливо зробити це за допомогою онлайн-бази даних.

При переміщенні файлу бази даних ( ALTER DATABASE ... MODIFY FILE) ви навіть отримуєте таке повідомлення:

Файл "YourFile" змінено в системному каталозі. Новий шлях буде використаний при наступному запуску бази даних .


Нормальним способом цього було б від'єднання БД, переміщення файлу журналу та повторне приєднання db.

Це не «нормальний» чи прийнятий спосіб, як я це зробив би. Для переміщення файлів баз даних я виконую наступні дії:

  1. Запустіть команду ALTER DATABASE, щоб змінити розташування файлів
  2. Відніміть базу даних в автономному режимі
  3. Фізично перемістіть файли (файли) на нове місце, вказане на кроці №1
  4. Донесіть до бази даних в Інтернеті

Дивіться це посилання на TechNet: Переміщення баз даних користувачів


3

Згідно з посиланням на Бази даних користувачів TechNet Move з відповіді Томаса Стрінгера , якщо ви хочете перемістити файли, не зупиняючи весь екземпляр 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;

Спершу зверніть увагу на OFFLINE; після цього перемістіть файли та повідомте SQL Server про нове місце (місця).

Якщо вам потрібно зняти весь екземпляр SQL Server (див. Процедуру "Переміщення для запланованого обслуговування диска"), найкраще спочатку змінити місця розташування файлів, щоб при повторному запуску примірника не виникало проблем із пошуком файлів в нових місцях.


1

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.