Manutenção do servidor, Parte 6: criar um plano de manutenção do SQL

Os planos de manutenção podem ser usados para programar tarefas necessárias para garantir que o banco de dados funcione de forma correta, mantendo, por exemplo, os arquivos do banco de dados e do registro de transação em um tamanho pequeno e verificando inconsistências no banco de dados.

A Autodesk recomenda que o plano seja executado ao menos uma vez por semana fora do horário comercial.

Em um ambiente de grupo de trabalho conectado, isso deve ser configurado em cada servidor SQL.

Parte das tarefas dos Administradores deve ser verificar regularmente que o plano foi executado com êxito.

Se o plano foi configurado para uma versão anterior do servidor do Vault, certifique-se de verificar e atualizar o plano de acordo com esse artigo.

As etapas a seguir são universais em todas as versões do SQL em uso com o servidor do Vault (Express e Full SQL). A lista completa dos motores de banco de dados compatíveis está localizada no arquivo Leiame do produto.

Observação: Observe que, se você estiver executando o SQL Express e não tiver o SQL Management Studio instalado, as seguintes etapas poderão ser completadas no prompt de comando com scripts na seção "Criar um script de manutenção para o Microsoft SQL Express". Também é possível instalar o SQL Management Studio for Express, disponível no site da Microsoft.
  1. Faça login no SQL Management Studio.
  2. Expandir Bancos de dados, expandir Bancos de dados do sistema
  3. Clique com o botão direito do mouse em tempdb e selecione propriedades.
  4. Selecione a página Arquivos.
  5. Se estiver utilizando um sistema com múltiplos núcleos, é necessário configurar arquivos de dados adicionais, usando as diretrizes abaixo. Se estiver utilizando um sistema de núcleo único, pule para a etapa d abaixo. 1. Os arquivos de dados devem ser iguais ao número de processadores lógicos/virtuais disponíveis. Por exemplo, se a máquina tiver 12 Processadores lógicos, haverá 1x arquivo .mdf e 11x arquivos .ndf. Se o espaço em disco for importante, o tamanho de 512 MB poderá ser usado em vez de 1.024 MB.

    Observação: No caso do SQL 2016 ou posterior, o arquivo de dados terá como padrão o valor inferior entre oito e o número de núcleos lógicos, conforme detectado pela configuração. O valor pode ser aumentado conforme necessário para cargas de trabalho específicas. Os nomes de arquivos de dados secundários seguirão a convenção de nomenclatura tempdb_mssql_#.ndf, em que # representa o número ordinal de cada arquivo adicional.
2.    Clique no botão Adicionar para adicionar arquivos de dados.
3.    Nomeie os novos arquivos temp2, temp3... conforme necessário.
4.    Defina o tamanho de cada arquivo de dados como 1.024 MB. Se um total de oito arquivos de dados for utilizado, um tamanho de 512 MB poderá ser utilizado.
5.    Defina Autogrowth para 100 MB, crescimento irrestrito para cada arquivo de dados.
6.    Defina o arquivo de registro LDF como o total de arquivos de dados combinados, por exemplo, se houver um total de dois arquivos de dados, o LDF resultante deverá ser definido para o tamanho de 2048 MB.
    
    ![](../../images/DatabaseProperties_tempdb_2024.png)
    
  1. Para bancos de dados de usuários, KMV e outros bancos de dados do Vault, defina o nível de compatibilidade como SQL Server 2012 (110) na página Opções. Os bancos de dados do sistema não são definidos pela Autodesk, e é seguro deixá-los no nível de compatibilidade padrão.
  2. Selecione OK.

Criar um plano de manutenção do SQL para o Full SQL

Os planos de manutenção podem ser usado para programar tarefas necessárias para garantir que o banco de dados funcione de forma correta, mantendo, por exemplo, os arquivos de banco de dados e de registro de transação em um tamanho pequeno e verificando inconsistências no banco de dados.

Observação: Essas configurações são recomendadas pela Autodesk e devem ser definidas automaticamente para novas instalações. Ao migrar de uma versão anterior do Vault Server, essas configurações não são aplicadas, pois podem ter sido alteradas intencionalmente pelo Administrador.

