microsoft-sql-server:t-sql-script-samples:how-to-move-sql-server-database-files-to-another-directory-or-to-a-different-drive
no way to compare when less than two revisions
Различия
Показаны различия между двумя версиями страницы.
— | microsoft-sql-server:t-sql-script-samples:how-to-move-sql-server-database-files-to-another-directory-or-to-a-different-drive [24.09.2020 09:15] (текущий) – создано Алексей Максимов | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ===== Как перенести файлы базы данных SQL Server в другой каталог или на другой диск ===== | ||
+ | {{: | ||
+ | |||
+ | Перед началом процедуры переноса файлов базы данных остановим cервисы и приложения, | ||
+ | |||
+ | |||
+ | Подключимся к экземпляру SQL Server, на котором расположена интересующая нас база данных и выясним текущее размещение файлов БД с помощью запроса: | ||
+ | |||
+ | <code tsql>USE master; | ||
+ | SELECT name, physical_name AS CurrentLocation FROM sys.master_files | ||
+ | WHERE database_id = DB_ID(' | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Выполним запрос на закрытие всех соединений к БД и перевод БД в одно-пользовательский режим: | ||
+ | |||
+ | <code tsql> | ||
+ | |||
+ | Переведём базу данных в **Offline**-режим: | ||
+ | |||
+ | <code tsql> | ||
+ | |||
+ | Выполним копирование файлов БД в новое место-расположение с помощью утилиты командной строки **robocopy**, | ||
+ | |||
+ | В нашем примере файлы БД копируются из каталога '' | ||
+ | Каталог назначения при этом будет создан в процессе копирования и на него будут скопированы все атрибуты исходного каталога. | ||
+ | |||
+ | < | ||
+ | /E /B /COPYALL /DCOPY:DAT /V /R:2 /W:10 ^ | ||
+ | / | ||
+ | |||
+ | |||
+ | Выполним замену путей к файлам на уровне SQL Server запросом вида (отдельный запрос по каждому файлу): | ||
+ | |||
+ | <code tsql> | ||
+ | | ||
+ | |||
+ | ALTER DATABASE [EffectOffice] MODIFY FILE ( Name = ' | ||
+ | | ||
+ | |||
+ | ALTER DATABASE [EffectOffice] MODIFY FILE ( Name = ' | ||
+ | | ||
+ | |||
+ | ALTER DATABASE [EffectOffice] MODIFY FILE ( Name = ' | ||
+ | | ||
+ | |||
+ | ALTER DATABASE [EffectOffice] MODIFY FILE ( Name = ' | ||
+ | | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Переведём базу данных в **Online**-режим и обратно включим многопользовательский режим работы с БД | ||
+ | |||
+ | <code tsql> | ||
+ | ALTER DATABASE [EffectOffice] SET MULTI_USER</ | ||
+ | |||
+ | Запустим сторонние службы и приложения, | ||
+ | |||
+ | После успешного запуска БД и проверок, | ||
+ | |||
+ | |||
+ | ---- | ||
+ | Дополнительные источники информации: | ||
+ | |||
+ | * [[https:// | ||
+ | |||
+ | ---- | ||
+ | Проверено на следующих конфигурациях: | ||
+ | ^ Версия SQL Server | ||
+ | | Microsoft SQL Server 2016 Standard Edition SP2 CU14 (13.0.5830.85) | | ||
+ | |||
+ | ---- | ||
+ | |||
+ | {{: | ||
+ | |||
+ | {{tag> | ||
+ | |||
+ | ~~DISCUSSION~~ |
microsoft-sql-server/t-sql-script-samples/how-to-move-sql-server-database-files-to-another-directory-or-to-a-different-drive.txt · Последнее изменение: 24.09.2020 09:15 — Алексей Максимов