You are using an outdated browser. For a faster, safer browsing experience, upgrade for free today.

Загрузка...

Как перенести файл базы данных SQL Server

В данной статье покажу 2 способа перемещения файла(ов):

  1. Через "Отсоединить/Присоединить" базу;
  2. Через Offline/Online базы.

 

Для данного эксперимента то же самое железо и программно обеспечение, которое описано в статье по созданию базы для 1с

Ну что ж, приступим. Для начала необходимо подключиться/залогиниться к MS SQL Server и данную информацию возьму из предыдущей статьи:

Запускаем Management Studio через меню Пуск:

Запуск management studio через Пуск

Также можно запустить командным способом: Win+R далее вводим команду SSMS далее OK:

Запуск management studio командным способом

Далее неоходимо будет выбрать пользователя для входа в систему, в данном случае был выбран пользователь из-под которого был установлен MS SQL Server, который является администратором в данном экземпляре SQL Server. Жмём "Соединить"(Connect):

Выбо пользователя для подключения

Если небходимо подключиться к удалённому серверу без доменной авторизации, то необходимо будет использовать "Проверка подлинности SQL Server"(SQL Server Authentication):

Выбор способа подключения

И далее в соответствующих полях необходимо ввести логин(Имя для входа) и пароль - вводим все данные и жмём Соединить:

sql авторизация

После успешного подключения в левой части экрана будет модальное окно "Обозреватель объектов"(Object Explorer):

Обозреватель объектов

Также будем использовать уже ранее созданную базу данных [db_for_1c], в которой уже на этапе создания была создана дополнительная файловая группа помимо PRIMARY и эта дополнительная группа является группой по умолчанию.


Для начала нужно определиться какой файл и куда будем перемещать. Для этого в "Обозреватель Объектов"(Object Explorer) в списке баз данных на нужной нам базе правой кнопкой мыши кликаем один раз и во всплывшем диалоговом окне левой кнопкой мыши кликаем один раз на "Свойства"(Properties):

Запуск свойств

Для эксперимента возьмём файл db_for_1c_file1 - это его логическое имя. Свойство необходимо, чтобы взять отуда логическое имя файла и сопоставить его с физическим файлом.

Выбираем файл в свойствах

Также можно сделать запрос к системной таблице sys.database_files , но обязательно в контексте нужной базы данных:


use db_for_1c
go
SELECT name , physical_name FROM sys.database_files

, запускаем его с помощью F5 или кнопкой "Выполнить" с зелёным треугольником, результат выполнения данного запроса ниже:

имена файлов через sql-запрос

Чуть-чуть о контексте исполнения запросов - базу можно выбрать двумя способами: 1-й графически (выбрать в левом верхнем углу, по умолчанию будет  master), 2-й способ - использовать конструкцию USE [database_name]. Если использовать 1-й способ, тогда USE использовать необязательно, но тоже можно - никаких конфликтов не будет.


Приступим к первому способу перемещения файла или файлов, для этого на нужной базе правой кнопкой кликаем по базе и вызываем диалоговое окно, также когда мы заходили в свойства, только сейчас нужно кликнуть по "Задачи"(Tasks) всплывает новое диалоговое окно - жмём на самый верхний пункт "Отсоединить"(Detach...). см. скрин ниже:

Отсоединение базы

Во всплывшем окне "Отсоединение базы данных"(Detach Database) устанавливаем птичку "удалить соединения"(Drop Connections) и жмём OK:

Отсоединение базы данных

База "исчезла" из "Обозреватель объектов"(Object Explorer):

База отсутствует

Далее с помощью "Мой компьютер" или других файловых менеджеров переносим файл в другой каталог(диск), например из D:\c\base\sql\ в D:\c\base\sql\test_path\ файл db_for_1c_file1.ndf

Следующим действим необходимо снова присоединить  базу: правой кнопкой мыши кликаем на "Базы данных"(Databases) затем кликаем левой кнопкой на "присоединить"(Attach...)

Присоединение шаг 1

В окне "Присоединение баз данных"(Attach Databases) под полем "Базы данных для присоединения:" (Databases to attach:) кликаем по кнопке "Добавить..."(Add...)

Присоедиение базы диал. окно

Необходимо найти файл с метаданными, как правило данный файл имеет расширение mdf, в нашем случае это файл db_for_1c.mdf, после того как мы его нашли жмём ОК:

ищем файл mdf

В поле "Сведения о базе данных"(Database details) в колонке Текущий путь к файлу(Current File Path) необходимо прописать корректные пути для файлов базы данных.

Выбираем правильные пути

После того, как пути будут прописаны - жмём ОК.

пути выбраны

База данных вновь появилась в списке:

База снова появилась

Выводы первого способа: данный способ можно использовать совершенно не зная T-SQL только кликая мышкой и делая copy-paste, но минус данного способа, если много файлов и пути собьются, то придётся их перепрописывать.


Во-втором способе переместим обратно  из  D:\c\base\sql\test_path\  в D:\c\base\sql\ файл db_for_1c_file1.ndf

Приступим.

При работающей базе запустим следующий SQL-запрос:

USE master;
GO
ALTER DATABASE db_for_1c
MODIFY FILE
(
    NAME = db_for_1c_file1,
    FILENAME = N'D:\c\base\sql\db_for_1c_file1.ndf'
);

, где в NAME - прописываем логическое имя файла, а FILENAME - физическое имя файла с указанием полного пути

и запускаем его с помощью F5 или кнопкой "Выполнить" с зелёным треугольником:

alter database для изменения пути файла

следующим шагом переводим базу в автономный режим(Take Offline):

Переводим в offline

установим птичку "Удалить все активные подключения" и жмём OK:

удалям подключения

База отключена, о чём свидетельствует статус "Вне сети"(Offline):

база offline

после этого перемещаем файл из  D:\c\base\sql\test_path\  в D:\c\base\sql\ 

и переводим базу в оперативный режим (Bring Online):

Переводим в Online

базу успешно снова ввели в работу (Online), о чём свидетельствует сообщение об успешно проделанной работе:

успешная работа

Проверяем базу путём открытия списка таблиц:

База успешно введена в работу

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

PS: Какой из способов использовать каждый должен решать сам, хотя нужно знать оба способа. Желаю успехов в работе!!!

Скачать файлы с sql кодом