SQL Standard/Enterprise

  1. Verifique se foram feitas cópias de segurança dos Vaults com o Autodesk Vault Server Console antes de continuar.
  2. Assegure-se de que todos os usuários estejam desconectados do servidor do Vault.
  3. No Painel de controle, clique duas vezes em Ferramentas administrativas e, depois, clique duas vezes no ícone Serviços.
  4. Localize o serviço do SQL Server Agent (AUTODESKVAULT).
  5. Clique com o botão direito do mouse no SQL Server Agent (AUTODESKVAULT) e selecione Propriedades.
  6. Altere o tipo de inicialização para Automático e inicie o serviço.
![](../../images/SQLServerAgent_Properties_2024.png)
  1. Abra o Microsoft SQL Management Studio e conecte-se a instância AutodeskVault. Use \AUTODESKVAULT como o nome do servidor e pressione Conectar.
  2. Clique com o botão direito do mouse no banco de dados do Vault e selecione Propriedades.
  3. Na página Arquivos, defina:
-    o valor de Autogrowth para todos os bancos de dados do <Vault> como 100 MB, com crescimento sem restrições
-    o tamanho inicial de todos os arquivos do <Vault> como 500 MB
-    O valor de Autogrowth para arquivos <Custom_Library> para 25MB
-    Os valores de Autogrowth de todos os arquivos _log por 10%, crescimento sem restrições

Ou, em forma de tabela:

