2011-07-28 22 views
10

Tengo una instalación de SQL Server 2008 con casi 15 bases de datos ejecutándose en ella. Ahora, debido a la escasez de espacio, me gustaría mover la ruta de datos a otra unidad. ¿Cuál es la mejor práctica para esto? Explique en detalle si incluye cualquier comando SQL, ya que soy relativamente nuevo en la administración de SQL Server.Sql Server change data and log path of existing database

Nota - ya he cambiado la ruta en las propiedades del servidor SQL de SQL Management Studio 2008, a la nueva ruta. Pero también me gustaría que las bases de datos existentes residan en la nueva ruta.

Respuesta

12

En primer lugar, separar la base de datos:

USE master; 
GO 
-- Important! We need to drop the existing connections. 
ALTER DATABASE DBName SET SINGLE_USER WITH ROLLBACK IMMEDIATE; 
GO 
EXEC sp_detach_db @dbname = N'DBName'; 
GO 

El siguiente paso - copiar archivos .mdf y .ldf de estos archivos de base a la nueva ubicación

Y luego adjuntar la base de datos:

USE master; 
EXEC sp_attach_db @dbname = N'dbName', 
@filename1 = N'', --path do .mdf 
@filename2 = N''; --path to .ldf 
GO 

Si D on't desea adjuntar y separar todas las bases de datos uno por uno, puede generar secuencias de comandos SQL para adjuntar y separar todas las bases de datos que necesita (excepto el sistema, por supuesto), utilizando curosr que busca en la vista de administración dinámica sys.databases. Pero no te olvides de copiar los archivos de la base de datos.

Cuestiones relacionadas