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 / 16478
Accepted
datagod
datagod
Asked: 2012-04-14 06:57:10 +0800 CST2012-04-14 06:57:10 +0800 CST 2012-04-14 06:57:10 +0800 CST

Qual é o método preferido para distribuir atualizações para centenas de bancos de dados

  • 772

Estou tentando determinar a melhor maneira de distribuir scripts SQL para centenas de servidores distribuídos. Eu tenho um pacote SSIS lento e um processo OSQL/BATCH muito rápido.

Estou em um projeto em que temos várias centenas de servidores de banco de dados implantados no campo. Preciso ser capaz de consultar rotineiramente os servidores e/ou aplicar scripts de atualização de banco de dados.

Quando tínhamos apenas 20 servidores, criei um pacote SSIS para obter uma lista de servidores e processá-los um por vez. O pacote SSIS funciona muito bem, tem toneladas de tratamento e registro de erros, etc. Ele é capaz de capturar conjuntos de resultados de cada servidor e armazená-los em um local central para análise posterior. Devido à maneira como o construí, no entanto, ele processa cada servidor em série. 20 servidores leva cerca de 10 minutos para processar. Estou em um ponto em que esse método é simplesmente muito lento.

Antes de investir mais tempo reescrevendo este pacote para gerar outros pacotes (um para cada servidor), esperava obter alguns conselhos de outras pessoas que enfrentaram uma situação semelhante.

Você usaria o SSIS dessa maneira ou mudaria para powershell ou até mesmo OSQL?

Quase como uma brincadeira, vasculhei meus arquivos e retirei um processo em lote que escrevi há 12 anos para aplicar scripts em servidores remotos. Fiz alguns ajustes (mudei para OSQL) e ele roda incrivelmente rápido. Posso processar 100 servidores em menos de 20 segundos. Eu o inicio de uma máquina com Windows 7, que não engasga com tantas janelas de comando sendo abertas.

A desvantagem da solução OSQL/BATCH é que o arquivo em lote é codificado com nomes de servidor e senhas. Mas é tão rápido que continuarei a usá-lo até encontrar uma solução melhor.

Pacote SSIS - O pacote SSIS atual faz o seguinte: - conecta-se a um servidor central - recupera uma lista de servidores que precisam ser consultados - usando um contêiner forloop, conecta-se a cada servidor (em série) e executa a consulta - se a consulta retorna um conjunto de resultados, esta informação é capturada e armazenada no servidor central - o servidor central é atualizado para refletir o sucesso/falha de cada servidor - todos os erros são registrados no servidor central

sql-server
  • 2 2 respostas
  • 843 Views

2 respostas

  • Voted
  1. Best Answer
    JNK
    2012-04-14T07:20:12+08:002012-04-14T07:20:12+08:00

    Eu adaptaria sua solução rápida para algo mais facilmente extensível, como PowerShell .

    Seria trivial fazer com que o PS lesse um arquivo de texto para obter uma lista de servidores a serem executados e outro arquivo ou arquivos para quais comandos executar.

    Você também pode adicionar tratamento de erros e coisas do tipo em seu lote SSIS e fazer com que ele seja acionado de forma assíncrona para que funcione em todos os seus servidores simultaneamente.

    • 10
  2. Eric Higgins
    2012-04-14T14:44:35+08:002012-04-14T14:44:35+08:00

    O PowerShell é a resposta, mas se você já tem um script extremamente rápido, pode considerar o uso da funcionalidade Central Management Server . Ele não faz muitas coisas que tenho tentado fazer ultimamente, mas faz uma coisa super bem que atinge muitos servidores rapidamente com o script se você já estiver no SSMS.

    • 2

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