<table cellpadding="0" cellspacing="0" class="not-ruled"><colgroup><col width="28.57142857142857%"> <col width="30%"> <col width="41.42857142857142%"> </colgroup><tbody><tr class="not-ruled-heading"><th class="table-heading"><a name="GUID-1BF7003F-A559-4825-BFFD-FB97D6B18A50"></a><p class="table-heading">Nome lógico</p></th><th class="table-heading"><a name="GUID-231BC906-795B-405E-8884-1569544A41F7"></a><p class="table-heading">Tamanho (MB)</p></th><th class="table-heading"><a name="GUID-BC8C8F75-C7B1-4F73-9635-04F6FBC3A6D2"></a><p class="table-heading">Autogrowth</p></th></tr><tr class="not-ruled-odd-row"><td class="table-body"><a name="GUID-C243564C-EAAE-420F-8EC5-D26C04511FAB"></a><p class="table-body">KnowledgeVaultMaster</p></td><td class="table-body"> <a name="GUID-BB8AB4F5-598F-4BF5-9ECB-048741718130"></a><p class="table-body"></p></td><td class="table-body"><a name="GUID-A3D6331E-A19A-40AD-B6F2-F8EBFC3D1E3D"></a><p class="table-body">Até 10 MB, crescimento sem restrições</p></td></tr><tr class="not-ruled-even-row"><td class="table-body"><a name="GUID-A622DCCB-0C5F-4B42-9005-F9B4F5DA9F9D"></a><p class="table-body">KnowledgeVaultMaster_log</p></td><td class="table-body"> <a name="GUID-76BD87FC-D749-4CA8-9629-3B3905C79EAE"></a><p class="table-body"></p></td><td class="table-body"><a name="GUID-A894530E-5D84-4C64-9B54-26E747F7B11D"></a><p class="table-body">Até 10%, crescimento sem restrições</p></td></tr><tr class="not-ruled-odd-row"><td class="table-body"><a name="GUID-D7DCCAF3-6F3F-492A-B4DB-CA007CA6115D"></a><p class="table-body">&lt;Vault></p></td><td class="table-body"> <a name="GUID-26B07E41-F59F-4F49-8425-F51E73BA3338"></a><p class="table-body"></p></td><td class="table-body"><a name="GUID-9A199818-107C-43D9-9BE4-8755DCDC364A"></a><p class="table-body">Até 100 MB, crescimento sem restrições</p></td></tr><tr class="not-ruled-even-row"><td class="table-body"><a name="GUID-5DB9BF0E-F29F-4097-A83C-710380210B78"></a><p class="table-body">&lt;Vault>_log</p></td><td class="table-body"><a name="GUID-28DA3532-8C96-43AE-8A3D-783C9B20A7B0"></a><p class="table-body">500</p></td><td class="table-body"><a name="GUID-92DC092E-D2FE-4B55-AC7A-5DAB3B77DECE"></a><p class="table-body">Até 10%, crescimento sem restrições</p></td></tr><tr class="not-ruled-odd-row"><td class="table-body"><a name="GUID-DEBE2C9D-8448-43E9-8738-83B403DF0480"></a><p class="table-body">&lt;Custom_Library></p></td><td class="table-body"> <a name="GUID-5CBD77D1-F5AF-4EB5-8226-1E9D26F011AF"></a><p class="table-body"></p></td><td class="table-body"><a name="GUID-7F14CAD4-99BE-479D-8D16-73917ECF7244"></a><p class="table-body">Até 25 MB, crescimento sem restrições</p></td></tr><tr class="not-ruled-even-row"><td class="table-body"><a name="GUID-D8B69779-4668-4A24-BB99-B34ABB7068BD"></a><p class="table-body">&lt;Custom_Library>_log</p></td><td class="table-body"> <a name="GUID-CA5DA034-3F54-447F-8314-3730A6ABF2B1"></a><p class="table-body"></p></td><td class="table-body"><a name="GUID-073C1CFA-7AC2-4B52-B5B8-A31035DB13ED"></a><p class="table-body">Até 10%, crescimento sem restrições</p></td></tr><tr class="not-ruled-odd-row"><td class="table-body"><a name="GUID-F878689B-A11E-4FB6-ACB0-E2B7D43058FF"></a><p class="table-body">&lt;Standard_Library></p></td><td class="table-body"> <a name="GUID-4355D925-E435-44B3-94FF-A9550443848B"></a><p class="table-body"></p></td><td class="table-body"><a name="GUID-AA11E133-4BA0-4FBA-AC4D-97B91DB632FC"></a><p class="table-body">Até 25 MB, crescimento sem restrições</p></td></tr><tr class="not-ruled-even-row"><td class="table-body"><a name="GUID-3EB28DBE-B0BC-4896-B748-3DB5A3806E2F"></a><p class="table-body">&lt;Standard_Library>_log</p></td><td class="table-body"> <a name="GUID-0330585C-1017-4584-B88F-9D9E235D6A69"></a><p class="table-body"></p></td><td class="table-body"><a name="GUID-540145D1-42B5-4249-8965-387CF7044FA6"></a><p class="table-body">Até 10%, crescimento sem restrições</p></td></tr></tbody></table>


Observação: Uma célula em branco na tabela acima indica que a configuração padrão não deve ser alterada.

As células cinza indicam os valores padrão e deverão ser definidas como acima, se forem diferentes.

![](../../images/DatabaseProperties_KVM_2024.png)
  1. Na página Opções, defina o Nível de compatibilidade como SQL Server 2012 (110) e altere a lista suspensa Reduzir automaticamente para Falso.
  2. Execute as mesmas etapas para todos os bancos de dados do KnowledgeVaultMaster, Vault e da Biblioteca do Vault (etapas 8-10).
  3. Expanda a pasta Gerenciamento e selecione a pasta Plano de manutenção.
  4. Clique com o botão direito do mouse na pasta Plano de manutenção e selecione o Assistente do plano de manutenção. Clique em Avançar.
![](../../images/MaintenancPlanWizard_step1.png)
  1. Na caixa de diálogo Selecionar propriedades do plano, insira Plano de manutenção do Vault para o nome e clique no botão Alterar para definir a agenda.
![](../../images/MaintenancPlanWizard_step2.png)
  1. Na caixa de diálogo Propriedades da tabela, configure o para que o plano seja executado após conclusão de uma cópia de segurança do Autodesk Vault Server Console. Dependendo do tamanho do conjunto de dados, pode ser necessário executar esse planejamento em outro horário e dia da semana. É possível executar essa tarefa em um sábado para determinar o tempo necessário para a conclusão e, assim, poder decidir o melhor horário e dia para executar essa tarefa de forma normal.
  2. Na caixa de diálogo Selecionar tarefa de manutenção, marque as seguintes opções:
