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 / 48760
Accepted
Jon of All Trades
Jon of All Trades
Asked: 2013-08-27 12:05:39 +0800 CST2013-08-27 12:05:39 +0800 CST 2013-08-27 12:05:39 +0800 CST

Quais etapas são necessárias para reiniciar com segurança uma máquina que hospeda o Microsoft SQL Server?

  • 772

Existem etapas especiais necessárias para evitar a corrupção de dados ao reiniciar um servidor que hospeda uma instância do MS SQL Server?

Por exemplo, encontrei recentemente a recomendação de interromper o serviço SQL manualmente. Meu entendimento é que isso é tratado pelo shutdownprocesso do Windows.

Tenho certeza de que há um zilhão de passos que pessoas individuais podem recomendar, como o que acabei de mencionar, mas gostaria de evitar repetir práticas obsoletas ou supersticiosas . Existem recomendações da Microsoft ou padrões generalizados do setor?


Esta pergunta está relacionada ao procedimento de curto prazo de reinicialização de uma máquina. Há outra questão em relação ao procedimento de longo prazo de garantir que uma máquina não seja utilizada, antes de desligá-la permanentemente.

sql-server best-practices
  • 4 4 respostas
  • 75158 Views

4 respostas

  • Voted
  1. Best Answer
    Kin Shah
    2013-08-27T14:46:23+08:002013-08-27T14:46:23+08:00

    Você não precisa ser chique/preocupado ou assustado quando estiver reiniciando o sql server.

    Apenas certifique-se de que você não tenha transações de longa duração. O melhor é reiniciar o sql server usando o console ou o comando de desligamento durante um período de atividade baixa/mínima, também chamado de janela de manutenção, para minimizar o impacto em seus negócios.

    Se você tiver alguma configuração de DR e não quiser ficar inativo, o melhor é fazer o failover e reiniciar o nó passivo ou secundário.

    O encerramento limpo do SQL Server ocorre nos cenários abaixo:

    • Pare o servidor sql usando o console de serviços.
    • Desligando seu servidor
    • executando o comando SHUTDOWN no ​​SSMS

    Acima de todas as situações, o sql server encerra todos os seus bancos de dados de forma limpa e, em seguida, encerra o serviço que envolve confirmar ou reverter todas as transações, gravar todas as páginas sujas no disco e, em seguida, gravar uma entrada no log de transações.

    Desligamento incorreto do sql server:

    • desligar com nowait
    • puxando o cabo de alimentação do seu servidor (se você tiver acesso).
    • matando sqlserver.exe do gerenciador de tarefas
    • Falha do Dirve em que os binários do servidor sql, exe, bancos de dados do sistema residem ou falha na unidade do sistema Windows .. geralmente unidade C:\.
    • superaquecimento do servidor causando o desligamento (raramente deve acontecer !!)

    O SQL Server sempre tentará fazer um desligamento limpo... a menos que você faça algo impróprio como indicado acima.

    Alguns links de leitura muito bons sobre o que acontece nos bastidores durante a fase de recuperação:

    • Noções básicas sobre registro e recuperação no SQL Server
    • Entendendo como a restauração e a recuperação de backups funcionam no SQL Server
    • Visão geral simples do processo de recuperação do SQL Server
    • 18
  2. Evan Carroll
    2018-01-17T12:44:16+08:002018-01-17T12:44:16+08:00

    Tudo isso é detalhado exaustivamente nesta página.

    • Iniciar, parar, pausar, retomar, reiniciar os serviços do SQL Server

    Sendo que sua pergunta pergunta especificamente "há algum recomendado pela Microsoft " estou inclinado a pensar que isso é contraproducente ter essa discussão aqui. O artigo detalha o processo através

    • Usando qualquer um
      • linha de comando
      • Powershell,
      • SQL Server Management Studio (GUI)
    • Para 2008, 2012, 2014, 2016.
    • Para tanto
      • Mecanismo de banco de dados
      • ou, Agente

    Se esses passos são satisfatórios ou não, seria minha opinião, o que você não quer. Portanto, a resposta certa estará sempre mais atualizada lá.

    Parando o serviço, antes de desligar

    é necessário ou recomendado fazer isso antes de desligar um servidor que esteja executando serviços SQL.

    Não, não é necessário. Quando o Kernel do Windows enviar o sinal de desligamento para o SQL Server, ele o fará de maneira segura e o sistema aguardará a conclusão. Falando em geral, qualquer coisa construída com a capacidade de desligar com segurança não precisa ser desligada manualmente, e é lógico que todos os aplicativos da Microsoft sigam sua própria API e procedimentos vinculados às fases PRESHUTDOWN, ou . SHUTDOWNA partir dos documentos PRESHUTDOWN, que eu presumo que eles estejam usando,

    Notifica um serviço que o sistema será encerrado. Os serviços que precisam de tempo adicional para executar tarefas de limpeza além da restrição de tempo no desligamento do sistema podem usar essa notificação. O gerenciador de controle de serviço envia essa notificação aos aplicativos que se registraram para ela antes de enviar uma SERVICE_CONTROL_SHUTDOWNnotificação aos aplicativos que se registraram para essa notificação.

    Um serviço que lida com essa notificação bloqueia o desligamento do sistema até que o serviço seja interrompido ou o intervalo de tempo limite de pré-desligamento especificado por SERVICE_PRESHUTDOWN_INFOexpire. Como isso afeta a experiência do usuário, os serviços devem usar esse recurso somente se for absolutamente necessário para evitar perda de dados ou tempo de recuperação significativo na próxima inicialização do sistema.

    Como pode ser necessário, suponho que é assim que o SQL Server funciona.

    • 6
  3. Ali Razeghi - AWS
    2013-08-27T12:13:18+08:002013-08-27T12:13:18+08:00

    Não exatamente quando se trata de desligar e prevenir a corrupção do banco de dados. O MS SQL Server é um produto muito maduro e as chances de causar um problema de corrupção por um simples 'desligamento' seriam um cenário de borda. É muito mais provável que você cause corrupção por não executar CHECK DB ou ter a validação de soma de verificação definida em seu banco de dados.

    Talvez ter ferramentas externas tocando diretamente os arquivos MDF/NDF/LDF possa causar problemas, como tentar 'mover' os arquivos entre os desligamentos ou fazer com que algum software tente bloquear os arquivos durante o desligamento. Eu vi o Windows Clustering estragar quando um disco que hospeda arquivos de banco de dados está cheio, mas não causa especificamente 'corrupção de banco de dados'.

    Se você quiser ajudar a garantir um desligamento ou failover suave, execute um ponto de verificação, verifique se está executando o DBCC CHECKDB com frequência (pelo menos vezes o suficiente para poder recuperar dados corrompidos de um backup) e verifique se todas as dependências externas estão cuidados como o espelhamento.

    Se algum especialista tiver outras 'melhores práticas', eu adoraria ouvi-las, mas vasculhando os blogs e recursos on-line nos últimos anos, não vi muito em corrupção de dados e um simples 'desligamento/reinicialização'.

    • 4
  4. Gozzy
    2019-06-20T04:17:15+08:002019-06-20T04:17:15+08:00

    A maneira como eu faço isso: 1) Desabilite todos os trabalhos. 2) Certifique-se de que nenhum trabalho esteja sendo executado no momento. 3) Execute SP_Who3 com frequência para verificar a atividade, também execute sp_whoisactive para obter mais informações. 4) Se não houver atividade e a única coisa que você vê é sua consulta sp_who3 atual 5) Coloque os bancos de dados offline 6) Clique com o botão direito do mouse na parte superior do banco de dados e clique em Parar 7) Verifique se os serviços estão em um estado parado em services.msc 8 ) Feito

    PS. Caso você tenha um PAGEIOLATCH / IOCOMPLETION ou qualquer outra atividade no SP_Who3, não faça o acima, pois isso pode colocar seus bancos de dados em modo de recuperação.

    • -1

relate perguntas

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

  • Melhores práticas para conectar bancos de dados que estão em diferentes regiões geográficas

  • 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 fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Conceder acesso a todas as tabelas para um usuário

    • 5 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 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

    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
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • 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

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