Quais são os prós e os contras dos scripts do Ola versus o plano de manutenção?


9

Você poderia me ajudar a entender os prós e os contras do uso da solução da Ola sobre o plano de manutenção? Eu preparei uma apresentação com base no SQL Pass ( http://www.pass.org/DownloadFile.aspx?File=ebae1b31 ) que apresentarei.

Também estou preparando alguns cenários que a solução da Ola aborda e a solução do plano de manutenção não. Vocês podem me ajudar a explicar isso mais tecnicamente?

A propósito, estamos gerenciando quase mais de 150 servidores (mix de 2008/2012/2014/2016) com a solução da Ola em pelo menos 75% deles. Gostei deste artigo de Brent Ozar. Mas em um dos comentários, Brent recomendou usar uma solução baseada em script para o número de servidores que temos. https://www.brentozar.com/archive/2012/04/maintenance-plans-roombas-suck-good-way/


Estamos falando de backups, manutenção de índices / estatísticas, verificação de corrupção ou todos os itens acima?
Nkdbajoe 17/05/19

Todos eles. Script de solução de manutenção completo da Ola. Resolvi problemas de reconstruções desnecessárias do Índice e atualizações de estatísticas no plano de manutenção usando os scripts do Ola. Eu só queria munição mais técnica de outros DBAs por aí. Obrigado.
Pat

2
Pessoalmente, acredito que a melhor solução é uma solução que atenda aos seus requisitos de negócios e sua capacidade de resolvê-lo quando ocorrer um erro. A solução da Ola não é ruim em geral, mas ainda prefiro minha própria solução personalizada para o meu ambiente. Por exemplo, para manutenção de índice, quero ter execuções paralelas para economizar tempo. A solução da Ola não funciona aqui. Eu quero ter uma atualização incremental de estatísticas, a solução do Ola também não funciona aqui.
jyao

Você tem algum dado para mostrar que eles são melhores ou você está apenas seguindo o que acha que é melhor? A melhor maneira de resolver o problema é obter alguns dados de desempenho para ser show tão capaz por que um método é melhor
Joe W

Para manutenção do índice, muitas vezes o fator limitante é seu subsistema de SAN e armazenamento. Dependendo da configuração da sua SAN, talvez você não veja melhorias nas recriações paralelas.
Alen

Respostas:


13

Eu escrevi aqui

Os planos de manutenção não são ruins, mas quando o seu ambiente cresce, a flexibilidade e a funcionalidade limitadas fornecidas pelos planos de manutenção não serão suficientes.

Para adicionar mais,

  • A solução de manutenção da Ola é amplamente aceita na comunidade e em grandes organizações .
  • Seu código aberto e problemas podem ser levantados no github / issues com uma probabilidade de corrigi-lo muito rapidamente.
  • É flexível e escalável (mesmo se você quiser implantá-lo em centenas de servidores, basta usar o Install-DbaMaintenanceSolution do dbatools.)
  • A Microsoft levou quase uma década para corrigir a GUI do plano de manutenção, que era o próprio buggy :-)
  • possui extensa documentação e perguntas frequentes e é constantemente atualizado para acomodar versões mais recentes do servidor sql.
  • na versão de visualização , você pode até executar backups em paralelo.
  • para a solução de manutenção de índice, você pode até cronometrar o processo, por exemplo, se ele executar mais de X, abortá-lo.

5

Uma das principais vantagens de uma solução baseada em script é a facilidade de implantação - algo claramente relevante no seu caso, pois você tem mais de 150 servidores. Tentar implementar vários planos de manutenção (ou seja, no mínimo 2, um para bancos de dados do sistema e outro para bancos de dados de usuários) em 150 servidores seria um pesadelo. Mantê-los uma vez no lugar é tão problemático.

Uma solução baseada em script é muito mais fácil de implantar e manter ao longo do tempo. Os scripts de Ola são bastante abrangentes e cobrem a maioria das necessidades. Eles representam um excelente ponto de partida para qualquer organização ajustar para atender aos seus próprios requisitos exclusivos.

