Nota
O acceso a esta páxina require autorización. Pode tentar iniciar sesión ou modificar os directorios.
O acceso a esta páxina require autorización. Pode tentar modificar os directorios.
Se aplica a: SQL Server 2025 (17.x) en Linux
Este artículo le guía para habilitar y ejecutar tempdb archivos de base de datos en el sistema de archivos tmpfs en SQL Server 2025 (17.x).
SQL Server en Linux y contenedores admiten tradicionalmente sistemas de archivos XFS y ext4 para implementar registros y archivos de base de datos de SQL Server. Sin embargo, para las bases de datos temporales como tempdb, que no requieren que los datos se guarden de un período de tiempo de actividad a otro, el uso de un sistema de archivos tmpfs que utiliza memoria (RAM) puede mejorar el rendimiento general de tempdblas cargas de trabajo basadas en .
Para obtener más información sobre el sistema de archivos tmpfs , consulte tmpfs : la documentación del kernel de Linux.
| Configuración | Descripción |
|---|---|
| Configuración admitida |
tmpfs es ideal para almacenar datos no persistentes que no es necesario guardar entre reinicios. Actualmente, solo se admiten los archivos de base de datos en el tempdb sistema de archivos tmpfs tanto para implementaciones basadas en contenedores como en implementaciones no basadas en contenedores. |
| Configuración no admitida | El sistema de archivos tmpfs se puede usar para bases de datos de usuario en implementaciones de contenedores sql, pero solo con fines de desarrollo. Sin embargo, esta configuración no se admite. Puede proporcionar comentarios sobre este escenario en GitHub. |
Implementaciones de máquinas físicas o virtuales
Para habilitar la compatibilidad de tmpfs para SQL Server en Linux en máquinas físicas o virtuales, debe montar correctamente el sistema de archivos tmpfs, lo cual requiere permisos sudo. Una vez configurados los puntos de montaje, puede colocar los tempdb archivos en estos puntos e iniciar SQL Server con tempdb archivos montados en el sistema de archivos tmpfs.
Habilitar tmpfs para tempdb
Cree el directorio
tempdb.Use el
mkdircomando para crear un directorio para latempdbbase de datos. Asegúrese de que sea propiedad delmssqlusuario y grupo para permitir el acceso a SQL Server.mkdir /var/opt/mssql/tempdb sudo chown mssql. /var/opt/mssql/tempdbMonte el sistema de archivos tmpfs.
Use el siguiente comando para montar el sistema de archivos tmpfs :
sudo mount -t tmpfs -o size=4G tmpfs /var/opt/mssql/tempdb/La
-topción especifica el tipo de sistema de archivos, que en este caso estmpfs.La
-oopción permite especificar opciones de montaje. Aquí,size=4Gestablece el tamaño máximo de tmpfs en 4 GB, lo que significa que puede usar hasta 4 GB de RAM.Este comando monta tmpfs en el directorio de destino que usa la base de datos de SQL Server
tempdb.Opcionalmente, agréguelo a
fstabpara mantener los montajes durante los reinicios:echo "tmpfs /var/opt/mssql/tempdb tmpfs defaults,size=4G 0 0" | sudo tee -a /etc/fstabActualice
tempdbla ubicación del archivo.Asegúrese de que SQL Server está en funcionamiento. Conéctese a la instancia de SQL Server mediante SQL Server Management Studio (SSMS) y ejecute los siguientes comandos de T-SQL.
Identifique todos los
tempdbarchivos mediante el siguiente script de T-SQL y ejecute elALTER DATABASEcomando para actualizar la ubicación deltempdbarchivo:SELECT [name], physical_name FROM sys.master_files WHERE database_id = 2;En función del número de archivos que vea para
tempdb, cree losALTER DATABASEcomandos de la siguiente manera:ALTER DATABASE tempdb MODIFY FILE (NAME = tempdev, FILENAME = '/var/opt/mssql/tempdb/tempdb.mdf'); ALTER DATABASE tempdb MODIFY FILE (NAME = tempdev2, FILENAME = '/var/opt/mssql/tempdb/tempdb2.mdf'); ALTER DATABASE tempdb MODIFY FILE (NAME = tempdev3, FILENAME = '/var/opt/mssql/tempdb/tempdb3.mdf'); ALTER DATABASE tempdb MODIFY FILE (NAME = tempdev4, FILENAME = '/var/opt/mssql/tempdb/tempdb4.mdf'); ALTER DATABASE tempdb MODIFY FILE (NAME = templog, FILENAME = '/var/opt/mssql/tempdb/templog.ldf');Reinicie SQL Server para aplicar los cambios.
sudo systemctl restart mssql-serverCompruebe
tempdbla ubicación de los archivos.Una vez que SQL Server esté en funcionamiento, compruebe que los
tempdbarchivos de datos y registro se encuentran ahora en el nuevo directorio mediante la conexión a SQL Server mediante una herramienta como SQL Server Management Studio (SSMS).SELECT [name], physical_name FROM sys.master_files WHERE database_id = 2;
Ahora debería ver todos los archivos de base de datos en la nueva ruta de montaje, que es tempdb.
Cambio de tamaño frecuente del montaje tmpfs
También puede redimensionar en caliente el montaje tmpfs en caso de que tempdb esté lleno. Para redimensionar en caliente, ejecute el siguiente comando para redimensionar el montaje tmpfs a 6 GB.
mount -o remount,size=6G /var/opt/mssql/tempdb
Opcionalmente, haga que el nuevo tamaño persista en los reinicios modificando la fstab entrada:
sudo sed -i 's|tmpfs /var/opt/mssql/tempdb tmpfs defaults,size=4G 0 0|tmpfs /var/opt/mssql/tempdb tmpfs defaults,size=6G 0 0|' /etc/fstab
Despliegues de contenedores
En el caso de las cargas de trabajo de desarrollador, tmpfs se puede usar para las bases de datos de usuario. los sistemas de archivos tmpfs pueden acelerar significativamente los casos de prueba para las bases de datos de usuario implementadas en contenedores. Dado que tmpfs usa RAM en lugar de almacenamiento en disco, permite operaciones rápidas de lectura y escritura. Esta configuración es útil en entornos de desarrollo y pruebas en los que se necesitan iteraciones rápidas.
Sin embargo, no se admite tmpfs para bases de datos de usuario. Puede proporcionar comentarios relacionados con las bases de datos de usuario en tmpfs en GitHub.
Hospedar solo tempdb bases de datos en el sistema de archivos tmpfs
Si va a implementar un contenedor de SQL Server y desea asegurarse de que el contenedor usa tmpfs para tempdb, puede ejecutar el siguiente comando:
docker run \
-e ACCEPT_EULA=Y \
-e MSSQL_SA_PASSWORD = <password>\
--tmpfs /var/opt/mssql/tempdb:uid=10001,gid=10001,size=4G \
-p 5433:1433 \
--name sql1 \
-h sql1 \
--d mcr.microsoft.com/mssql/server:2025-latest
El comando --tmpfs establece el tamaño en 4 GB y el uid (ID de usuario) y gid (ID de grupo) a 10001 para garantizar que los permisos necesarios estén configurados correctamente para la creación de los archivos tempdb.
Una vez que el contenedor esté en funcionamiento, conéctese a SQL Server mediante SSMS y mueva los tempdb archivos a la nueva ubicación /var/opt/mssql/tempdb con los siguientes comandos de T-SQL:
SELECT [name],
physical_name
FROM sys.master_files
WHERE database_id = 2;
En función del número de archivos que vea, modifique el siguiente comando. En este ejemplo, hay cuatro tempdb archivos y un archivo de registro. Use los siguientes comandos para mover estos archivos a su nueva ubicación:
ALTER DATABASE tempdb
MODIFY FILE (NAME = tempdev, FILENAME = '/var/opt/mssql/tempdb/tempdb.mdf');
GO
ALTER DATABASE tempdb
MODIFY FILE (NAME = tempdev2, FILENAME = '/var/opt/mssql/tempdb/tempdb2.mdf');
GO
ALTER DATABASE tempdb
MODIFY FILE (NAME = tempdev3, FILENAME = '/var/opt/mssql/tempdb/tempdb3.mdf');
GO
ALTER DATABASE tempdb
MODIFY FILE (NAME = tempdev4, FILENAME = '/var/opt/mssql/tempdb/tempdb4.mdf');
GO
ALTER DATABASE tempdb
MODIFY FILE (NAME = templog, FILENAME = '/var/opt/mssql/tempdb/templog.ldf');
GO
Después de mover los archivos, detenga y reinicie el contenedor mediante los siguientes comandos.
docker stop sql1
docker start sql1
Desplegar contenedores con todos los archivos de datos y registro en tmpfs
Advertencia
Esta configuración no se admite, pero se puede usar con fines de desarrollo. Puede proporcionar comentarios sobre este escenario en GitHub.
docker run -e ACCEPT_EULA=Y \
-e MSSQL_SA_PASSWORD=<password> \
--tmpfs /var/opt/mssql/data:uid=10001,gid=10001,size=4G \
-p 5434:1433 \
--name sql2 \
-h sql2 \
-d mcr.microsoft.com/mssql/server:2025-latest