Exercício – Elevada disponibilidade de fins gerais
Na unidade anterior, aprendeu sobre a arquitetura de elevada disponibilidade do SQL do Azure. Neste exercício, você aprenderá como a camada de Propósito Geral do Banco de Dados SQL do Azure se comporta de forma semelhante a uma instância de cluster de failover local. Esta funcionalidade pode ser demorada ou complicada de configurar no local, mas com o SQL do Azure está pronta a utilizar.
Neste exercício, vai utilizar a ferramenta ostress que pode ter utilizada no módulo anterior para criar uma carga de trabalho. Em seguida, vai iniciar uma ativação pós-falha com o módulo do Azure PowerShell no Azure Cloud Shell. Por fim, irá ver o efeito da ativação pós-falha na carga de trabalho ostress.
Elevada disponibilidade básica no escalão de serviço Fins Gerais do SQL do Azure
Neste exercício, irá seguir os seguintes passos:
- Executar a carga de trabalho de ostress.
- Confirmar que o ambiente está configurado corretamente.
- Utilizar o PowerShell para iniciar uma ativação pós-falha da Base de Dados SQL do Azure.
- Ver os resultados em ostress.
- Procurar sinais no portal de que ocorreu uma ativação pós-falha.
Executar a carga de trabalho de ostress
O primeiro passo é criar uma carga de trabalho prolongada. Esta carga de trabalho permite-lhe ver como uma ativação pós-falha afeta a capacidade de ler e escrever dados e quanto tempo demora a fazer uma ativação pós-falha no escalão de serviço Fins Gerais para a Base de Dados SQL do Azure. Vai utilizar a ferramenta ostress.
Abra uma nova janela da Linha de Comandos no computador local. Utilize
cd
para ir para o diretório no repositório que clonou ou transferiu anteriormente e que contém o módulo de disponibilidade. Por exemplo, poderá utilizar este comando:cd C:\Users\username\mslearn-azure-sql-fundamentals\05-Availability
O ficheiro executável ostress está nesta pasta (É pequeno.) A carga de trabalho ostress se conecta e executa uma consulta simples 50.000 vezes.
Utilize o seguinte script de ostress para executar a carga de trabalho. Substitua
serverName
pelo nome do servidor lógico da Base de Dados SQL do Azure. Substituapassword
pela sua palavra-passe..\ostress.exe -S"serverName.database.windows.net" -Q"SELECT COUNT(*) FROM SalesLT.Customer" -U"cloudadmin" -d"AdventureWorks" -P"password" -n1 -r50000
Se a carga de trabalho estiver a ser executada corretamente, deverá ver o resultado da consulta,
847
, a aparecer repetidamente na janela da Linha de Comandos.Se quiser parar a execução da carga de trabalho ostress antes de esta estar concluída, poderá selecionar CTRL+C no terminal.
Se quiser executar novamente a carga de trabalho, poderá executar de novo o comando.
Utilizar PowerShell no Azure Cloud Shell para iniciar uma ativação pós-falha e observar os resultados
No terminal do Azure Cloud Shell, no lado direito desta página, execute este script do PowerShell para configurar o ambiente:
$resourceGroup = "<rgn>Sandbox resource group name</rgn>" $database = "AdventureWorks" $server = Get-AzureRmSqlServer -ResourceGroupName $resourceGroup $server = $server.ServerName # Specify your default resource group and Azure SQL Database logical server az configure --defaults group=$resourceGroup sql-server=$server # Confirm the defaults are set az configure --list-defaults
Configure as janelas para que possa ver este browser e a janela da Linha de Comandos ao mesmo tempo.
Execute este código no terminal do Azure Cloud Shell:
# Create a failover Invoke-AzSqlDatabaseFailover -ResourceGroupName $resourceGroup ` -ServerName $server ` -DatabaseName $database
Observe os resultados em ostress a partir da janela da Linha de Comandos. Enquanto este comando estiver em execução, deverá observar todas as alterações apresentadas na janela da Linha de Comandos. Vai reparar que não consegue aceder à base de dados enquanto a ativação pós-falha ocorre. A ativação pós-falha será concluída após 30 segundos e verá que a carga de trabalho é executada novamente com sucesso. A lógica de repetição na aplicação é importante, porque se o Azure ativar a ativação pós-falha (por diversas razões), não vai querer que a aplicação falhe ou sofra tempos de inatividade por um período superior ao de ativação pós-falha.
Esta capacidade de criar uma ativação pós-falha a pedido pode ser útil em determinados cenários. Observe que o serviço limita a sua execução frequente. Execute o comando seguinte para tentar outra ativação pós-falha:
# Create a failover again Invoke-AzSqlDatabaseFailover -ResourceGroupName $resourceGroup ` -ServerName $server ` -DatabaseName $database
Verá um erro semelhante a este:
Invoke-AzSqlDatabaseFailover: Long running operation failed with status 'Failed'. Additional Info:'There was a recent failover on the database or pool if database belongs in an elastic pool. At least 15 minutes must pass between database failovers.'
Pode agora parar a carga de trabalho na janela da Linha de Comandos ao selecionar a janela e, em seguida, CTRL+C. Você pode deixar a janela aberta, porque usará a mesma carga de trabalho no próximo exercício.
Poderá querer saber se existe alguma forma de verificar se ocorreu uma ativação pós-falha. Atualmente, não existe nenhuma mensagem clara, como “Ocorreu uma ativação pós-falha”, mas o Resource Health poderá ser um bom indicador.
No portal do Azure, aceda à base de dados SQL do Azure. No painel esquerdo, em Ajuda, selecione Estado de Funcionamento do Recurso. Entre 5 e 15 minutos após uma ativação pós-falha, poderá ver um evento de estado de funcionamento semelhante ao apresentado na captura de ecrã seguinte. Este evento pode indicar várias coisas, mas uma possibilidade é que ocorreu algo e o Azure efetuou a ativação pós-falha.