SQL do Azure – Runbook para automação de DTUs

Runbook automação

Aprenda a montar uma rotina RUNBOOK, para alterar a configuração do um database (Basic, Standard e Premium) de forma automatizada, na hora que desejar.

Resumo:

  1. Crie um Banco de Dados SQL do Azure.
  2. Instale uma nova conta de automação no Azure.
  3. Acesse a guia de credenciais da conta de automação e configure uma nova credencial para uma instância do SQL Server.
  4.  Crie um novo runbook e cole o código.
    1.  Script apresentado como exemplo.
  5.  Publique o runbook e configure um alerta no SQL Server do Azure para ‘chamar’ o runbook quando o consumo atingir 80% de DTUs.

Passo a passo:

Acesse sua conta no Azure.

Observação – Caso você ainda não tenha criado monte seu Resource Group. Podemos cria-lo antes ou quando estivermos montando o Database. Não esqueça que teremos que usar o mesmo Resource  Group  em todos os  processos nessa configuração.

Criar o Grupo de Recurso

  1. Clique em Grupos de Recurso
  2. Selecione Adicionar
  3. Insira um nome para o seu Grupo de Recurso (DumasVez)
  4. Selecione uma região onde será criado seu recurso (EUA) Leste dos EUA 2);
  5. Revisar + criar
  6. Validação aprovada clica em CRIAR.

Criar o Banco de Dados SQL do Azure

No menu à esquerda selecione, a opção Banco de Dados SQLSerá apresentado a tela para criar o Banco de dados. Selecione + Adicionar

  1. Na aba Basic selecione seu grupo de recurso
  2. De um nome ao seu banco de dados
  3. Servidor -> clique em criar novo

Nome do Servidor =>NOMESERVIDOR.database.windows.net

Logon do administrador => admindumasvez. Senha xxxxxx Confirma xxxxxx

Localização=> Obs. Selecione uma localização que presta esse serviço

  • Deseja usar pool elástico SQL -> Não
  • Computação +Armazenamento -> Tipo de máquina
  • Revisar  + Criar (selecione)

Criar uma conta de Automação

  1. Clique na opção criar um recurso.
  2. Na aba pesquisar digite automação ou Automation
  3. Ao retornar o resultado clicar em CRIAR.
  4. Digite um nome para sua automação (AutoDumasVez)
  5. Selecione seu Grupo de Recurso ou Clicar Criar novo
  6. Selecione a região que deseja salvar sua Automação (a mesma do Grupo de Recurso) (EUA) Leste dos EUA 2);
  7. Criar

Abra sua rotina de Automação

Nesse passo iremos gerar credenciais, vínculo entre a automação e credenciais e em seguida, o agendamento da automação.

Configure as credenciais de acesso ao SQL do Azure, criado anteriormente:

Runbooks

Selecione a opção Runbook do menu lateral, para em seguida, será apresentado a tela para criar seu runbook seguido da sua publicação.

Ao clicar em criar Runbook, digite o nome , o tipo (PowerShell, Python), descrição e botão criar.

Será apresentado a tela Editar Runbook, no lado direito você coloca seu script “PowerShell”. Salva e publica.

Observação ao editar o script será necessário publicar novamente.

Script utilizado para rodar o runbook:

param (
[Parâmetro (obrigatório = $ true)] [ValidateSet ("Basic", "Standard", "premium", "premiumrs")] [string] $ EDITION,
[Parâmetro (obrigatório = $ true)] [ValidateSet ('basic','S0', 'S1', 'S2', 'S3', 'P1', 'P2', 'P3', 'P4', 'P6', 'P11 ',' P15 ',' PRS1 ',' PRS2 ',' PRS4 ',' PRS6 ')] [string] $ SERVICE_OBJECTIVE,
[Parâmetro (obrigatório = $ false)] [string] $ DBSIZE = "250GB",
[Parâmetro (obrigatório = $ true)] [string] $ sqlCreadVariableName,
[Parâmetro (obrigatório = $ true)] [string] $ SqlServer,
[Parâmetro (obrigatório = $ true)] [string] $ Database,
[Parâmetro (obrigatório = $ false)] [string] $ SqlServerPort = "1433"
)

$ SQLCred = Get-AutomationPSCredential -Name $ sqlCreadVariableName
if (-não $ SQLCred) {
    Jogue "Sem creds"
}

#https: //msdn.microsoft.com/en-us/library/mt574871.aspx

$ SqlUsername = $ SQLCred.UserName
$ SqlPass = $ SQLCred.GetNetworkCredential (). Senha

$ Conn = Novo Objeto System.Data.SqlClient.SqlConnection ("Servidor = tcp: $ SqlServer, $ SqlServerPort; Banco de Dados = $ Banco de Dados; ID do Usuário = $ SqlUsername; Senha = $ SqlPass; Trusted_Connection = False; Criptografar = Verdadeiro; Conexão Tempo limite = 30; ")

$ Conn.Open ()

$ Query = ("ALTER DATABASE {0} MODIFY (EDIÇÃO = '{1}', SERVICE_OBJECTIVE = '{2}', MAXSIZE = {3})" -f $ Banco de dados, $ EDITION, $ SERVICE_OBJECTIVE, $ DBSIZE)
write-host $ Query
$ Cmd = novo objeto system.Data.SqlClient.SqlCommand ($ Query, $ Conn)
$ Cmd.CommandTimeout = 120

$ Ds = Novo Objeto system.Data.DataSet
$ Da = New-Object system.Data.SqlClient.SqlDataAdapter ($ Cmd)
[vazio] $ Da.fill ($ Ds)

$ Ds.Tables.Column1
$ Conn.Close ()

Runbook – Teste (Nome do Runbook Criado)

Apresenta a tela no menu Visão Geral, do Runbook onde você poderá INICIAR, EXIBIR, EDITAR e AGENDAR SEU RUNBOOK. Próximo passo vamos agendar nosso runbook.

  1.  Agendas
  1. Clicar no botão Agendamento
    1. Agenda
    1. Criar uma nova Agenda
      1. Nome
      1. Descrição
      1. Data de início e Fim
      1. Recorrência

Observação: Opção Recorrente, você pode configurar para que sua rotina rode, 1 vez por mês, semana, por hora, 3 vezes ao dia, da forma que assim desejar.

Vincular os agendamentos

Ao criar o agendamento, selecione uma das opções criadas (Agendamento) em seguida clique na opção abaixo “Parâmetros”.

Obs.: Preencher todos os campos referente aos parâmetros.

Esses parâmetros vinculado ao Runbook, será processado dando acesso ao banco e dados, passando as alterações que desejamos que seja feita, quando essa runbook for disparado.