Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Atualizado em 2024-09-24 GMT+08:00

Criação de arquivos tempdb

Cenários

O banco de dados do sistema tempdb é um recurso global que está disponível para todos os usuários conectados a uma instância do SQL Server ou do banco de dados SQL. É um banco de dados temporário que não pode armazenar dados permanentemente. Ele é usado para processar dados intermediários para várias solicitações na instância. As propriedades físicas do tempdb no SQL Server são classificadas em arquivos de dados primários (.mdf), arquivos de dados secundários (.ndf) e arquivos de log (.ldf). tempdb é recriado sempre que o SQL Server é iniciado.

Pode haver alguns problemas ou até mesmo interrupção do serviço se os aplicativos criarem e soltarem arquivos tempdb com frequência, especialmente em cenários de alta simultaneidade.

A Microsoft recomenda que os arquivos tempdb sejam divididos em vários arquivos. Geralmente, o número de arquivos depende do número de vCPUs (lógicas). Se o número de vCPUs for maior que oito, use oito arquivos de dados e, em seguida, se a contenção continuar, aumente o número de arquivos de dados em múltiplos de 4 até que a contenção seja reduzida a níveis aceitáveis ou faça alterações na carga de trabalho/código.

Para obter mais informações, consulte Banco de dados tempdb no site oficial da Microsoft.

Restrições

  • Por padrão, cada instância do RDS for SQL Server executando o SQL Server 2008, 2012 ou 2014 Edition tem um arquivo tempdb, cada instância executando o SQL Server 2016 Edition tem quatro arquivos tempdb e cada instância executando o SQL Server 2017 Edition tem oito arquivos tempdb.
  • Cada instância do RDS for SQL Server tem apenas um arquivo de log, independentemente da edição do SQL Server executada.

Cenário de aplicação

Você precisa determinar o número de arquivos tempdb a serem criados com base nas especificações e nos cenários da instância. O exemplo a seguir é usado para mostrar como criar 8 arquivos tempdb para uma instância do SQL Server 2014 Enterprise Edition com 32 vCPUs.

Pré-requisitos

