Partilhar via


Habilitar e executar tempdb no tmpfs para SQL Server 2025 Preview no Linux

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

  1. Crie o tempdb diretório.

    Use o mkdir comando para criar um diretório para o tempdb banco de dados. Certifique-se de que isso pertença ao mssql usuário e grupo para permitir o acesso ao SQL Server.

    mkdir /var/opt/mssql/tempdb
    sudo chown mssql. /var/opt/mssql/tempdb
    
  2. 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
    
  3. 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 o ALTER DATABASE comando para atualizar o local do tempdb 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 os ALTER 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');
    
  4. Reinicie o SQL Server para aplicar as alterações.

    sudo systemctl restart mssql-server
    
  5. 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