You are on page 1of 21

Mover la ubicación física de las bases de datos

existentes
Desde el ​administrador de SQL Server ​(SQL Server Management Studio), ​botón derecho
sobre la base de datos que se quiere mover​, hacer clic en ​Propiedades​.
Hacer clic en la opción de ​archivos​.

Se observa que el ​camino donde están los archivos​ es el ​común de la instancia ​(unidad E
en este caso). Hacer clic en ​Aceptar​ para cerrar las propiedades.
Llegados a este punto, tenemos dos opciones:
● Desmontar la base de datos​, mover los archivos y cargarla de nuevo con las nuevas
ubicaciones. La afectación sólo sería en esta base de datos y ​no implica la parada del
servicio de SQL​. No se permite cambiar las bases de datos de sistema (master, model,
msdb, tempdb).
● Cambiar todas las ubicaciones​ de las bases de datos, parar el servidor SQL Server,
mover los archivos y volver a arrancar. Implica la ​parada del servicio de SQL​. Permite
cambiar todas las bases de datos.
Personalmente, opto por esta última al encontrarme en fase de mantenimiento, ya que se
pretende ​cambiar las ubicaciones de todas las bases de datos​ y es una buena manera de
hacerlo de golpe.
Desde el ​administrador de SQL Server​, iniciar una ​nueva consulta​ haciendo clic en el botón
Nueva consulta de la barra de tareas​.
Aunque en los comandos se haga la selección de la base de datos, también prefiero
seleccionar en la ventana de consulta la base de datos correcta. En la ​barra de tareas​, en el
desplegable donde está el nombre de la base de datos​, seleccionar la base de datos
MASTER​ que es donde se ejecutarán las diferentes instrucciones.
Comprobar la ubicación física de las diferentes bases de datos por comandos. Escribir las
siguientes instrucciones en la ventana de consulta, cambiando el nombre de la base de datos
AX_TEST por el que corresponda en cada caso:

USE master
GO

SELECT name, physical_name FROM sys.master_files


WHERE database_id=DB_ID(N'AX_TEST');
GO

Hacer clic en el ​botón Ejecutar ​o pulsar la t​ ecla F5​. En la parte inferior del código se visualiza
su resultado. Para la base de datos que se acaba de crear (AX_TEST) las ubicaciones ya son
las correctas.
El resultado es el mismo que hemos visualizado en sus propiedades. Podemos hacer lo mismo
para el resto de bases de datos de sistema y usuario:

USE master
GO

SELECT name, physical_name from sys.master_files


WHERE database_id=DB_ID(N'master');
GO

SELECT name, physical_name from sys.master_files


WHERE database_id=DB_ID(N'model');
GO

SELECT name, physical_name from sys.master_files


WHERE database_id=DB_ID(N'msdb');
GO
SELECT name, physical_name from sys.master_files
WHERE database_id=DB_ID(N'tempdb');
GO

Para no borrar el listado con los nombres de los archivos y su ubicación, que necesitaremos y
al que volveremos después para comprobar, abrir una ​nueva consulta (​botón Nueva consulta)
y ejecutar ​el comando de modificación de la ubicación física del archivo​ dentro de la base
de datos:
MODIFY FILE (NAME = (Corresponde a la primera columna del listado anterior),
FILENAME='(nueva ubicación del archivo)’);
De esta manera, para nuestro ejemplo, los ​comandos para las bases de datos model, msdb,
tempdb​ y la del usuario servicedesk (no la incluye en el script al ser un ejemplo), ​exceptuando
la MASTER que es diferente​, serían:
USE master;
GO

ALTER DATABASE model MODIFY FILE (NAME = modeldev, FILENAME = 'K:\SQL


Server Data\model.mdf');
GO

ALTER DATABASE model MODIFY FILE (NAME = modellog, FILENAME = 'L:\SQL


Server Logs\modellog.ldf');
GO

ALTER DATABASE msdb MODIFY FILE (NAME = MSDBData, FILENAME = 'K:\SQL


Server Data\MSDBData.mdf');
GO

ALTER DATABASE msdb MODIFY FILE (NAME = MSDBLog, FILENAME = 'L:\SQL


Server Logs\MSDBLog.ldf');
GO

ALTER DATABASE tempdb MODIFY FILE (NAME = tempdev, FILENAME = 'K:\SQL


Server Data\tempdb.mdf');
GO

ALTER DATABASE tempdb MODIFY FILE (NAME = templog, FILENAME = 'L:\SQL


Server Logs\templog.ldf');
GO
Iniciar el configurador de SQL Server. Hacer clic en el botón ​INICIO de Windows​ y en el
listado de aplicaciones​, hacer clic en ​Administrador de configuración de SQL Server​.

En el ​lado izquierdo, si no está ya seleccionado, hacer clic en Servicios de SQL Server.


En el lado derecho, botón derecho sobre SQL Server (Nombre de la instancia) y hacer
clic en la opción Parar para detener el servicio​. Y sí, se puede hacer desde muchos lugares
diferentes más (administrador de servicios, administrador de SQL Server), se ha hecho desde
aquí porque se tienen que cambiar unos parámetros en esta ventana.
Con el servicio ya detenido, ​botón derecho sobre SQL Server​ (Nombre de la instancia) y
hacer clic en ​Propiedades​.
Hacer clic en la pestaña ​Parámetros de inicio​.
De la lista de parámetros, nos interesa el ​-d​ y el ​-l​, correspondientes a la ​ubicación del
archivo de datos ​y ​transacciones​ de la base de datos M ​ aster​.
Seleccionar el parámetro -d​… Su valor se carga en el ​cuadro de texto de la parte superior.
Modificar la ruta del archivo ​y hacer clic en el botón ​Actualizar​.

Repetir el proceso para el parámetro -l​… Cuando esté todo correcto, hacer clic en el botón
Aceptar​. Se advierte que ​para que los cambios tengan validez se tiene que reiniciar el
servicio​. No es problema porque ya está el servicio detenido.

Antes de arrancar se deben mover los archivos manualmente​ en las nuevas ubicaciones.
Recordar que el tipo de archivo SQL Server Database Primary Data (marcados en ​rojo​) va a la
unidad K y el archivo SQL Server Database Transaction Log (marcados en ​azul​) a la unidad L.
Volviendo al ​administrador de configuración SQL Server​, ​botón derecho sobre SQL
Server​ (nombre instancia) y hacer clic en ​Iniciar​. Si todo está correcto se debe arrancar el
servicio de SQL Server y ya se puede cerrar esta aplicación.
Volver al ​Administrador SQL Server ​(SQL Management Studio), ​actualizar la conexión con
el servidor, botón derecho sobre el nombre del servidor ​y hacer clic en ​Actualizar​.

Abrir la ​pestaña con la consulta de las ubicaciones de los archivos de la base de datos
para volverla a ejecutar (Tecla F5 o hacer clic en Ejecutar). ​Las ubicaciones de los archivos
de las bases de datos ya están en las nuevas​. Operación completada con éxito.

You might also like