Cambiar ubicación de bases de datos SQL Server del servidor

Cada base de datos de SQL Server tiene al menos dos archivos:

  • El archivo de datos que tiene extensión mdf.
  • El archivo de transacciones que tiene extensión ldf.

Estos dos archivos se encuentran en "C:Archivos de ProgamaMicrosoft SQL ServerMSSQLData". Si por algún motivo necesitamos cambiar la ubicación de estos archivos a otra carpeta o a otro disco tenemos que realizar un proceso sencillo pero laborioso. Vamos a ver paso a paso como realizar este cambio de ubicación de los ficheros de las bases de datos.

Para mover la ubicación de los archivos de nuestras bases de datos vamos a suponer que hemos realizado una instalación por defecto del SQL Server, es decir, las bases de datos se encuentran en la carpeta "C:Archivos de ProgamaMicrosoft SQL ServerMSSQLData", y queremos llevarlas a un disco distinto, por ejemplo a "D:"

El primer paso es realizar una copia de seguridad de TODOS los datos y TODAS las bases de datos del servidor (master incluida por supuesto) puesto que estos cambios entrañan peligro para el propio servidor.

Ahora veamos como mover todas las bases de datos una por una

Mover Bases de Datos de Usuarios

A continuación vamos a mover las bases de datos de usuarios. Si tenemos una base de datos llamada "Pruebas" en el analizador de consultas ejecutamos el siguiente script para separar la base de datos del servidor

use master
go
sp_detach_db 'Pruebas'
go

Lo siguiente es mover los archivos de esta base de datos (pruebas.mdf y pruebas.ldf) a la carpeta destino ("D:")Y por último volvemos a adjuntar la base de datos en su ubicación actual.

use master
go
sp_attach_db 'Pruebas','D:pruebas.mdf','D:pruebas.ldf'
go

y para ver que todo ha ido bien.

sp_helpdb 'Pruebas'

Ahora hay que repetir este procedimiento para todas las bases de datos de usuario que tengamos

Mover msdb

Vamos a empezar moviendo la base de datos "msdb"

  1. Abrir el Administrador corporativo
  2. Pulsamos con el botón derecho sobre el nombre del servidor y sacamos el menú de propiedades
  3. En la solapa general escogemos parámetros de inicio y escribimos -T3608 y lo agregamos. Aceptamos.
  4. Detenemos y reiniciamos el SQL Server
  5. Detener si está encendido el servicio SQL Server Agent
  6. Separamos la base de datos "msdb"
  7. use master
    go
    sp_detach_db 'msdb'
    go
  8. Movemos "msdbdata.mdf" y "msdblog.ldf" a su destino (igual que antes D:)
  9. Quitamos el parámetro de inicio que pusimos antes (el -T3608)
  10. Detenemos y reiniciamos el SQL Server
  11. Volvemos a adjuntar la base de datos "msdb"
  12. use master
    go 
    sp_attach_db 'msdb','D:msdbdata.mdf','D:msdblog.ldf' 
    go

Y para ver que todo va bien como antes podemos usar el procedimiento almacenado sp_helpdb para ver nuestra base de datos.

Mover model

Para mover "model" los pasos son similares a los anteriores.

  1. Añadimos como antes el parámetro -T3608 en los parámetros de inicio de las propiedades del servidor.
  2. Detenemos y reiniciamos el SQL Server
  3. Separamos la base de datos
  4. use master
    go
    sp_detach_db 'model' 
    go
  5. Movemos los archivos "model.mdf" y "modellog.ldf" a su nueva ubicación ("D:")
  6. Adjuntamos la base de datos "model"
  7. use master
    go
    sp_attach_db 'model','D:model.mdf','D:modellog.ldf'
    go
  8. Quitamos como antes el parámetro -T3608
  9. Detenemos y reiniciamos el servidor

Y listo. Comprobemos que todo va bien, y sigamos adelante.

Mover tempdb

Este caso es más sencillo porque podemos mover esta base de datos utilizando el comando ALTER DATABASE. Utilizaremos el siguiente Script

use master
go
Alter database tempdb modify file (name = tempdev, filename = 'D:	empdb.mdf')
go
Alter database tempdb modify file (name = templog, filename = 'D:	emplog.ldf')
go

Para ver como funciona exactamente este comando podéis ver lo BOL Un último paso es detener y reiniciar el SQL Server y borrar los archivos temporales viejos.

Mover master

Bueno, el paso final es mover "master"

  1. Abrimos el Administrador Corporativo
  2. Pulsamos con el botón derecho en el servidor y sacamos la ventana de propiedades
  3. Pinchamos en parámetros de inicio y vemos que hay las siguientes entradas
  4. -dC:Archivos de ProgamaMicrosoft SQL ServerMSSQLDatamaster.mdf
    -eC:Archivos de ProgamaMicrosoft SQL ServerMSSQLlogErrorLog
    -lC:Archivos de ProgamaMicrosoft SQL ServerMSSQLDatamastlog.ldf
    
  5. Y podemos cambiar los relacionados con master por
  6. -dD:master.mdf
    -lD:mastlog.ldf
    
  7. También podemos cambiar de la misma manera la ubicación de los registros de error
  8. Detenemos el SQL Server
  9. Copiamos "master.mdf" y "masterlog.ldf" a la nueva localización
  10. Reiniciamos el SQL Server

Con esto debería estar todo listo y nuestro servidor debería funcionar perfectamente pero ahora con todos los ficheros de bases de datos en "D:" como queríamos.

Sólo recordar una cosa más. Estos cambios son una operación de alto riesgo y tener copias de seguridad de TODO antes de empezar es imprescindible.

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
SIGUIENTE ARTÍCULO