Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: SQL Server 2025 (17.x) no Linux
Este artigo orienta você a habilitar e executar tempdb arquivos de banco de dados no sistema de arquivos tmpfs no SQL Server 2025 (17.x).
O SQL Server em Linux e contêineres tradicionalmente dão suporte a sistemas de arquivos XFS e ext4 para implantar arquivos e logs de banco de dados do SQL Server. No entanto, para bancos de dados temporários como tempdb, que não exigem que os dados sejam salvos de um tempo de atividade para outro, o uso de um sistema de arquivos tmpfs que utiliza memória (RAM) pode melhorar o desempenho geral para cargas de trabalho baseadas em tempdb.
Para obter mais informações sobre o sistema de arquivos tmpfs , consulte tmpfs – a documentação do Kernel do Linux.
| Configuração | Descrição |
|---|---|
| Configuração com suporte |
O tmpfs é ideal para armazenar dados não persistentes que não precisam ser salvos entre reinicializações. Atualmente, somente os arquivos de banco de dados têm suporte no sistema de arquivos tempdb para implantações em contêiner e não contêiner. |
| Configuração sem suporte | O sistema de arquivos tmpfs pode ser usado para bancos de dados de usuário em implantações de contêiner do SQL, mas apenas para fins de desenvolvimento. No entanto, essa configuração não tem suporte. Você pode fornecer comentários para esse cenário no GitHub. |
Implantações de máquina física ou virtual
Para habilitar o suporte tmpfs para o SQL Server no Linux em máquinas físicas ou virtuais, você precisa montar o sistema de arquivos tmpfs corretamente, o que requer privilégios de sudo. Depois que os pontos de montagem forem configurados, você poderá colocar os tempdb arquivos nessas montagens e iniciar o SQL Server com tempdb arquivos montados no sistema de arquivos tmpfs .
Habilitar tmpfs para tempdb
Crie o diretório
tempdb.Use o
mkdircomando para criar um diretório para otempdbbanco de dados. Verifique se ele pertence aomssqlusuário e ao grupo para permitir o acesso ao SQL Server:mkdir /var/opt/mssql/tempdb sudo chown mssql. /var/opt/mssql/tempdbMonte o sistema de arquivos tmpfs.
Use o seguinte comando para montar o sistema de arquivos tmpfs :
sudo mount -t tmpfs -o size=4G tmpfs /var/opt/mssql/tempdb/A
-topção especifica o tipo de sistema de arquivos, que nesse caso étmpfs.A
-oopção permite que você especifique as opções de montagem. Aqui,size=4Gdefine o tamanho máximo dos tmpfs como 4 GB, o que significa que ele pode usar até 4 GB de RAM.Esse comando monta tmpfs no diretório de destino usado pelo banco de dados do SQL Server
tempdb.Opcionalmente, adicione-o ao
fstabpara manter as montagens durante reinicializações.echo "tmpfs /var/opt/mssql/tempdb tmpfs defaults,size=4G 0 0" | sudo tee -a /etc/fstabAtualizar
tempdbo local do arquivo.Verifique se o SQL Server está em execução. Conecte-se à instância do SQL Server usando o SSMS (SQL Server Management Studio) e execute os comandos T-SQL a seguir.
Identifique todos os
tempdbarquivos usando o seguinte script T-SQL e execute oALTER DATABASEcomando para atualizar o local dotempdbarquivo:SELECT [name], physical_name FROM sys.master_files WHERE database_id = 2;Com base no número de arquivos que você vê para
tempdb, você cria os comandosALTER DATABASEda seguinte maneira: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 o SQL Server para aplicar as alterações.
sudo systemctl restart mssql-serverVerifique o local dos
tempdbarquivos.Depois que o SQL Server estiver em execução, verifique se os
tempdbarquivos de log e de dados agora estão localizados no novo diretório, conectando-se ao SQL Server usando uma ferramenta como o SSMS (SQL Server Management Studio).SELECT [name], physical_name FROM sys.master_files WHERE database_id = 2;
Agora você deve ver todos os arquivos de banco de dados tempdb no novo caminho de montagem, que é /var/opt/mssql/tempdb.
Redimensionamento frequente da montagem de tmpfs
Você também pode redimensionar a montagem de tmpfs caso ela tempdb esteja cheia. Para redimensionamento a quente, execute o seguinte comando para alterar o ponto de montagem tmpfs para 6 GB:
mount -o remount,size=6G /var/opt/mssql/tempdb
Opcionalmente, faça com que o novo tamanho persista entre reinicializações modificando a 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
Implantações de contêiner
Para cargas de trabalho de desenvolvedor, os tmpfs podem ser usados para bancos de dados de usuário. Os sistemas de arquivos tmpfs podem acelerar significativamente os casos de teste para bancos de dados de usuário implantados em contêineres. Como o tmpfs usa RAM em vez de armazenamento em disco, ele permite operações rápidas de leitura/gravação. Essa configuração é útil em ambientes de desenvolvimento e teste em que iterações rápidas são necessárias.
No entanto, não há suporte para tmpfs para bancos de dados de usuário. Você pode fornecer comentários relacionados a bancos de dados de usuário em tmpfs no GitHub.
Alojamento somente de tempdb bancos de dados no sistema de arquivos tmpfs
Se você estiver implantando um contêiner do SQL Server e quiser garantir que o contêiner use tmpfs para o tempdb, execute o seguinte 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
O comando --tmpfs define o tamanho como 4 GB e define a ID do usuário uid e a ID do grupo gid para 10001, garantindo que as permissões necessárias sejam definidas corretamente para que os arquivos tempdb sejam criados.
Depois que o contêiner estiver em execução, conecte-se ao SQL Server usando o SSMS e mova os tempdb arquivos para o novo local /var/opt/mssql/tempdb com os seguintes comandos T-SQL:
SELECT [name],
physical_name
FROM sys.master_files
WHERE database_id = 2;
Com base no número de arquivos que você vê, modifique o comando a seguir. Neste exemplo, há quatro tempdb arquivos e um arquivo de log. Use os seguintes comandos para mover esses arquivos para o novo local:
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
Depois de mover os arquivos, interrompa e reinicie o contêiner usando os comandos a seguir
docker stop sql1
docker start sql1
Implantar contêineres com todos os dados e arquivos de log em tmpfs
Aviso
Essa configuração não tem suporte, mas pode ser usada para fins de desenvolvimento. Você pode fornecer comentários para esse cenário no 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