Oharra
Baimena behar duzu orria atzitzeko. Direktorioetan saioa has dezakezu edo haiek alda ditzakezu.
Baimena behar duzu orria atzitzeko. Direktorioak alda ditzakezu.
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.
| Configuration | Description |
|---|---|
| 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 soportada | 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.
Habilite 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.sudo mkdir /var/opt/mssql/tempdb sudo chown mssql. /var/opt/mssql/tempdbMonta 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éctate a tu instancia de SQL Server usando SQL Server Management Studio (SSMS) y ejecuta los siguientes comandos Transact-SQL (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-serverVerifica
tempdbla ubicación de los archivos.Una vez que SQL Server esté funcionando, comprueba que los
tempdbdatos y archivos de registro estén ahora en el nuevo directorio conectándote a SQL Server usando una herramienta como SSMS.SELECT [name], physical_name FROM sys.master_files WHERE database_id = 2;
Ahora debería ver todos los tempdb archivos de la base de datos en la nueva ruta de montaje, es decir, /var/opt/mssql/tempdb.
Cambio de tamaño frecuente del montaje tmpfs
También puede cambiar el tamaño sobre la marcha del montaje tmpfs en caso de que el tempdb esté lleno. Para redimensionar sobre la marcha, ejecute el siguiente comando para redimensionar el montaje tmpfs a 6 GB.
sudo 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.
Aloja solo la tempdb base 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
La opción --tmpfs establece el tamaño en 4 GB y uid (ID de usuario) y gid (ID de grupo) en 10001 para garantizar que los permisos necesarios se configuren correctamente para que se creen los archivos tempdb.
Una vez que el contenedor esté en funcionamiento, conéctate a la instancia de SQL Server mediante SSMS y actualiza las ubicaciones de los archivos tempdb a /var/opt/mssql/tempdb con los siguientes comandos 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 de datos y un archivo de registro. Utiliza los siguientes comandos para actualizar las ubicaciones de los archivos:
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 actualizar las ubicaciones de los archivos, detén y reinicia el contenedor usando 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