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
- Você instalou o cliente SQL Server Management Studio. Para obter detalhes, consulte Como instalar o SQL Server Management Studio?
- Você criou uma instância com 32 vCPUs executando o Microsoft SQL Server 2014 Enterprise Edition. Para obter detalhes, consulte Compra de uma instância de BD
Procedimento
- Inicie o SQL Server Management Studio.
- 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.
- 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:
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
- 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.
- 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
- Na guia Files em 3, visualize os caminhos dos arquivos tempdb.
Figura 4 Exibir caminhos de tempdb
- 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
- Na página Instances do console do RDS, localize a instância de BD de destino e escolha
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.
- 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
- 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
- Adicionar arquivos tempdb por meio de instruções SQL
- Após a conclusão da configuração, reinicialize a instância novamente consultando 7.
- Repita 8 para verificar se os arquivos tempdb foram adicionados com êxito.
Figura 8 Exibir os arquivos tempdb adicionados