![](../../images/SelectMaintenanceTask_2024.png)
  1. Na caixa de diálogo Selecionar a ordem das tarefas de manutenção, defina a ordem conforme segue:
![](../../images/SelectMaintenanceTask_postselection_2024.png)
  1. Na caixa de diálogo Definir tarefa de verificação de integridade do banco de dados, selecione Todos os bancos de dados na lista suspensa de bancos de dados e marque a caixa ao lado da opção "Incluir índices" e "Apenas físico".
![](../../images/DefineDatabaseCheckIntegrityTask_2024.png)
  1. Na caixa de diálogo Definir tarefa de verificação de integridade do banco de dados, selecione Todos os bancos de dados de usuários na lista suspensa de Bancos de dados.
![](../../images/DefineRebuildIndexTask_2024.png)
  1. Na caixa de diálogo Definir a tarefa atualizar estatísticas, selecione as seguintes opções:
![](../../images/DefineUpdateStatisticsTask_2024.png)
  1. Na caixa de diálogo Definir tarefa de limpeza de histórico, selecione as opções de limpeza conforme necessário.
![](../../images/DefineCleanupHistoryTask_2024.png)
  1. Na caixa de diálogo Selecionar as opções do relatório, especifique a localização para os relatórios de manutenção.
  2. Clique em Avançar e em Concluir.

Criar um script de manutenção para Microsoft SQL Express

O Microsoft SQL Express não permite que você crie um plano de manutenção do SQL Server Management Studio Express.

Assegure-se de que o usuário do sistema operacional (Windows) que está executando o plano de manutenção do SQL tenha a função de administrador do sistema dentro do SQL.

Modificações de Tempdb por meio do prompt de comando

Como indicado anteriormente nesta seção, se o SQL Server Management Studio não estiver instalado, as alterações no banco de dados tempdb podem ser completadas no prompt de comando ao executar o seguinte:

  1. Abra o prompt de comando como administrador.
  2. Copie e cole cada linha abaixo no prompt do comando e pressione Enter.
```
SQLCMD -E -S".\AutodeskVault" -Q "ALTER DATABASE [tempdb] SET COMPATIBILITY_LEVEL = 110"
```

```
SQLCMD -E -S ".\AutodeskVault" -Q "ALTER DATABASE [tempdb] MODIFY FILE ( NAME = 
N'tempdev', SIZE = 1024MB, FILEGROWTH = 100MB)"
```

```
SQLCMD -E -S ".\AutodeskVault" -Q "ALTER DATABASE [tempdb] MODIFY FILE ( NAME = 
N'templog', SIZE = 1024MB )"
```
  1. Se estiver usando um sistema multi-core, arquivos de dados adicionais devem ser configurados usando as diretrizes abaixo. **Observação: O caminho do sistema de arquivos usado em FILENAME = deve ser o mesmo local que o diretório de dados SQL. No exemplo abaixo, é C:\Arquivos de Programa\Microsoft SQL Server\MSSQL15.AUTODESKVAULT\MSSQL\DATA. Modifique o script para exibir o caminho correto. 1. Os arquivos de dados devem ser iguais ao número de processadores lógicos/virtuais disponíveis. Por exemplo, se a máquina tiver 12 Processadores lógicos, haverá 1x arquivo .mdf e 11x arquivos .ndf. Se o espaço em disco for importante, o tamanho de 512 MB poderá ser usado em vez de 1.024 MB.

    Observação: No caso do SQL 2016 ou posterior, o arquivo de dados terá como padrão o valor inferior entre oito e o número de núcleos lógicos, conforme detectado pela configuração. O valor pode ser aumentado conforme necessário para cargas de trabalho específicas. Os nomes de arquivos de dados secundários seguirão a convenção de nomenclatura tempdb_mssql_#.ndf, onde # representa o número ordinal de cada arquivo adicional.

    SQLCMD -E -S ".\AutodeskVault" -Q " ALTER DATABASE [tempdb] ADD FILE ( NAME = 
    N'tempdev_2', FILENAME = N'C:\Program Files\Microsoft SQL 
    Server\MSSQL15.AUTODESKVAULT\MSSQL\DATA\tempdev_2.ndf', SIZE = 1024MB, 
    FILEGROWTH = 100MB)"
    
