Web design and hosting, database, cloud and social media solutions that deliver business results
  • Solução de negócio
    • Automação Robótica de Processos
    • Programas
    • Serviços de banco de dados
      • Relatórios
      • Integração de dados
    • Design de Websites
      • Design de logotipo
      • Gateways de pagamento
      • Localização e Tradução Web
      • Otimização de sites
      • Segurança do site
      • Ferramentas Técnicas
    • Serviços Empresariais
      • Amazon Web Services
      • Serviços do Google Cloud
      • Microsoft Azure
    • Microsoft Office
    • Mídia Social
  • Sobre
    • Carreiras
      • Tradutor Inglês-Espanhol
      • Tradutor Inglês-Turco
      • Tradutor Inglês-Japonês
      • Tradutor Inglês-Português
    • Equipe
      • Adrian Anandan
      • Ali Al Amine
      • Ayse Hur
      • Chester Copperpot
      • Gavin Clayton
      • Sai Gangu
      • Suneel Kumar
      • Surya Mukkamala
    • Portfolio
عربى (AR)čeština (CS)Deutsch (DE)English (EN-GB)English (EN-US)Español (ES)فارسی (FA)Français (FR)हिंदी (HI)italiano (IT)日本語 (JA)polski (PL)Português (PT)русский (RU)Türk (TR)中国的 (ZH)

Um plano de manutenção completo para o SQL Server 2008

Plano de manutenção do SQL Server que pode fazer backup e restaurar arquivos de banco de dados em vários servidores, reorganizar ou reconstruir índices dependendo do tempo

Otimizando Bancos de Dados

Plano de manutenção do banco de dados

Esta seção é dedicada a manter os bancos de dados otimizados. Neste exemplo, vamos configurar o código para fazer o seguinte (veja um diagrama aproximado de como os servidores estão conectados);

  • Banco de dados de backup do servidor ativo para uma pasta de backup compartilhada
  • Reindexar banco de dados
  • Mate todas as conexões e restaure o banco de dados no servidor de relatórios.
  • Os servidores vinculados estarão em um artigo separado em breve
  • Log Shipping estará em um artigo separado em breve

Ao fazer isso entre servidores, você precisará permitir que a conta que o SQL Server está executando acesse o sistema de arquivos dos servidores de destino.

Todo o código SQL é executado a partir de um banco de dados de utilitários e o esquema é definido como "maint"

Há uma série de outros artigos que escrevemos abaixo que podem ser do seu interesse.

Plano de Manutenção Completo

Agora podemos gerenciar todos esses segmentos de código separados com outro procedimento que os chamará na ordem correta, isso será colocado no servidor ativo. O código é executado da seguinte forma;

  • Trabalhe o tempo
  • Se for à noite, reindexe o banco de dados
  • Execute um backup do banco de dados (adicione onde precisar)
  • Se for à noite, faça backup dos outros bancos de dados (adicione onde precisar)
  • Elimine conexões e restaure o banco de dados (adicione onde precisar)

Este código foi testado e executado por períodos de meses sem problemas.

Observe que a redução de arquivos de log e arquivos de banco de dados deve ser mínima, executando um backup você está esvaziando o log (embora ele retenha o espaço usado). Se for necessário quando deve ser executado fora do horário normal de trabalho.

SQL Code

Use [utilities]GOCREATE PROC [maint].MaintenancePlan AS BEGINDECLARE @BackupType VARCHAR(1)='E'IF DATEPART(HOUR,GETDATE()) BETWEEN 5 AND 21 BEGINSET @BackupType='D'END--EXEC ('USE TempDb; DBCC SHRINKFILE(templog, 0)');--This is only needed when space is at a premium!--Re-index LiveIF @BackupType='E' EXEC [maint].DatabaseReIndex 'dbname'--Create BackupBACKUP DATABASE TO DISK=N'{backuplocation}{dbname}.bak'WITH NOFORMAT, INIT, NAME =N'{dbname}', SKIP, NOREWIND, NOUNLOAD, STATS= 10;--EXEC ('USE ; DBCC SHRINKFILE(_log, 0)');--This is only needed when space is at a premium!--Backup Other Files at NightIF @BackupType='E' BEGIN  EXEC [maint].DatabaseReIndex 'dbname'  --Backup Others  BACKUP DATABASE [databasename] TO DISK=N'{backuplocation}{dbname2}.bak'  WITH FORMAT,INIT, NAME =N'{dbname2}',SKIP, NOREWIND, NOUNLOAD,  STATS= 10END--Restore Backups on other serverEXEC [server].[utilities].[maint].KillConnections 'dbname';EXEC [server].[utilities].[maint].RestoreDatabase_{dbname};--Restore Backups on other server for db_2 etcIF @BackupType='E' BEGIN  EXEC [server].[utilities].[maint].KillConnections 'dbname2';  EXEC [server].[utilities].[maint].RestoreDatabase_{dbname2};ENDENDGO

Banco de dados de backup

backup database screenshot

Para obter o código para fazer backup de seu banco de dados, é mais fácil fazer o script do código do SSMS.

Siga o processo que você normalmente usaria e selecione "Ação de script para nova janela de consulta".

Copie este código no plano de manutenção.

Reindexar banco de dados

Em seguida, podemos adicionar algum código para reindexar nosso banco de dados, novamente este é um procedimento armazenado de compartilhamento onde você só precisa informar ao sistema o nome.

Para evitar a duplicação de código, você pode ler sobre isso no link abaixo.

Mais: Procedimento armazenado para reconstruir ou reorganizar índices de banco de dados fragmentados

Eliminar conexões

Ao realizar uma restauração no banco de dados, você pode ter apenas uma conexão com ele (o processo que executa a restauração), portanto, podemos criar um procedimento armazenado para fechar todas as conexões além do processo atual. Criamos novamente um artigo separado para isso.

Mais: Procedimento armazenado para eliminar todas as conexões com o banco de dados selecionado

Restaurar banco de dados

Esse código também pode ser script do SQL Server Management Studio. Se você adicionar esse código a um procedimento armazenado, poderá chamá-lo de outros processos e até de outros servidores com muita facilidade. Movemos isso para um artigo separado para cobrir mais opções.

Mais: Restaurar banco de dados do procedimento armazenado

Author

Was this helpful?

Please note, this commenting system is still in final testing.
Copyright Claytabase Ltd 2020

Registered in England and Wales 08985867

RSSLoginLink Política de CookiesSitemap

Social Media

facebook.com/Claytabaseinstagram.com/claytabase/twitter.com/Claytabaselinkedin.com/company/claytabase-ltd

Get in Touch

+442392064871info@claytabase.comClaytabase Ltd, Unit 3d, Rink Road Industrial Estate, PO33 2LT, United Kingdom
As configurações neste site são definidas para permitir todos os cookies. Estes podem ser alterados em nossa página de configurações e políticas de cookie. Ao continuar a usar este site, você concorda com o uso de cookies.
Ousia Logo
Logout
Ousia CMS Loader