Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: Prévia do SQL Server 2025 (17.x) - 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) Preview.
O SQL Server no Linux e contêineres tradicionalmente oferecem 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 período de 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 Linux.
Configuração | Descrição |
---|---|
Configuração suportada |
O TMPFS é ideal para armazenar dados não persistentes que não precisam ser salvos em reinicializações. Atualmente, apenas os tempdb ficheiros de banco de dados são suportados no sistema de ficheiros tmpfs para implementações baseadas em contêiner e não contêiner. |
Configuração não suportada | O sistema de arquivos tmpfs pode ser usado para bancos de dados de usuários em implantações de contêiner SQL, mas apenas para fins de desenvolvimento. No entanto, essa configuração não é suportada. Você pode fornecer comentários sobre esse cenário no GitHub. |
Implantações de máquinas físicas ou virtuais
Para habilitar o suporte a tmpfs para SQL Server no Linux em máquinas físicas ou virtuais, você precisa montar o sistema de arquivos tmpfs corretamente, o que requer acesso sudo. Depois que os pontos de montagem estiverem configurados, você poderá colocar os arquivos nessas montagens e iniciar o tempdb
SQL Server com tempdb
arquivos montados no sistema de arquivos tmpfs .
Ativar tmpfs para tempdb
Crie o
tempdb
diretório.Use o
mkdir
comando para criar um diretório para otempdb
banco de dados. Certifique-se de que isso pertença aomssql
usuário e grupo para permitir o acesso ao SQL Server.mkdir /var/opt/mssql/tempdb sudo chown mssql. /var/opt/mssql/tempdb
Monte 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
-t
opção especifica o tipo de sistema de arquivos, que neste caso étmpfs
.A
-o
opção permite especificar opções de montagem. Aqui,size=4G
define o tamanho máximo do tmpfs para 4 GB, o que significa que pode usar até 4 GB de RAM.Este comando monta tmpfs no diretório de destino usado pelo banco de dados do SQL Server
tempdb
.Opcionalmente, adicione-o ao
fstab
para manter os pontos de montagem durante as reinicializações.echo "tmpfs /var/opt/mssql/tempdb tmpfs defaults,size=4G 0 0" | sudo tee -a /etc/fstab
Atualize o
tempdb
local do arquivo.Verifique se o SQL Server está instalado e em execução. Conecte-se à sua instância do SQL Server usando o SQL Server Management Studio (SSMS) e executando os seguintes comandos T-SQL.
Identifique todos os
tempdb
arquivos usando o seguinte script T-SQL e execute oALTER DATABASE
comando para atualizar o local dotempdb
arquivo: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 osALTER DATABASE
comandos da 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-server
Verifique a
tempdb
localização dos ficheiros.Quando o SQL Server estiver instalado e em execução, verifique se os dados e os arquivos de log estão localizados no novo diretório, conectando-se ao SQL Server usando uma ferramenta como o
tempdb
SQL Server Management Studio (SSMS).
SELECT [name], physical_name
FROM sys.master_files
WHERE database_id = 2;
Agora você deve ver todos os tempdb
arquivos de banco de dados no novo caminho de montagem que é /var/opt/mssql/tempdb
.
Redimensionamento a quente do suporte tmpfs
Também pode redimensionar a quente o ponto de montagem tmpfs caso tempdb
esteja cheio. Para ajustar dinamicamente o tamanho, execute o seguinte comando para redimensionar a montagem tmpfs para 6 GB:
mount -o remount,size=6G /var/opt/mssql/tempdb
Opcionalmente, faça com que o novo tamanho persista nas 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, o tmpfs pode ser usado para bancos de dados de usuários. Os sistemas de arquivos TMPFS podem acelerar significativamente os casos de teste para bancos de dados de usuários 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 onde iterações rápidas são necessárias.
No entanto, tmpfs não é suportado para bancos de dados de utilizadores. Você pode fornecer comentários relacionados a bancos de dados de usuários no tmpfs no GitHub.
Hospedar somente 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
, poderá executar 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 --tmpfs
comando define o tamanho para 4 GB e o (ID do uid
usuário) e gid
(ID do grupo) para 10001
garantir que as permissões necessárias estejam definidas corretamente para os tempdb
arquivos a serem criados.
Quando 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 exibidos, 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, pare e reinicie o contêiner usando os seguintes comandos
docker stop sql1
docker start sql1
Implante contêineres com todos os dados e arquivos de log no tmpfs
Advertência
Esta configuração não é suportada, mas pode ser usada para fins de desenvolvimento. Você pode fornecer comentários sobre 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