Cambiar bases de datos Microsoft SQL de ubicación.

Vamos a cambiar varias bases de datos de MS SQL Server de la ubicación por defecto (unidad C)  a otra unidad con mas espacio.





Pasos previos:
  • Comprobar que la unidad destino tiene espacio suficiente para albergar el tamaño que vamos a traspasar.
  • Identificar las DB a traspasar, en nuestro caso sara_config y sara datos
  • Notificar de la perdida de servicio en esas DB o buscar una ventana de actuación.
  • Tener instalado SQL Server Management Studio
  • Permisos sobre las bases de datos

Abrimos SQL Server Management Studio y seleccionamos master como contexto.
USE master


Buscamos la ruta de los archivos mdf y ldf
SELECT name, filename
FROM sysdatabases
WHERE name = 'sara_config' OR name = 'sara_datos'

Antes de realizar ninguna acción es aconsejable realizar un backup.

BACKUP DATABASE sara_config
TO DISK = 'H:\Backup\sara_config.bak'
WITH FORMAT

uso FORMAT para crear una copia nueva, si existe un archivo con el mismo nombre lo sobreescribirá.
 

Separamos la base de datos de la instancia con el procedimiento almacenado
sp_detach_db sara_config

Si encuentras el siguiente mensaje:
Msg 3703, Level 16, State 2, Line 1No se puede separar la base de datos base de datos 'sara_config'; está en uso.



cuando intentas separar la base de datos, indica que alguien o algún proceso la tiene "pillada". Puedes ver las conexiones abiertas por usuario con esta sentencia:


SELECT db_name(dbid) as DatabaseName, count(dbid) as NoOfConnections,
loginame as LoginName
FROM sys.sysprocesses
WHERE dbid > 0
GROUP BY dbid, loginame


Y con este procedimiento almacenado
EXEC SP_WHO2

buscaremos la base de datos que nos interesa podemos eliminar los procesos que la bloquean, anotamos el SPID y lanzamos un KILL


Una vez liberada la base de datos y separada de la instancia realizamos el traspaso de los archivos mdf y ldf de la ubicación origen (C:\) a la destino (H:\)

Ejecutamos el procedimiento almacenado para adjuntar las bases de datos a la instancia e indicando donde residen los archivos.

sp_attach_db 'sara_config',
'H:\BBDD pruebas\sara_config.mdf',
'L:\BBDD pruebas\sara_config_log.ldf'


Realizamos una comprobación, cambiamos de contexto y lanzamos una query a cualquier tabla


USE sara_config
SELECT * FROM Usuario

No hay comentarios:

Publicar un comentario