AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 30932
Accepted
SqlRyan
SqlRyan
Asked: 2012-12-22 14:53:03 +0800 CST2012-12-22 14:53:03 +0800 CST 2012-12-22 14:53:03 +0800 CST

Estou usando o SQL Server Agent para agendar tarefas que não sejam de banco de dados - isso é uma má ideia?

  • 772

Como sou um DBA (e, em muitos casos, o administrador de sistema de fato), o SQL Server é instalado em praticamente todos os servidores com os quais tenho que trabalhar regularmente. Percebi recentemente que tenho usado o SQL Agent como agendador de tarefas em praticamente todos os casos, em vez do Agendador de Tarefas nativo do Windows.

Do meu ponto de vista, o SQL Agent tem várias vantagens sobre o Agendador de Tarefas nativo do Windows:

  • Remoto (da minha estação de trabalho) início/parada/monitoramento de tarefas
  • Agendas compartilhadas (em vez de cada tarefa por conta própria)
  • Múltiplas etapas e fluxo de controle
  • Diferentes tipos de tarefas
  • Alertas sobre falha/conclusão
  • Pode ser configurado para atuar como diferentes usuários
  • Mensagens de erro (moderadamente) descritivas, em vez de apenas um código de erro

No entanto, não posso deixar de sentir que isso é uma prática ruim - o SQL Agent deve ser reservado apenas para tarefas relacionadas ao banco de dados e devo deixar as tarefas no nível do sistema operacional em execução no Agendador de Tarefas do Windows, apesar de não gostar de sua usabilidade.

É correto confiar no SQL Agent dessa maneira? Caso contrário, devo considerar um agendador de tarefas do Windows de terceiros para obter algumas das funcionalidades que estou procurando?

sql-server sql-server-agent
  • 3 3 respostas
  • 4076 Views

3 respostas

  • Voted
  1. Aaron Bertrand
    2012-12-22T15:05:51+08:002012-12-22T15:05:51+08:00

    Em meu trabalho anterior, fiz exatamente isso, principalmente porque os trabalhos eram todos executados em nosso cluster primário central, que era o servidor mais visível. Pude ver todas as nossas tarefas agendadas em um só lugar, em vez de ter que verificar as coisas da linha de comando em vários servidores.

    Embora isso seja amplamente subjetivo (e será difícil derivar uma resposta "correta" nesse formato), não acho que haja algo inerentemente errado com essa abordagem, exceto que ela se torna um único ponto de falha.

    Isso pode não ser relevante se todas as tarefas interagirem ou dependerem do servidor de banco de dados e dos serviços do SQL Server em execução (no nosso caso, sim).

    Ah, e você precisa adicionar o tratamento de erros para os casos em que o servidor onde a tarefa tenta ser executada não está funcionando - algo que você não teria que fazer se a tarefa fosse configurada naquele servidor.

    • 9
  2. Best Answer
    Bacon Bits
    2012-12-23T06:39:19+08:002012-12-23T06:39:19+08:00

    Pessoalmente acho que a maior ressalva seria a dificuldade em manter a lista de jobs organizada. Tanto quanto eu sei, você não pode criar pastas para organizar os trabalhos, então um grande número seria complicado. Não tenho 100% de certeza disso, já que nenhum dos meus servidores tem mais de uma dúzia de trabalhos. O Agendador de Tarefas do Server 2008 e posterior permite uma organização muito mais fácil, IMO e, em geral, tem uma funcionalidade muito melhor do que as versões anteriores. Tenho certeza de que aplicativos de terceiros fazem um trabalho ainda melhor. Eu choraria se tivesse que usar o agendador de tarefas do Server 2003 ou at.exe.

    A segunda ressalva em que posso pensar seria potencialmente colocar muita carga no servidor SQL. O Agente é um programa pequeno, mas a execução de uma tarefa longa ou complexa pode facilmente consumir muitos recursos. Esses recursos não estariam disponíveis para o mecanismo SQL. Como o mecanismo SQL está programado para ocupar cerca de 80% da memória disponível do sistema, isso pode ser um problema.

    Em terceiro lugar, o backup pode ser um problema. Você não precisará apenas fazer backup do sistema de arquivos, mas também do banco de dados msdb para permitir a recuperação dos trabalhos (ou usar algo para fazer o script das tarefas em um arquivo de texto). Isso adiciona uma camada de complexidade à recuperação de desastres.

    Por fim, você não gostaria de estar na posição de pagar por uma licença do SQL Server apenas para executar o SQL Server Agent. Se o banco de dados for desativado, você precisará desenvolver um plano para migrar do SQL Server Agent.

    • 7
  3. Gator
    2012-12-22T17:24:09+08:002012-12-22T17:24:09+08:00

    Eu ~provavelmente~ usaria o SQL Agent no gerenciador de tarefas do Windows... obviamente para tarefas relacionadas ao banco de dados.

    Se você pode codificar, ou tem pessoas que podem codificar, você pode fazer um pouco com aplicativos de console e envolvê-los em um criador de serviço como o TopShelf (http://topshelf-project.com/) Isso pode ser um barato/ hack fácil para obter um pouco de desacoplamento do SQL Agent para tudo e começar a fornecer também uma camada para enfileiramento, se você estiver nesse ponto.

    Pessoalmente, você parece se importar o suficiente com isso, bem como conhecer o suficiente de suas pegadinhas, que acho que ficará bem. É com as pessoas que não se importam/sabem que eu realmente me preocupo. Não tenho dúvidas de que você avaliará suas soluções em intervalos razoáveis ​​e agirá de acordo.

    • 0

relate perguntas

  • SQL Server - Como as páginas de dados são armazenadas ao usar um índice clusterizado

  • Preciso de índices separados para cada tipo de consulta ou um índice de várias colunas funcionará?

  • Quando devo usar uma restrição exclusiva em vez de um índice exclusivo?

  • Quais são as principais causas de deadlocks e podem ser evitadas?

  • Como determinar se um Índice é necessário ou necessário

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como ver a lista de bancos de dados no Oracle?

    • 8 respostas
  • Marko Smith

    Quão grande deve ser o mysql innodb_buffer_pool_size?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    restaurar a tabela do arquivo .frm e .ibd?

    • 10 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Como selecionar a primeira linha de cada grupo?

    • 6 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    pedrosanta Listar os privilégios do banco de dados usando o psql 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST
  • Martin Hope
    bernd_k Quando devo usar uma restrição exclusiva em vez de um índice exclusivo? 2011-01-05 02:32:27 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve