Soluciones de Performance SQL Server

Capitulo I. Mover la tempdb.

Hoy vamos a revisar una acción a la que todo DBA SQL Server tendrá que realizar alguna vez. Esta es una operativa que solemos realizar por temas de performance, para que los datos temporales estén separados de los permanentes, o bien por falta de espacio en la unidad donde se encuentra esta BBDD, o bien por razones de protocolo donde exijan la separación de los distintos ficheros de las BBDDComo es bien sabido, en entornos de producción hay que ser doblemente precavidos.

Además se hace necesario reiniciar la instancia, parar las aplicaciones afectadas, y programar correctamente las ventanas con los usuarios afectados para el corte de servicio.

Vamos a cambiar de ubicación los ficheros de la BBDD temporal TempDB de acuerdo a los siguientes pasos.

  1. El primer es localizar la ubicación actual de los ficheros (Datos y Transaction log) que forman parte de la BBDD TempDB. Para ello utilizamos la siguiente sentencia:

 

Select name, physical_name AS CurrentLocation

From sys.master_files Where database_id = DB_ID(N’tempdb’)

GO

                  —————————————————–

C:\SQLSERVER\TempDB\tempdb.mdf

C:\SQLSERVER\TempDB\templog.ldf

 

  1. Se cambia la ruta de los ficheros a nivel lógico dentro de la BBDD. Suponiendo que se utilizan los nombres de ficheros por defecto:

USE master

GO

ALTER DATABASE tempdb

MODIFY FILE (name = tempdev, filename = ‘F:\SQLSERVER\TempDB\tempdb.mdf’)

GO

ALTER DATABASE tempdb

MODIFY FILE (name = templog, filename = ‘F:\SQLSERVER\TempDB\templog.ldf’)

GO

Estas sentencias devuelven el mensaje siguiente si se han ejecutado correctamente:

The file «tempdev» has been modified in the system catalog. The new path will be used the next time the database is started.

The file «templog» has been modified in the system catalog. The new path will be used the next time the database is started.

 

Esto significa que se ha cambiado la configuración de los ficheros y que hay que reiniciar la instancia para que los cambios entren en funcionamiento.

 

  1. Parar la instancia SQL.

La instancia es un servicio llamado «SQL Server (<nb_instancia>)«.

Si es el nombre por defecto, el servicio se llamará «SQL Server (MSSQLSERVER)«.

Para acceder a la ventana de servicios en Windows.

Menú Inicio –> Herramientas Administrativas –> Servicios.

Una vez encontrado el servicio, botón derecho encima de él y elegir «Stop«. Es posible que nos avise de que existen dependencias para parar el servicio. Si es así, hay que parar todos los servicios dependientes del principal. Normalmente se abre un pop-up, y hay que pulsar «SI«

 

  1. Mover los archivos a la nueva ubicación

move C:\SQLSERVER\TempDB\tempdb.mdf F:\SQLSERVER\TempDB\tempdb.mdf

move C:\SQLSERVER\TempDB\templog.ldf F:\SQLSERVER\TempDB\templog.ldf

 

También se pueden mover arrastrando con el ratón los ficheros.

 

  1. Iniciar la instancia SQL.

En el mismo servicio que antes se paró, elegir «start»

  1. Si los pasos han sido correctos la instancia iniciará sin errores, pero de todos modos se puede comprobar que los ficheros están configurados en la nueva ubicación, con la misma consulta del apartado 1.

 

Select name, physical_name AS CurrentLocation

From sys.master_files Where database_id = DB_ID(N’tempdb’)

GO

—————————————————–

F:\SQLSERVER\TempDB\tempdb.mdf

F:\SQLSERVER\TempDB\templog.ldf

Esperamos que os haya sido de interés, hasta la próxima…

Equipo DBA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *