Як перемістити файли бази даних SQL Server в інше місце

Уявімо, що нам потрібно перемістити файли даних і журналів 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')

pic

Крок 2: Далі потрібно відключити базу даних, використовуючи наступний код.

ALTER DATABASE test SET OFFLINE WITH ROLLBACK IMMEDIATE;

pic

Крок 3: Після відключення бази даних переміщаємо файли даних і журналів фізично до нових розташувань.

Примітка: Переконайтесь, що обліковий запис SQL-сервісу має повні права на нове розташування, щоб уникнути проблем.

pic

pic

Крок 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

pic

Крок 5: Повертаємо базу даних в ONLINE і перевіряємо розташування файлів даних/журналів.

ALTER DATABASE test SET ONLINE WITH ROLLBACK IMMEDIATE;

pic

Use master  

SELECT name, physical_name AS current_file_location  

FROM sys.master_files  

where Name in ('test','test_log');

pic

Це один з методів переміщення файлів бази даних в інше місце. Дякую за увагу!!!

Перекладено з: How to move SQL Server Database Files to a different location

Leave a Reply

Your email address will not be published. Required fields are marked *