Histórico da Página
Produto: | Banco de Dados |
Versões: | Todas |
Ocorrência: |
SHRINK - Reduzir tamanho dos arquivos do banco de dados | |
Ambiente: | SQL Server |
Passo a passo: |
Manutenção:
Mantenha a base de dados e o servidor de banco de dados de acordo com as recomendações do documento de portabilidade da TOTVS. O documento de portabilidade pode ser obtido através do portal do cliente, onde existirá um documento por versão (XX.XX) – (Portabilidade).Motivo: Diversos problemas podem ocorrer na conversão relacionada à insuficiência de recursos da instancia do banco de dados ou parâmetros do banco de dados fora do padrão homologado. O modelo padrão é a base vazia disponibilizada pela TOTVS, em caso de dúvidas a mesma pode ser verificada para comparação de parâmetros.
Não executar scripts DML ou DDL diretamente na base de dados sem o aval da TOTVS. Scripts executados diretamente na base de dados podem alterar a estrutura e gerar inconsistências na base, o que no momento da conversão pode ser evidenciado ocasionando a necessidade de validação da base de dados. O processo de validação pode ser moroso e gerará custos para o cliente, visto ser um processo de consultoria de especialistas em Banco de dados.
Dois parâmetros existentes em bases SQL server podem trazer efeitos indesejados na utilização do sistema, que passam por desempenho e erros na aplicação, são eles:
- Auto Update Statistics – configurada como True, as estatísticas de índice são automaticamente atualizadas, podendo gerar queda de performance.
- Auto Create Statistics – configurada como True, as estatísticas de índice são automaticamente criadas, sempre que você criar um índice, o SQL Server cria um conjunto de estatísticas sobre os dados contidos dentro do índice.
O Shrink é um recurso que nos permite reduzir o tamanho dos arquivos do banco de dados. Esta operação pode ser feita em conjunto (banco de dados inteiro), ou em um arquivo específico (dados ou log). Primeiramente verifique se a empresa possui a rotina de efetuar backup de log e se possui auditoria de usuário ligada. Efetue um backup da base de dados e do log antes de efetuar o processo. 1. Selecione a opção de propriedades da base: 2. Clique na opção Options: Clique na opção Options e selecione o Recovery model como Simple O log do SQL Server poderá crescer mais ou menos a depender do recovery model escolhido. - Checkpoints manuais Caso ainda assim, tenha dificuldade em reduzir o log, pode existir alguma configuração na instância relacionada a replicações realizadas no passado ou alguma outra configuração voltada a este cenário impactando o processo de checkpoint. Caso esteja utilizando o recovery full, o responsável mais comum por realizar o processo de checkpoint sem a intervenção do DBA é o processo de backup do log de transação. Ao se realizar o backup, o processo de checkpoint é realizado de forma automática no momento deste backup, mantendo os arquivos de log em produção em tamanhos gerenciáveis. Para isso, é necessário escolher a períodicidade do backup de log conforme o seu negócio. Caso não seja o DBA da empresa, sugiro que alinhe estas informações com o mesmo para tomada de decisão. 3. Siga os procedimentos abaixo: Clique com o botão direito sobre a base > Tasks > Shrink > Files 4. Siga os procedimentos abaixo: Marque a opção File Type: Log e clique em ok O procedimento acima também pode ser executado através do script abaixo:
5. AUTO GROWTH, RECOVERY MODEL e MAXIMUM FILE SIZE: Para garantir o crescimentos dos arquivos de Dados e arquivos de Log (mdf e ldf), recomendamentos as seguintes parametrizações para os arquivos correspondentes: RECOVERY MODEL: simple ATENÇÃO: Estas recomendações são apenas um direcionamento básico para uma boa operação do servidor de banco de dados e não deve ser considerado como único padrão de avaliação, monitoração, e configuração do banco de dados que deve ser realizado por o DBA responsável. 6. LIMPEZA DAS TABELAS DE LOG DE EXECUÇÃO DE PROCESSOS A Totvs recomenda que não seja feita nenhuma intervenção direta no banco de dados, por isso temos mecanismos afim de facilitar os processos de limpeza das tabelas de log de execução de processos. The transaction log for database 'CorporeRM_TESTE' is full. To find out why space in the log cannot be reused, see the log_reus> Segue abaixo alguns comando que podem ajudar e analisar o erro: DBCC SQLPERF(LOGSPACE) Fornece logs de transações e estatísticas de uso de espaço para todos os bancos de dados. Também pode ser utilizado para repor as estatísticas de espera e travamento. LOGSPACE: Retorna o tamanho atual do log de transações e a porcentagem de espaço de log usada para cada banco de dados. Você pode usar essas informações para monitorar a quantidade de espaço utilizado em um log de transações. DBCC SHRINKDATABASE ('nome_dabase'): Reduz o tamanho dos |
Recomendamos que o DBA avalie a periodicidade para execução destas procedures, caso não possua DBA, execute as mesmas na seguinte periodicidade:
Reindexão de Indices (Index_defrag2.sql) – Semanalmente
Atualização de Estatisticas (RMatualizaestatisticas.sql) - Diariamente
dados e arquivos de log do banco de dados |
especificado.
A segunda ilustração mostra como o log aparece depois de ser truncado. Log 1 virtual e log 2 virtual foram liberados para reutilização. O log lógico agora inicia no começo do log 3 virtual. O log 5 virtual ainda está sem uso e não é parte do log lógico atual. https://technet.microsoft.com/pt-br/library/ms189085.aspx |
Observações: | Para mais informações: |