Mover una base de datos SQL Server a otro disco (MDF/LDF) sin errores

Mover una base de datos en SQL Server a otro disco es una tarea habitual cuando nos quedamos sin espacio, queremos separar datos y logs o mejorar el rendimiento del almacenamiento.

En esta guía explico cómo mover correctamente los archivos MDF y LDF paso a paso utilizando SQL Server Management Studio, evitando errores comunes y sin perder la integridad de la base de datos.

Hoy en día, especialmente en entornos virtualizados, es una operación relativamente sencilla si se hace correctamente.

En este caso vamos a hacerlo desde la GUI, es decir, utilizando SQL Server Management Studio, que es la forma más sencilla para la mayoría de administradores.

Lo primero que debemos hacer es identificar los nombres lógicos de los archivos asociados a la base de datos. Para ello, accedemos a las propiedades de la base de datos en SQL Server y revisamos la pestaña Archivos, donde veremos los dos ficheros principales: el archivo de datos (.mdf) y el archivo de log (.ldf).

Identificar los archivos MDF y LDF antes de mover la base de datos

Antes de mover físicamente los archivos, debemos conocer los nombres lógicos que SQL Server tiene registrados internamente.

Para ello:

  1. Abrimos SQL Server Management Studio (SSMS).

  2. Botón derecho sobre la base de datos.

  3. Entramos en Propiedades.

  4. Seleccionamos la pestaña Archivos.

Aquí veremos:

  • Nombre lógico del archivo de datos (.mdf)

  • Nombre lógico del archivo de log (.ldf)

  • Ruta física actual en disco

Estos nombres serán necesarios para modificar la ubicación correctamente.

Una vez tenemos esta referencia, vamos a poner offline y a separar la bbdd.

Poner la base de datos en modo OFFLINE

Antes de mover los archivos, debemos desconectar la base de datos:

ALTER DATABASE MiBaseDeDatos SET OFFLINE WITH ROLLBACK IMMEDIATE;

Importante:
No confundir OFFLINE con “Detach”.
En este procedimiento no estamos desmontando la base de datos, solo indicándole a SQL Server que deje de usar los archivos temporalmente.

Importante: No confundir separar con la opción Poner sin conexión. Si ponemos sin conexión la base de datos, no podremos modificar su ubicación.

Eliminamos las conexiones que puede tener activas.

Con esto nos desaparecerá de la aplicación de SQL Server

Ahora vamos a ir al cmd  y vamos a mover los ficheros mdf y ldf

Modificar la ruta de los archivos MDF y LDF en SQL Server

Una vez identificados los nombres lógicos, debemos indicarle a SQL Server la nueva ubicación.

md "F:\BBDD_PRUEBA"
Move "E:\SQL\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\prueba.mdf" "F:\BBDD_PRUEBA\prueba.mdf"
Move "E:\SQL\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\prueba_log.ldf" "F:\BBDD_PRUEBA\prueba_log.ldf"

O podemos hacerlo por sql:

ALTER DATABASE MiBaseDeDatos
MODIFY FILE ( NAME = MiBaseDeDatos, FILENAME = 'E:\SQLData\MiBaseDeDatos.mdf');

 

Una vez, que hemos movido los ficheros los vamos a adjuntar.

Para ello, nos vamos SQL Server mangement studio de nuevo y le damos botón derecho adjuntar.

Añadimos nuestra bbdd.

Y vemos que ya tenemos nuestra bbdd movida de ubicación.

Por último, en las versiones nuevas de SQL Server, si no tenemos permiso en el directorio te deja la bbdd como read-only, debemos asignarnos los permisos correspondientes en el direcotrio y cambiar el estado para ello vamos a las propiedades de la bbdd y el estado solo lectura le ponemos a false.

Nos pide confirmación.

Con esto ya tenemos nuestra bbdd de con una nueva ubicación y totalmente funcional.

 

Espero que os sirva

 

