Уявімо, що нам потрібно перемістити файли даних і журналів SQL Server для конкретної бази даних до нового розташування, щоб вирішити проблеми зі зберіганням або покращити продуктивність. Ось кроки, які ми виконуємо, щоб перемістити файли даних і журналів тестової бази даних. Існують методи, такі як відключення та підключення через SSMS.
Крок 1: Спочатку перевіримо поточне розташування бази даних 'test'.
Use master
SELECT name, physical_name AS current_file_location
FROM sys.master_files
where Name in ('test','test_log')
Крок 2: Далі потрібно відключити базу даних, використовуючи наступний код.
ALTER DATABASE test SET OFFLINE WITH ROLLBACK IMMEDIATE;
Крок 3: Після відключення бази даних переміщаємо файли даних і журналів фізично до нових розташувань.
Примітка: Переконайтесь, що обліковий запис SQL-сервісу має повні права на нове розташування, щоб уникнути проблем.
Крок 4: Наступним кроком потрібно змінити розташування файлів у sys.master_files, щоб при запуску бази даних використовувався новий шлях для доступу до файлів даних і журналів.
--Move database files to another location
using master
go
ALTER DATABASE test MODIFY FILE ( NAME = test, FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\Log\test.mdf')
GO
use master
go
ALTER DATABASE test MODIFY FILE ( NAME = test_log, FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\Log\test_log.ldf')
GO
Крок 5: Повертаємо базу даних в ONLINE і перевіряємо розташування файлів даних/журналів.
ALTER DATABASE test SET ONLINE WITH ROLLBACK IMMEDIATE;
Use master
SELECT name, physical_name AS current_file_location
FROM sys.master_files
where Name in ('test','test_log');
Це один з методів переміщення файлів бази даних в інше місце. Дякую за увагу!!!
Перекладено з: How to move SQL Server Database Files to a different location