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:
- Crie um Banco de Dados SQL do Azure.
- Instale uma nova conta de automação no Azure.
- Acesse a guia de credenciais da conta de automação e configure uma nova credencial para uma instância do SQL Server.
- Crie um novo runbook e cole o código.
- Script apresentado como exemplo.
- 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
- Clique em Grupos de Recurso
- Selecione Adicionar
- Insira um nome para o seu Grupo de Recurso (DumasVez)
- Selecione uma região onde será criado seu recurso (EUA) Leste dos EUA 2);
- Revisar + criar
- 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
- Na aba Basic selecione seu grupo de recurso
- De um nome ao seu banco de dados
- 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
- Clique na opção criar um recurso.
- Na aba pesquisar digite automação ou Automation
- Ao retornar o resultado clicar em CRIAR.
- Digite um nome para sua automação (AutoDumasVez)
- Selecione seu Grupo de Recurso ou Clicar Criar novo
- Selecione a região que deseja salvar sua Automação (a mesma do Grupo de Recurso) (EUA) Leste dos EUA 2);
- 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.
- Agendas
- Clicar no botão Agendamento
- Agenda
- Criar uma
nova Agenda
- Nome
- Descrição
- Data de início e Fim
- 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.