DBAtlas · Atlas de operações de banco de dados

Mover um arquivo de dados/log para outro local

SQL ServerArmazenamento

Comando

-- 1) Tell SQL Server the new path (nothing is moved yet):
ALTER DATABASE [Customer]
MODIFY FILE (NAME = N'Customer_data',
             FILENAME = N'G:\Data\Customer_data.mdf');

-- 2) Take the database offline:
ALTER DATABASE [Customer] SET OFFLINE WITH ROLLBACK IMMEDIATE;

-- 3) Physically copy/move the file to the new path AT THE OPERATING SYSTEM level (G:\Data\...).

-- 4) Bring it online:
ALTER DATABASE [Customer] SET ONLINE;

O que faz

Altera a localização física de um arquivo do banco: o novo caminho é definido nos metadados, o arquivo é movido fisicamente com o banco offline e então o banco volta a ficar online.

Quando usar

Ao substituir um disco ou mover para outra unidade para ganhar espaço.

Atenção

OFFLINE + ROLLBACK IMMEDIATE derruba todas as conexões ativas; planeje o downtime. Não coloque o banco ONLINE antes de copiar de fato o arquivo para o novo caminho no SO, senão o banco fica SUSPECT. O tempdb exige outro método (MODIFY FILE + restart do serviço do SQL Server).

Abrir no DBAtlas →

Relacionados