Partilhar via


Atualizar uma Instância Gerenciada de SQL do Azure conectada diretamente ao Azure Arc usando a CLI

Este artigo descreve como atualizar uma Instância Gerenciada de SQL do Azure implantada em um controlador de dados habilitado para Azure Arc diretamente conectado usando a CLI do Azure (az).

Pré-requisitos

Instalar ferramentas

Antes de você prosseguir com as tarefas deste artigo, instale:

A versão da extensão arcdata e a versão da imagem estão relacionadas. Verifique se você tem a versão de extensão arcdata correta que corresponde à versão de imagem para a qual você deseja atualizar no Log de versão.

Limitações

O controlador de dados do Azure Arc deve ser atualizado para a nova versão antes que a instância gerenciada possa ser atualizada.

Se a integração do Active Directory estiver habilitada, o conector do Active Directory deverá ser atualizado para a nova versão antes que a instância gerenciada possa ser atualizada.

A instância gerenciada deverá estar na mesma versão que o controlador de dados e o conector do Active Directory, antes que um controlador de dados seja atualizado.

Não há nenhum processo de atualização em lote disponível no momento.

Atualizar a instância gerenciada

Você pode executar uma execução de secagem primeiro. A simulação valida o esquema de versão e lista quais instâncias serão atualizadas. Use --dry-run. Por exemplo:

az sql mi-arc upgrade --resource-group <resource group> --name <instance name> --dry-run 

A saída será:

Preparing to upgrade sql sqlmi-1 in namespace arc to data controller version.
****Dry Run****1 instance(s) would be upgraded by this commandsqlmi-1 would be upgraded to <version-tag>.

Uso Geral

Durante uma atualização de Uso Geral da Instância Gerenciada de SQL, o pod será encerrado e novamente provisionado na nova versão. Isso causará pouco tempo de inatividade enquanto o novo pod é criado. Você precisará criar resiliência em seu aplicativo, como lógica de nova tentativa de conexão, para garantir a interrupção mínima. Leia Visão geral do pilar de confiabilidade para obter mais informações sobre como arquitetar a resiliência e diretrizes de nova tentativa dos Serviços do Azure.

Comercialmente Crítico

Durante uma atualização Comercialmente Crítico da Instância Gerenciada de SQL com mais de uma réplica:

  • Os pods de réplica secundários são encerrados e reprovisionados na nova versão
  • Depois que as réplicas são atualizadas, o primário fará failover para uma réplica atualizada
  • O pod primário anterior é encerrado, novamente provisionado na nova versão e se torna um secundário

Há um breve tempo de inatividade quando o failover ocorre.

Atualizar

Para atualizar a instância gerenciada, use o seguinte comando:

az sql mi-arc upgrade --resource-group <resource group> --name <instance name> --desired-version <imageTag> [--no-wait]

Exemplo:

az sql mi-arc upgrade --resource-group myresource-group --name sql1 --desired-version v1.6.0_2022-05-02 [--no-wait]

Monitor

Você pode monitorar o progresso da atualização com a CLI.

Exemplo de CLI

az sql mi-arc show --resource-group <resource group> --name <instance name>

Saída

A saída do comando mostrará as informações do recurso. As informações de atualização estarão no Status.

Durante a atualização, State o mostrará Updating e Running Version será a versão atual:

Status:
  Log Search Dashboard:  https://30.88.222.48:5601/app/kibana#/discover?_a=(query:(language:kuery,query:'custom_resource_name:sqlmi-1'))
  Metrics Dashboard:     https://30.88.221.32:3000/d/40q72HnGk/sql-managed-instance-metrics?var-hostname=sqlmi-1-0
  Observed Generation:   2
  Primary Endpoint:      30.76.129.38,1433
  Ready Replicas:        1/1
  Running Version:       v1.5.0_2022-04-05
  State:                 Updating

Quando a atualização for concluída, o State mostrará Ready e Running Version será a nova versão:

Status:
  Log Search Dashboard:  https://30.88.222.48:5601/app/kibana#/discover?_a=(query:(language:kuery,query:'custom_resource_name:sqlmi-1'))
  Metrics Dashboard:     https://30.88.221.32:3000/d/40q72HnGk/sql-managed-instance-metrics?var-hostname=sqlmi-1-0
  Observed Generation:   2
  Primary Endpoint:      30.76.129.38,1433
  Ready Replicas:        1/1
  Running Version:       v1.6.0_2022-05-02
  State:                 Ready

Solução de problemas

Quando a versão desejada for definida para uma versão específica, o trabalho de bootstrapper tentará atualizar para essa versão até obter êxito. Se a atualização for bem-sucedida, a propriedade RunningVersion da especificação será atualizada para a nova versão. As atualizações podem falhar em cenários como, por exemplo, uma marca de imagem incorreta, a impossibilidade de conectar o registro ou o repositório, CPU ou memória insuficiente alocada para os contêineres ou armazenamento insuficiente.

  1. Execute o comando abaixo para ver se algum dos pods mostra um status Error ou se tem um alto número de reinicializações:

    kubectl get pods --namespace <namespace>
    
  2. Para examinar eventos em busca de um erro, execute

    kubectl describe pod <pod name> --namespace <namespace>
    
  3. Para obter uma lista dos contêineres nos pods, execute

    kubectl get pods <pod name> --namespace <namespace> -o jsonpath='{.spec.containers[*].name}*'
    
  4. Para obter os logs de um contêiner, execute

    kubectl logs <pod name> <container name> --namespace <namespace>
    

Para ver erros comuns e saber como solucioná-los, acesse Solução de problemas de recursos.