script limpieza de directorio activo

Hay muchas aplicaciones que limpian el directorio activo que da gusto, como puede ser Solarwind, pero es de pago y no siempre podemos permitirlo. He encontrado, en la página de system-admin.es un par de script que yo he fusionado en uno, que nos recoge los usuarios y maquinas que hace 180 días que no tiene actividad. Continuar leyendo «script limpieza de directorio activo»

mapear unidades por GPO excluyendo un grupo

En el proyecto en el que estoy, hay muchas GPO que no sabemos si se aplican o si valen para algo así que he decidido meterle mano, y como las tenemos hay siempre, no recordaba lo interesantes, útiles que son y la cantidad de trabajo que quitan tanto a la gente del CAU como a los propios administradores. Continuar leyendo «mapear unidades por GPO excluyendo un grupo»

Bloquear o permitir correos en office 365

Ya sabemos que office 365 está a la orden del día con respecto a correo electrónico empresarial. Su filtro antispam es bastante decente, pero en ocasiones es necesario ser más restrictivo, para ello es necesario bloquear el correo electrónico no deseado de los remitentes. Continuar leyendo «Bloquear o permitir correos en office 365»

Recuperar espacio en disco usado por shadows copies

No se si alguna vez os ha pasado que tenemos espacio ocupado en disco de un servidor de Windows, pero no teníamos ese espacio realmente ocupado.

En mi caso en particular, era un servidor de Exchange en cluster, donde los discos de las bbdd no tenían el mismo espacio.

La razón, las shadows copies que estaban realizando el software de backup, que no era capaz de eliminar una vez acabado el área. Esto fue porque el software de backup estaba empezando a fallar y no terminaba bien los backups. Continuar leyendo «Recuperar espacio en disco usado por shadows copies»

Agregar usuarios de dominio al grupo de administradores locales mediante la directiva de grupo (GPO)

En esta ocasión, os voy a explicar una gpo que para mí es fundamental, y que suelo crear en todas las instalaciones que realizo. Vamos a agregar usuarios de AD al grupo de administradores locales en las máquinas que estén dentro de una ou específica del dominio. Ya veréis como es muy fácil.  Continuar leyendo «Agregar usuarios de dominio al grupo de administradores locales mediante la directiva de grupo (GPO)»

Crear una cuenta dedicada para unir máquinas a un dominio

Como bien indica el título en esta publicación, vamos a realizar el proceso de creación de una cuenta dedicada para unir máquinas a un dominio de Active Directory (AD). Esto es muy útil, para cosas como las secuencias de tareas de System Center Configuration Manager, o usar las plantillas de System Center Virtual Machine Manager. Se suele utilizar también en organizaciones grandes, que tiene operadores de máquina que ayudan a los administradores de sistema. Continuar leyendo «Crear una cuenta dedicada para unir máquinas a un dominio»

Error «The trust relationship between this workstation and the primary domain failed»

Muy buenas, hoy os voy a poner como solucionar este error “The trust relationship between this workstation and the primary domain failed”.

Básicamente lo que nos dice es que no existe una relación de confianza entre nuestro dominio y nuestra estación de trabajo, si estamos en Windows server 2008. O este otro “The security database on the server does not have a computer account for this workstation trust relationship”, que nos viene a decir que la base de datos de seguridad del servidor no tiene una cuenta para esta relación de confianza de la estación de trabajo. Continuar leyendo «Error «The trust relationship between this workstation and the primary domain failed»»

Desactivar el control de cuentas de usuario (UAC) en windows server 2012 r2

Puede ser un poco incomodo el UAC, cuando estamos administrando servidores Windows. Por lo que yo en muchas ocasiones lo desactivo. Para hacerlo hay varias maneras. Pero mi método preferido es por registro de Windows, que es el que voy a explicar. Continuar leyendo «Desactivar el control de cuentas de usuario (UAC) en windows server 2012 r2»