Database
 sql >> Base de Dados >  >> RDS >> Database

Métodos de automação do Azure


Ao longo do ano passado, apresentei muitas sessões no Banco de Dados SQL do Azure, além de criar vários artigos e blogs. Muitas vezes me perguntam se a manutenção do banco de dados ainda é um fator importante ao usar o Banco de Dados SQL do Azure. Sim – tarefas como manutenção de índice, atualizações de estatísticas e verificação de consistência ainda são importantes, e cabe ao DBA agendar essas tarefas. A confusão decorre do Banco de Dados SQL do Azure ser uma Plataforma como Serviço e a Microsoft ser responsável pela infraestrutura, além de lidar com os backups. Embora alguns aspectos da corrupção física possam ser considerados, a corrupção lógica no banco de dados não é. Por esse motivo, ainda recomendo que os clientes executem DBCC CHECKDB para garantir que estejam totalmente protegidos.

O problema que surge com qualquer novo DBA trabalhando com o Banco de Dados SQL do Azure é que não há um SQL Server Agent integrado como estamos acostumados com o SQL Server Standard e Enterprise Editions.

Para agendar trabalhos de manutenção em um Banco de Dados SQL do Azure, você tem várias opções:
  • Servidores vinculados
  • Planos de manutenção de banco de dados
  • Powershell
  • Serviços do Azure
  • Trabalhos elásticos

As demonstrações a seguir pressupõem que você já configurou contas de logon, regras de firewall e outras configurações de segurança para acessar remotamente seus Bancos de Dados SQL do Azure.

Servidores Vinculados


Conectar-se a um Banco de Dados SQL do Azure usando um servidor vinculado é uma abordagem muito comum, pois a maioria dos DBAs já está familiarizada com a criação e o gerenciamento de servidores vinculados. As duas maneiras mais comuns de ver clientes usando servidores vinculados são com o SQL Server Native Client ou o Microsoft OLE DB Provider for ODBC Drivers como provedor. Se você usar o cliente nativo, precisará fornecer o nome do servidor como fonte de dados; no entanto, se estiver usando o driver ODBC, você precisará obter a string de conexão e usá-la como a string do provedor. Esses dois valores podem ser encontrados no Portal do Azure para seu banco de dados. Depois de clicar em seu banco de dados, você verá o nome do servidor e uma opção para mostrar as strings de conexão do banco de dados. Esse nome de servidor, sqlperformance.database.windows.net, é o que eu usaria para a fonte de dados do SQL Server Native Client.



Ao clicar em “Mostrar strings de conexão do banco de dados”, você atualmente tem opções para ADO.NET, JDBC, ODBC e PHP. Para ver a string de conexão para ODBC, clique na guia ODBC.



Em seguida, você precisará criar o servidor vinculado no SSMS. Em "Objetos de Servidor", clique com o botão direito do mouse em "Servidores Vinculados", selecione "Novo Servidor Vinculado" e digite as informações necessárias, dependendo da escolha do seu provedor de fonte de dados.



Em seguida, clique em “Segurança” e defina suas preferências. Normalmente, vejo a opção “Ser feito usando este contexto de segurança” com um login e senha remotos fornecidos.

Depois de ter tudo isso definido, clique em OK. Agora você pode clicar com o botão direito do mouse em seu novo servidor vinculado e testar a conexão.

Agora você pode fazer referência ao servidor vinculado para chamar quaisquer procedimentos armazenados, como Ola Hallengren's Index Optimize e DatabaseIntegrityCheck diretamente no Banco de Dados SQL do Azure em uma etapa de trabalho do SQL Agent.

Planos de manutenção de banco de dados


Se você planeja usar um plano de manutenção de banco de dados para sua manutenção, o processo é um pouco mais fácil. Para começar, basta criar seu plano de manutenção manualmente ou usando o assistente. Se estiver usando o assistente, depois de criar o plano de manutenção, você poderá editar o plano e adicionar a conexão do Azure. Em seguida, você altera cada tarefa para usar a nova conexão. Sua tela de conexão deve ser semelhante à seguinte:



Agora você pode agendar seus planos de manutenção de banco de dados para serem executados durante a janela de manutenção.

PowerShell


O PowerShell é uma excelente opção para trabalhar com tarefas repetíveis e usar o PowerShell com o Banco de Dados SQL do Azure é direto. Você pode usar a função Invoke-SqlCmd para consultar ou executar instruções em seus bancos de dados.

Uma abordagem comum é usar um script semelhante a:
  $params = @{
   'Database' = 'YourDatabase'
   'ServerInstance' = 'instance.database.windows.net'
   'Username' = 'UserName'
   'Password' = 'ComplexP@$$word'
   'Query' = 'Your Query Here'
  }
  Invoke-Sqlcmd @params