Procedimento

  1. Inicie o SQL Server Management Studio.
  2. Escolha Connect > Database Engine. Na caixa de diálogo exibida, insira as informações de logon.

    Figura 1 Conectar-se ao servidor
    Tabela 1 Descrição do parâmetro

    Parâmetro

    Descrição

    Server name

    Indica o endereço IP e a porta da instância de BD. Use uma vírgula (,) para separá-los. Por exemplo: x.x.x.x,8080.
    • O endereço IP é o EIP que foi vinculado à instância de BD.
    • A porta é a porta do banco de dados na área Connection Information na página Basic Information da instância de BD no console do RDS.

    Authentication

    Indica o modo de autenticação. Selecione SQL Server Authentication.

    Login

    Indica o nome de usuário do banco de dados do RDS. O administrador padrão é rdsuser.

    Password

    Indica a senha do nome de usuário do banco de dados do RDS.

  3. Visualize as informações do tempdb.

    • Escolha Databases > System Databases> tempdb. Clique com o botão direito do mouse em tempdb e escolha Database Properties. Na caixa de diálogo exibida, visualize as informações de tempdb atuais.
      Figura 2 Exibir informações de tempdb atuais
    • Você também pode executar as seguintes instruções SQL para consultar as informações tempdb:

      SELECT name AS FileName,

      size*1.0/128 AS FileSizeInMB,

      CASE max_size

      WHEN 0 THEN 'Autogrowth is off.'

      WHEN -1 THEN 'Autogrowth is on.'

      ELSE 'Log file grows to a maximum size of 2 TB.'

      END,

      growth AS 'GrowthValue',

      'GrowthIncrement' =

      CASE

      WHEN growth = 0 THEN 'Size is fixed.'

      WHEN growth > 0 AND is_percent_growth = 0

      THEN 'Growth value is in 8-KB pages.'

      ELSE 'Growth value is a percentage.'

      END

      FROM tempdb.sys.database_files;

      GO

  4. Execute as seguintes instruções para consultar o nome do arquivo tempdb da instância de BD atual:

    SELECT name, physical_name

    FROM sys.master_files

    WHERE database_id = DB_ID('tempdb');

    Figura 3 Exibir nomes de arquivos tempdb

  5. Na guia Files em 3, visualize os caminhos dos arquivos tempdb.

    Figura 4 Exibir caminhos de tempdb

  6. Execute as instruções a seguir para migrar os arquivos tempdb para D:\RDSDBDATA\DATA e especifique o tamanho inicial e o crescimento conforme necessário.

    USE master;

    GO

    ALTER DATABASE [tempdb] MODIFY FILE (NAME = tempdev, FILENAME = 'D:\RDSDBDATA\DATA\tempdb.mdf', SIZE = 8MB, FILEGROWTH = 64MB);

    GO

    ALTER DATABASE [tempdb] MODIFY FILE (NAME = templog, FILENAME = 'D:\RDSDBDATA\DATA\templog.ldf', SIZE = 8MB, FILEGROWTH = 64MB);

    GO

    Figura 5 Mover arquivos tempdb

  7. Na página Instances do console do RDS, localize a instância de BD de destino e escolha More > Reboot na coluna Operation para reinicializar a instância de BD.

    Você também pode clicar na instância de BD de destino. Na página exibida, clique em Reboot no canto superior direito da página.

  8. Execute as seguintes instruções SQL para verificar se os arquivos tempdb foram migrados com êxito:

    SELECT name, physical_name

    FROM sys.master_files

    WHERE database_id = DB_ID('tempdb');

    Figura 6 Visualizar os resultados da migração

  9. Configure o nome do arquivo, o tamanho inicial e o crescimento conforme necessário. Adicione arquivos tempdb usando um dos seguintes métodos:

    • Adicionar arquivos tempdb por meio de instruções SQL

      Com base no número de vCPUs e arquivos tempdb a serem adicionados, defina o tamanho inicial como 8 MB e o crescimento do arquivo como 64 MB.

      USE [master]

      GO

      ALTER DATABASE [tempdb] ADD FILE ( NAME = N'temp2', FILENAME = N'D:\RDSDBDATA\DATA\tempdb2.ndf', SIZE = 8MB, FILEGROWTH = 64MB)

      GO

      ALTER DATABASE [tempdb] ADD FILE ( NAME = N'temp3', FILENAME = N'D:\RDSDBDATA\DATA\tempdb3.ndf', SIZE = 8MB, FILEGROWTH = 64MB)

      GO

      ALTER DATABASE [tempdb] ADD FILE ( NAME = N'temp4', FILENAME = N'D:\RDSDBDATA\DATA\tempdb4.ndf', SIZE = 8MB, FILEGROWTH = 64MB)

      GO

      ALTER DATABASE [tempdb] ADD FILE ( NAME = N'temp5', FILENAME = N'D:\RDSDBDATA\DATA\tempdb5.ndf', SIZE = 8MB, FILEGROWTH = 64MB)

      GO

      ALTER DATABASE [tempdb] ADD FILE ( NAME = N'temp6', FILENAME = N'D:\RDSDBDATA\DATA\tempdb6.ndf', SIZE = 8MB, FILEGROWTH = 64MB)

      GO

      ALTER DATABASE [tempdb] ADD FILE ( NAME = N'temp7', FILENAME = N'D:\RDSDBDATA\DATA\tempdb7.ndf', SIZE = 8MB, FILEGROWTH = 64MB)

      GO

      ALTER DATABASE [tempdb] ADD FILE ( NAME = N'temp8', FILENAME = N'D:\RDSDBDATA\DATA\tempdb8.ndf', SIZE = 8MB, FILEGROWTH = 64MB)

      GO

    • Adicionar arquivos tempdb por meio do SQL Server Management Studio. Na guia Files em 3, clique em Add.
      Figura 7 Adicionar arquivos tempdb através do cliente

  10. Após a conclusão da configuração, reinicialize a instância novamente consultando 7.
  11. Repita 8 para verificar se os arquivos tempdb foram adicionados com êxito.

    Figura 8 Exibir os arquivos tempdb adicionados