No nosso caso, temos cerca de 40 instâncias SQL em nosso ambiente DEV e usamos scripts Ola modificados com o recurso de múltiplas conexões do SSMS para poder implementar alterações no regime de manutenção em todas as 40 instâncias em um clique. Quaisquer casos especiais são tratados por nossas modificações.


3

Não tenho 100% de certeza dos scripts dele, mas os scripts personalizados são muito melhores que os planos de manutenção. Os planos integrados reconstruirão todos os índices em uma tabela, independentemente da pouca fragmentação. Se você tiver o Always On, isso criará uma tempestade de tráfego.

Scripts personalizados, você pode reconstruir qualquer coisa acima de 20% ou qualquer que seja o seu limite. Menos índices reconstruídos por vez. Menos sempre Nos dados a serem enviados para os secundários. Reconstrução mais rápida porque você está reconstruindo menos índices. É necessária uma janela de manutenção mais curta.

Na última vez em que usei planos de manutenção, eu tinha uma tabela de 300 milhões de linhas e o Always On estaria horas atrasado sempre que a reconstrução do índice fosse iniciada e os problemas com o log de transações transbordassem. Voltou aos scripts e tudo foi embora.


11
Originalmente, escrevi o meu para o SQL 2005 em 2007. Usei os livros on-line como base e mudei um pouco. Naquela época, parecia que a maioria das pessoas estava usando os planos e agora parece ter revertido. E antes de começar a fazer coisas sobre o DBA, o DBA anterior antes de mim tinha scripts personalizados para o SQL 2000. A única coisa que diferentemente foi reconstruí tudo. Foi mais rápido reconstruir algo acima de 20% ou 30% do que reorganizar também. Para backups, sempre usamos produtos de terceiros
Alen

1

Além do exposto, meu motivo favorito é poder alternar o tipo de backup automaticamente, para que um novo banco de dados tenha um backup completo na primeira vez em que a tarefa de backup de log for executada, em vez de esperar até a próxima tarefa de backup completo.


0

Os planos de manutenção funcionam muito bem na maioria das vezes. Os roteiros de Ola Hallengren funcionam muito bem na maioria das vezes.

Em casos muito raros, você pode ter que crescer sozinho.

Como Jyao disse, tudo se resume ao trabalho com o qual você se sente mais confortável. Se o seu colega de trabalho se sente mais confortável com os planos de manutenção, por que mudar sua calcinha?

Se ele usa banco de dados há mais de 20 anos, ele já escreveu seus próprios scripts de manutenção. Bem na época em que você estava aprendendo a dirigir, provavelmente havia um punk jovem de bermuda e bermuda que apareceu e foi tipo "ei, seu velho programador, os planos de manutenção são melhores - e puxe as calças para baixo, você parece ridículo!" "

Provavelmente houve uma batalha de quatro anos em que o jovem arrogante entrava em um plano de manutenção sempre que podia. Agora, esse outro jovem punk de calça jeans skinny e gravata borboleta está dizendo para ele voltar aos roteiros. É o suficiente para deixar seu cabelo grisalho.

Três coisas a considerar:

Esses exemplos de superioridade do Hallengrenite são realmente aplicáveis ​​ao seu ambiente?

Isso vai causar um problema real se ele usar planos de manutenção?

Se você o convencer a usar os scripts de Hallengren e houver um problema, ele poderá resolver sozinho ou precisará ligar para você?


Responda às duas primeiras perguntas Sim. Já vimos problemas com os planos de manutenção e os resolvi com a solução da Ola. Também havia uma tarefa de log de encolhimento (??) no servidor de produção que eu desabilitei imediatamente. Terceira pergunta, eu não sei. Não tenho certeza se ele conseguirá resolver problemas criados pelo próprio Plano de Manutenção. Quando perguntei a ele, caso tenhamos problemas, o que devemos fazer? Sua resposta foi ligar para o suporte da Microsoft. (??)
Pat

@ Pat, ahh, parece que ele atingiu seu limite de acordo com o Princípio de Peter. Cuidado para tentar melhorá-lo - é provável que ele não aprecie a ajuda.
James
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.