Encontre dos maneras (lo que indica que no existan más formas) de realizar esa tarea, los describo de seguido.
Método 01: Comprimir y modificar archivo
Según leí, Microsoft desestima comprimir cualquier TempDB que este siendo usada constantemente. Esto es porque "you may receive multiple consistency errors" que podrían no solamente interrumpir actividades de usuarios cuando se da la operación de compresión. Sin embarga esa actividad normalmente es mínima o nula, en todo caso, aquí están los pasos:
- Corra el comando DBCC SHRINKFILE en cada archivo que usted quiera reducir el tamaño:
USE TempDB
GO
DBCC SHRINKFILE (N'logical_file_name', 5) -- reducir en 5 MB - Luego corra ALTER DATABASE, con el tamaño que usted quiere que sean. Esto causará que el nuevo tamaño se registre en master.sys.master_files, la cual es un catalogo de sistema que SQL Server usa para recrear una nueva TempDB en blanco cada vez que una server/instance es reiniciada.
USE MASTER
GO
ALTER DATABASE TEMPDB MODIFY FILE (NAME=' logical_file_name, SIZE=6MB)
SELECT DB_NAME(DATABASE_ID)DBNAME, [NAME] LOGICAL_FILENAME, [SIZE]*8/1024 SIZE_MB
FROM MASTER.SYS.MASTER_FILESWHERE DB_NAME(DATABASE_ID) = 'TEMPDB'
Método 02: Modificar archivos en modo de usuario restringido
Este método elimina el riesgo de errores de consistencia. Con la salvedad, que tendrás que desconectar a todos los usuarios antes de hacer algún cambio. Sin embargo, si lo planeas bien, se podrá hacer esos cambios en 10 minutos haciendo estos pasos:
1. Establezca una Coenxion Dedicada de Administrador (DAC) en el Management Studio para conectarse. Tan sencillo como anteponiendo "Admin:" en frente de la instacia de nombre. P.E., ADMIN:Rep-Server\Instancia1.
2. Corra:
- ALTER DATABASE with the REMOVE -- opción para marcar los .ndf como obsoletos.
- USE MASTER GO ALTER DATABASE TEMPDB REMOVE FILE logical_file_name
- C:\>NET STOP MSSQLSERVER
- o
- NET STOP "SQL Server (MSSQLSERVER)"
- o para la named instance:
- C:\> NET STOP "SQL Server ( instancename )"
- o
- NET STOP MSSQL$instancename
- C:\SQL\MSSQL.1\MSSQL\Binn>sqlservr.exe -c -f
- USE MASTER
- GO
- ALTER DATABASE TEMPDB MODIFY FILE (NAME='logical_file_name', SIZE=6MB)
- C:\NET START MSSQLSERVER
- o
- NET STOP "SQL Server (MSSQLSERVER)"
- ALTER DATABASE TEMPDB ADD FILE (NAME=logical_file_name, FILENAME='C:\bla\bla\Data\logical_file_name.ndf', SIZE=6MB)
- SELECT DB_NAME(DATABASE_ID)DBNAME, [NAME] LOGICAL_FILENAME, [SIZE]*8/1024 SIZE_MB FROM MASTER.SYS.MASTER_FILES WHERE DB_NAME(DATABASE_ID) = 'TEMPDB'
Espero les sirva.
No hay comentarios.:
Publicar un comentario