2.    Se for necessário criar outros arquivos de dados, simplesmente modifique o exemplo acima para refletir tempdev_3, etc., para NOME e NOME DE ARQUIVO.
3.    Defina o arquivo de registro LDF para o total de arquivos de dados combinados. (exemplo: se há dois arquivos de dados no total, o LDF resultante deve ser definido com um tamanho inicial de 2.048 MB).
    
    ```
    SQLCMD -E -S ".\AutodeskVault" -Q "ALTER DATABASE [tempdb] MODIFY FILE ( 
    NAME = N'templog', SIZE = 2048MB )"
    ```
    

Plano de manutenção

Copie o script abaixo e cole-o em um novo arquivo salvo como VaultMaintenance.bat.

A seguir está um exemplo de como executar o arquivo de lote na raiz de C:\ para um banco de dados chamado Vault, com resultados em um arquivo de texto.

C:\VaultMaintenance.bat Vault > results.txt
Observação: A ação de copiar e colar diretamente desse documento exigirá que as quebras de linha sejam corrigidas. Observe também que o usuário que está executando o plano de manutenção precisa ter permissões para fazer isso dentro do SQL. Isto pode ser feito durante a instalação do SQL ou depois.
REM This begins the maintenance plan.
@echo off
if "%1"=="" goto NOPARAM
set VAULTNAME=[%1]
set VAULTLOG=[%1_log]
@echo Setting %VAULTNAME% database compatibility to 110
sqlcmd -E -S ".\AutodeskVault" -Q "ALTER DATABASE %VAULTNAME% SET 
COMPATIBILITY_LEVEL = 110"
@echo Setting %VAULTNAME% database recovery model to simple...
sqlcmd -E -S ".\AutodeskVault" -Q "ALTER DATABASE %VAULTNAME% SET RECOVERY 
SIMPLE"
@echo Setting %VAULTNAME% database Autogrowth value...
sqlcmd -E -S ".\AutodeskVault" -Q "ALTER DATABASE %VAULTNAME%  MODIFY FILE 
(NAME=%VAULTNAME%, FILEGROWTH=100MB)"
@echo Setting %VAULTNAME% database Log filesize...
sqlcmd -E -S ".\AutodeskVault" -Q "ALTER DATABASE %VAULTNAME% MODIFY FILE ( NAME = 
%VAULTLOG%, SIZE = 512000KB )"
@echo Setting %VAULTNAME% database Autoclose to false...
sqlcmd -E -S ".\AutodeskVault" -Q "ALTER DATABASE %VAULTNAME% SET AUTO_CLOSE OFF 
WITH NO_WAIT"
@echo Reindexing %VAULTNAME% database...
sqlcmd -E -S ".\AutodeskVault" -Q "USE %VAULTNAME% DECLARE tableCursor CURSOR FOR 
SELECT NAME FROM sysobjects WHERE xtype in('U') DECLARE @tableName nvarchar(128) 
OPEN tableCursor FETCH NEXT FROM tableCursor INTO @tableName WHILE 
@@FETCH_STATUS = 0 BEGIN DBCC DBREINDEX(@tableName, '') FETCH NEXT FROM 
tableCursor INTO @tableName END CLOSE tableCursor DEALLOCATE tableCursor"
@echo Updating Statistics on %VAULTNAME% database...
sqlcmd -E -S ".\AutodeskVault" -Q "USE %VAULTNAME% Exec sp_MSForEachTable 'Update 
Statistics ? WITH FULLSCAN'"
goto EXIT
:NOPARAM
echo [FAIL] Please indicate Vault database
pause
:EXIT
REM This ends the maintenance plan.