Me está costando un poco escribir la introducción de este post sobre cómo mover la tempdb a otro disco, osea que simplemente voy a dejar una idea general antes de meterme de lleno al asunto.
Por los general los clientes quieren ahorrar dinero y muchas veces hacen las instalaciones de las instancias SQL Server ellos mismo sin tener ni **** idea. Esto provoca que las instancias no sigan las best practices ni de casualidad.
Una las más importantes es que la tempdb esté en un disco sólo para ella por motivos que no os interesan en este post, porque lo que realmente queréis saber es…
Pasos para mover los archivos de la tempdb a otro disco
Ver donde están los archivos de la tempdb
Lo primero de todo tenemos que saber es cuándo archivos de tempdb existe, dónde están localizados y cómo se llaman.
Podéis hacer esto mirando en la ruta de instalación archivo y luego mirando las propiedades de la tempdb en el SSMS o podéis hacerlo usando la siguiente query y dejaros de tonterias:
Use master GO SELECT name AS [LogicalName] ,physical_name AS [Location] ,state_desc AS [Status] FROM sys.master_files WHERE database_id = DB_ID(N'tempdb'); GO
Una vez tengamos esta información, podemos pasar a cambiar la localización de los archivos de la tempdb
Cambiar la localización de la tempdb
Siendo sincero, lo que haremos no es realmente mover los archivos de la tempdb, si no que cambiaremos la localización de los archivos y luego reiniciaremos la instancia.
Esto no hace que los archivos se muevan, si no que por el simple funcionamiento de la tempdb, cada vez que se reinician los servicios los archivos se crean de nuevo. Una vez que los nuevos archivos se creen, podemos borrar los viejos y técnicamente habremos movido la tempdb.
Usando la siguiente query, y modificando el nombre del archivo y la nueva ruta podréis especificar la nueva ruta de los archivos de la tempdb.
Importante: Tendréis que modificar esta query de acuerdo al nombre y número de los archivos de vuestra tempdb.
USE master; GO ALTER DATABASE tempdb MODIFY FILE (NAME = tempdev, FILENAME = 'C:\Program Files\SQLServer\MSSQL15.MSSQLSERVER\MSSQL\DATA\Temporal\tempdb.mdf'); GO ALTER DATABASE tempdb MODIFY FILE (NAME = templog, FILENAME = 'C:\Program Files\SQLServer\MSSQL15.MSSQLSERVER\MSSQL\DATA\Temporal\templog.ldf'); GO ALTER DATABASE tempdb MODIFY FILE (NAME = temp2, FILENAME = 'C:\Program Files\SQLServer\MSSQL15.MSSQLSERVER\MSSQL\DATA\Temporal\tempdb_mssql_2.mdf'); GO ALTER DATABASE tempdb MODIFY FILE (NAME = temp3, FILENAME = 'C:\Program Files\SQLServer\MSSQL15.MSSQLSERVER\MSSQL\DATA\Temporal\tempdb_mssql_3.mdf'); GO
Reiniciar la instancia SQL Server
Bueno, aquí no hay mucho que decir.
Hazlo como tú quieras, personalmente lo hago usando el configurator manager y reiniciando el servicio SQL Server.
Comprobar la nueva localización y eliminar los archivos viejos
Vuelve a ejecutar la primera query y comprueba que la localización ha cambiado.
Ahora puedes borrar los archivos viejos y dar el trabajo como completado.