Загрузка...
В данной статье покажу 2 способа перемещения файла(ов):
Для данного эксперимента то же самое железо и программно обеспечение, которое описано в статье по созданию базы для 1с
Ну что ж, приступим. Для начала необходимо подключиться/залогиниться к MS SQL Server и данную информацию возьму из предыдущей статьи:
Запускаем Management Studio через меню Пуск:
Также можно запустить командным способом: Win+R далее вводим команду SSMS далее OK:
Далее неоходимо будет выбрать пользователя для входа в систему, в данном случае был выбран пользователь из-под которого был установлен MS SQL Server, который является администратором в данном экземпляре SQL Server. Жмём "Соединить"(Connect):
Если небходимо подключиться к удалённому серверу без доменной авторизации, то необходимо будет использовать "Проверка подлинности SQL Server"(SQL Server Authentication):
И далее в соответствующих полях необходимо ввести логин(Имя для входа) и пароль - вводим все данные и жмём Соединить:
После успешного подключения в левой части экрана будет модальное окно "Обозреватель объектов"(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 или кнопкой "Выполнить" с зелёным треугольником, результат выполнения данного запроса ниже:
Чуть-чуть о контексте исполнения запросов - базу можно выбрать двумя способами: 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...)
В окне "Присоединение баз данных"(Attach Databases) под полем "Базы данных для присоединения:" (Databases to attach:) кликаем по кнопке "Добавить..."(Add...)
Необходимо найти файл с метаданными, как правило данный файл имеет расширение mdf, в нашем случае это файл db_for_1c.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 или кнопкой "Выполнить" с зелёным треугольником:
следующим шагом переводим базу в автономный режим(Take Offline):
установим птичку "Удалить все активные подключения" и жмём OK:
База отключена, о чём свидетельствует статус "Вне сети"(Offline):
после этого перемещаем файл из D:\c\base\sql\test_path\ в D:\c\base\sql\
и переводим базу в оперативный режим (Bring Online):
базу успешно снова ввели в работу (Online), о чём свидетельствует сообщение об успешно проделанной работе:
Проверяем базу путём открытия списка таблиц:
Выводы по второму способу: на мой взгляд второй спобо более элегатный, но при этом он не нравится тем, кто не хочет запускать sql код.
PS: Какой из способов использовать каждый должен решать сам, хотя нужно знать оба способа. Желаю успехов в работе!!!
Скачать файлы с sql кодом