Para sua consulta, você pode usar as verificações de otimização e consistência de índice de Ola Hallengren ou qualquer script personalizado que esteja usando. Você precisará agendar seus scripts do PowerShell usando qualquer agendador que use para sua organização.

Serviços do Azure


A automação do Azure está integrada à plataforma do Azure e, para começar, você precisa criar uma conta de automação. Você precisará fornecer um nome para a conta, selecionar sua assinatura, grupo de recursos, local e determinar se deseja criar uma conta Azure Run As.



Depois de criar sua conta, você pode começar a criar runbooks. Você pode fazer praticamente qualquer coisa com os runbooks. Existem vários livros de execução existentes que você pode navegar e modificar para seu próprio uso, incluindo provisionamento, monitoramento, gerenciamento de ciclo de vida e muito mais.

Você pode criar os runbooks offline ou usando o Portal do Azure, e eles são criados usando o PowerShell. Neste exemplo, reutilizaremos o código da demonstração do PowerShell e também demonstraremos como podemos usar o agendador de serviço do Azure integrado para executar nosso código do PowerShell existente e não precisar depender de um agendador local, agendador de tarefas ou VM do Azure para agendar um trabalho.

Comece clicando em Runbooks



Em seguida, clique em "Adicionar um runbook"



Clique em "Criar um novo runbook"



Forneça um nome e um tipo de runbook, selecionei o PowerShell para minha demonstração.



Você está então em uma tela de edição para seu novo runbook. Aqui é onde você pode configurar os detalhes e criar seu runbook. Para esta demonstração, estou apenas executando um script do PowerShell para chamar um procedimento armazenado em um banco de dados. Depois de ter todo o seu código elaborado, você pode publicar e salvar seu runbook.



A partir daqui, você pode iniciar o runbook e validar se tudo funciona adequadamente, bem como agendar o runbook para ser executado em horários específicos. Vamos percorrer este processo clicando em "Agendar"



Precisaremos clicar em “Vincular um agendamento ao seu runbook” e como não criamos nenhum agendamento antes, precisaremos definir um novo clicando em “Criar um novo agendamento”.



Assim como fazemos no SQL Server Agent, forneça um nome de agendamento, uma descrição, se desejar, quando iniciar e com que frequência deve ser executado. Eu defino este ocorrer todos os dias às 2 da manhã.



Agora tenho um runbook publicado, programado para ser executado todas as noites às 2h para realizar a manutenção do índice em um dos meus bancos de dados.

Trabalhos elásticos


O Elastic Jobs ainda está em pré-visualização, então não entrarei em detalhes devido à alta probabilidade de que telas e funcionalidades mudem.

O uso de trabalhos elásticos requer que você tenha definido um pool de banco de dados elástico e atribua pelo menos um banco de dados ao pool para executar trabalhos. Depois de criar o pool elástico e adicionar um banco de dados, você pode clicar em criar trabalho.



Dê ao seu trabalho um nome descritivo e forneça o nome de usuário e a senha para se conectar aos bancos de dados, bem como o script que você gostaria de executar. Clique em salvar e agora você tem um trabalho elástico.



Você pode então optar por executar o trabalho, visualizar o script ou cancelar o trabalho se estiver em execução.



Embora haja certas coisas que você pode fazer por meio do Portal do Azure com os trabalhos elásticos, as opções reais de energia e configuração estão disponíveis por meio da API do PowerShell. Para agendar um trabalho, você precisa usar o cmdlet New-AzureSQLJobSchedule. Mais detalhes sobre os recursos adicionais e como agendar trabalhos podem ser encontrados aqui:
  • Crie e gerencie trabalhos elásticos do Banco de Dados SQL usando o PowerShell

No geral, gosto do recurso de trabalhos elásticos e espero que, quando estiver disponível para todos, mais funcionalidades sejam incorporadas ao Portal do Azure sem precisar gerenciá-lo com o PowerShell. Eu gosto que você possa executar o T-SQL diretamente, sem precisar executá-lo no PowerShell e como ele pode ser executado em todos os bancos de dados do pool.

Resumo


Quando se trata de Bancos de Dados SQL do Azure, sim, você ainda é responsável por determinadas manutenções em seus bancos de dados. Você tem vários métodos de agendamento de trabalhos e, dependendo de sua necessidade e do tamanho de seu ambiente, algumas opções são as melhores soluções. Servidores vinculados e planos de manutenção de banco de dados são métodos rápidos e fáceis se você tiver VMs locais ou do Azure com o servidor SQL já configurado e uma pequena implantação do Azure. O PowerShell é sempre uma boa opção, basta encontrar uma solução para agendar a execução dos scripts. A automação do Azure é uma solução muito robusta que permite criar runbooks para realizar praticamente qualquer coisa e agendar facilmente os runbooks e trabalhos elásticos é outra ótima solução baseada no Azure se você tiver tarefas que precisam ser executadas em um grupo de bancos de dados em um pool elástico.