Как переместить файлы базы данных Microsoft SQL Server на другой диск?

Перемещения файлов базы данных Microsoft SQL Server на новый жесткий диск с помощью инструкции ALTER DATABASE…MODIFY FILE.

Метод, который мы рассмотрим, подразумевает перемещение файлов базы данных в пределах одного экземпляра SQL Server, другими словами одного сервера, т.е. мы не будем перемещать БД на другой сервер, а будем изменять папку или диск на данном серевере.

В данных случаях самым простым и рекомендуемым способом является использование инструкции по изменению свойств базы данных ALTER DATABASE…MODIFY FILE, при этом, как Вы понимаете, переустанавливать Microsoft SQL Server не нужно.

Для того чтобы переместить файлы базы данных необходимо выполнить несколько простых шагов:

  • Первое что необходимо сделать, это отключить всех пользователей от SQL базы, иначе SQL не даст проводить с ней каких либо действий.
  • Далее мы переводим базу данных в режим «Вне сети». Это делается следующим образом (через запорос):

ALTER DATABASE TestBase SET OFFLINE;

  • После вышеперечисленных действий осуществляем физическое перемещение файлов БД в новое место (например D:\DataBase\).
  • Затем изменяем свойства базы данных, а именно путь к файлам БД. Инструкцию ALTER DATABASE необходимо выполнить для каждого файла, который Вы переместили.
  ALTER DATABASE TestBase 
      MODIFY FILE ( NAME = TestBase, 
                    FILENAME = 'D:\DataBase\TestBase.mdf');
  GO
  ALTER DATABASE TestBase
      MODIFY FILE ( NAME = TestBase_log, 
                    FILENAME = 'D:\DataBase\TestBase_log.ldf');
  GO
Скриншот 2
  • Где, параметр NAME и есть логическое имя файла БД, а FILENAME — это новое расположение файла.
  • Переводим базу данных обратно в нормальный режим.
  ALTER DATABASE TestBase SET ONLINE;
  • Проверяем новое расположение файлов:
  SELECT Name, 
	     Physical_name AS CurrentLocation, 
	     State_desc
  FROM sys.master_files
  WHERE database_id = DB_ID(N'TestBase')

Скриншот 3

У нас должно отобразиться новое физическое расположение файлов БД, т.е. мы успешно переместили файлы базы данных на новый диск.