Atualizar o provedor de recursos SQL

Importante

Os fornecedores de recursos SQL e MySQL para o Azure Stack Hub estão obsoletos e não estão disponíveis para a integração de novos clientes. Em vez disso, implemente SQL ou MySQL diretamente em máquinas virtuais e gerencie-as utilizando ferramentas e práticas padrão. As implementações existentes dos fornecedores de recursos continuam a ser suportadas, mas não está planeado desenvolvimento ou integração de novas funcionalidades.

Importante

Antes de atualizar o provedor de recursos, revise as notas de versão para saber mais sobre novas funcionalidades, correções e quaisquer problemas conhecidos que possam afetar sua implantação. As notas de versão também especificam a versão mínima do Azure Stack Hub necessária para o provedor de recursos.

Importante

Atualizar o fornecedor de recursos não atualiza o SQL Server de alojamento.

Um novo provedor de recursos SQL pode ser lançado quando o Azure Stack Hub é atualizado para uma nova compilação. Embora o fornecedor de recursos existente continue a trabalhar, atualize para a versão mais recente o mais rapidamente possível.

Versão suportada do Azure Stack Hub Versão SQL RP Windows Server em que o serviço RP está sendo executado
2206, 2301, 2306, 2311 SQL RP versão 2.0.13.x Complemento Microsoft AzureStack RP Windows Server 1.2009.0
2108, 2206 SQL RP versão 2.0.6.x Complemento Microsoft AzureStack RP Windows Server 1.2009.0

Atualizar o provedor de recursos do SQL Server V2

Para verificar atualizações do SQL RP V2, consulte Como aplicar atualizações ao fornecedor de recursos.

Para atualizar do SQL RP V1 para o SQL RP V2, primeiro atualize para o SQL RP V1.1.93.x. Depois, aplique o processo principal de atualização de versão para atualizar do SQL RP V1 para o SQL RP V2.

Atualização do SQL RP V1.1.93.x para o SQL RP V2.0.6.0

Pré-requisitos

  1. Certifica-te de que atualizaste o SQL RP V1 para a versão mais recente 1.1.93.x. Em Subscrição de Fornecedor Padrão, encontre o grupo de recursos RP (formato de nomeação: system.<region>.sqladapter). Confirme a marca de versão e o nome da VM SQL RP no grupo de recursos. Se ainda estiver numa versão antiga e precisar de atualizar para a 1.1.93.x, abra um caso de suporte para obter ajuda.

  2. Abra um caso de suporte para obter o pacote MajorVersionUpgrade e adicione sua assinatura à lista de permissões do mercado ASH para a futura versão V2.

  3. Baixe Microsoft AzureStack Add-On RP Windows Server 1.2009.0 para o mercado.

  4. Garantir que os pré-requisitos de integração do datacenter sejam atendidos.

    Pré-requisito Referência
    O encaminhamento DNS condicional está definido corretamente. integração do centro de dados do Azure Stack Hub - DNS
    As portas de entrada para provedores de recursos estão abertas. Integrações do datacenter do Azure Stack Hub - Portas e protocolos de entrada
    O assunto do certificado PKI e a SAN estão definidos corretamente. pré-requisitos obrigatórios de PKI de implantação do Azure Stack Hub
    pré-requisitos de certificado PaaS de implantação do Azure Stack Hub
  5. Para um ambiente desconectado, instale-se os módulos PowerShell necessários, semelhante ao processo de atualização usado para implantar o fornecedor de recursos.

Acionar MajorVersionUpgrade

Execute o script seguinte a partir de um console elevado do PowerShell para realizar a atualização de versão principal.

Observação

Verifique se a máquina cliente na qual você executa o script é da versão do sistema operacional não mais antiga que o Windows 10 ou o Windows Server 2016 e se a máquina cliente tem a arquitetura do sistema operacional X64.

Importante

Use Clear-AzureRmContext -Scope CurrentUser e Clear-AzureRmContext -Scope Process para limpar a cache antes de executar o script de implementação ou atualização.

# Check Operating System version
$osVersion = [environment]::OSVersion.Version
if ($osVersion.Build -lt 10240)
{
    Write-Host "OS version is too old: $osVersion."
    return
}

$osArch = (Get-WmiObject Win32_OperatingSystem).OSArchitecture
if ($osArch -ne "64-bit")
{
    Write-Host "OS Architecture is not 64 bit."
    return
}

# Check LongPathsEnabled registry key
$regPath = 'HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem'
$longPathsEnabled = 'LongPathsEnabled'
$property = Get-ItemProperty -Path $regPath -Name $longPathsEnabled -ErrorAction Stop
if ($property.LongPathsEnabled -eq 0)
{
    Write-Host "Detect LongPathsEnabled equals to 0, prepare to set the property."
    Set-ItemProperty -Path $regPath -Name $longPathsEnabled -Value 1 -ErrorAction Stop
    Write-Host "Set the long paths property, please restart the PowerShell."
    return
} 

# Use the NetBIOS name for the Azure Stack Hub domain. 
$domain = "YouDomain" 

# For integrated systems, use the IP address of one of the ERCS VMs
$privilegedEndpoint = "YouDomain-ERCS01"

# Provide the Azure environment used for deploying Azure Stack Hub. Required only for Azure AD deployments. Supported values for the <environment name> parameter are AzureCloud, AzureChinaCloud, or AzureUSGovernment depending which Azure subscription you're using.
$AzureEnvironment = "AzureCloud"

# Point to the directory where the resource provider installation files were extracted.
$tempDir = 'C:\extracted-folder\MajorVersionUpgrade-SQLRP'

# The service admin account can be Azure Active Directory or Active Directory Federation Services.
$serviceAdmin = "admin@mydomain.onmicrosoft.com"
$AdminPass = ConvertTo-SecureString 'xxxxxxxx' -AsPlainText -Force
$AdminCreds = New-Object System.Management.Automation.PSCredential ($serviceAdmin, $AdminPass)

# Add the cloudadmin credential that's required for privileged endpoint access.
$CloudAdminPass = ConvertTo-SecureString 'xxxxxxxx' -AsPlainText -Force
$CloudAdminCreds = New-Object System.Management.Automation.PSCredential ("$domain\cloudadmin", $CloudAdminPass)

# Change the following as appropriate.
$PfxPass = ConvertTo-SecureString 'xxxxxxx' -AsPlainText -Force

# Provide the pfx file path
$PfxFilePath = "C:\tools\sqlcert\SSL.pfx"

# PowerShell modules used by the RP MajorVersionUpgrade are placed in C:\Program Files\SqlMySqlPsh
# The deployment script adds this path to the system $env:PSModulePath to ensure correct modules are used.
$rpModulePath = Join-Path -Path $env:ProgramFiles -ChildPath 'SqlMySqlPsh'
$env:PSModulePath = $env:PSModulePath + ";" + $rpModulePath 

. $tempDir\MajorVersionUpgradeSQLProvider.ps1 -AzureEnvironment $AzureEnvironment -AzCredential $AdminCreds -CloudAdminCredential $CloudAdminCreds -Privilegedendpoint $privilegedEndpoint -PfxPassword $PfxPass -PfxCert $PfxFilePath

Observação

O endereço DNS e o endereço IP correspondente do SQL RP V2 são diferentes. Para obter o novo IP público, pode contactar o suporte para solicitar um procedimento de emergência DRP e localizar o recurso SQLRPVM1130-PublicIP. Também podes correr nslookup sqlrp.dbadapter.<fqdn> a partir de uma máquina cliente que já passou no teste de endpoint para descobrir o IP público.

Validar se a atualização foi bem-sucedida

  1. O script MajorVersionUpgrade foi executado sem erros.
  2. Verifique o provedor de recursos no marketplace e verifique se o SQL RP 2.0 foi instalado com êxito.
  3. O sistema antigo.<O grupo de recursos e sistema location.sqladapter>.<O grupo de recursos location.dbadapter.DNS> na subscrição padrão do fornecedor não é automaticamente eliminado pelo script.

Mantém a Conta de Armazenamento e o Key Vault no grupo de recursos sqladapter durante algum tempo. Se, após a atualização, algum utilizador inquilino observar metadados inconsistentes na base de dados ou login, é possível obter suporte para restaurar os metadados do grupo de recursos.

Depois de verificar se a Zona DNS no grupo de recursos dbadapter.dns está vazia e sem registo DNS, é seguro eliminar o grupo de recursos dbadapter.dns.

Importante

Não uses o script de deploy da V1 para desinstalar a versão da V1. Após a conclusão da atualização e a confirmação de que a atualização foi bem-sucedida, você pode excluir manualmente o grupo de recursos da assinatura do provedor.

Atualização da versão anterior do SQL RP V1 para o SQL RP V1.1.93.x

A atualização V1 do provedor de recursos SQL é cumulativa. Você pode atualizar diretamente para a versão 1.1.93.x.

Para atualizar o fornecedor de recursos para 1.1.93.x, use o UpdateSQLProvider.ps1 script. Use sua conta de serviço com direitos administrativos locais e é um proprietário da assinatura. Este script de atualização está incluído com o download do provedor de recursos.

O processo de atualização é semelhante ao processo usado para Implantar o provedor de recursos. O script de atualização usa os mesmos argumentos que o script DeploySqlProvider.ps1 e você precisará fornecer informações de certificado.

Atualizar processos de script

O UpdateSQLProvider.ps1 script cria uma nova máquina virtual (VM) com a imagem do sistema operativo mais recente, implementa o código mais recente do fornecedor de recursos e migra as definições do antigo fornecedor de recursos para o novo fornecedor de recursos.

Observação

Recomendamos que você baixe a imagem do Microsoft AzureStack Add-on RP Windows Server 1.2009.0 do Marketplace Management. Se você precisar instalar uma atualização, poderá colocar um único pacote MSU no caminho de dependência local. O script falhará se houver mais de um arquivo MSU neste local.

Depois de o UpdateSQLProvider.ps1 script criar uma nova VM, o script migra as seguintes definições da antiga VM do fornecedor de recursos:

  • informações da base de dados
  • informações do servidor de hospedagem
  • registro DNS necessário

Importante

Use Clear-AzureRmContext -Scope CurrentUser e Clear-AzureRmContext -Scope Process para limpar a cache antes de executar o script de implementação ou atualização.

Atualizar parâmetros de script

Especifique os seguintes parâmetros na linha de comandos quando executar o UpdateSQLProvider.ps1 script PowerShell. Se não especificares parâmetros, ou se alguma validação falhar, o script pede-te que forneças os parâmetros necessários.

Nome do parâmetro Descrição Comentário ou valor padrão
CloudAdminCredential A credencial para o administrador de nuvem, necessária para aceder ao ponto de extremidade privilegiado. Necessário
AzCredential As credenciais para a conta de administrador do serviço Azure Stack Hub. Use as mesmas credenciais que você usou para implantar o Azure Stack Hub. O script falha se a conta utilizada com o AzCredential exigir autenticação multifator (MFA). Necessário
VMLocalCredential As credenciais para a conta de administrador local da VM do provedor de recursos SQL. Necessário
PrivilegedEndpoint O endereço IP ou nome DNS do ponto de extremidade privilegiado. Necessário
AzureEnvironment O ambiente Azure da conta de administrador do serviço que usou para implementar o Azure Stack Hub. Necessário apenas para implantações do Microsoft Entra. Os nomes de ambiente suportados são AzureCloud, AzureUSGovernmentou, se estiver usando uma ID do Microsoft Entra da China, AzureChinaCloud. AzureCloud
DependencyFilesLocalPath Você também deve colocar o arquivo .pfx do certificado neste diretório. Opcional para nó único, mas obrigatório para vários nós
Password padrão do certificado SSL A senha para o certificado .pfx. Necessário
ContagemMáximaDeTentativas O número de vezes que você deseja repetir cada operação se houver uma falha. 2
DuraçãoDeRepetição O intervalo de tempo limite entre as tentativas, em segundos. cento e vinte
desinstalar Remove o provedor de recursos e todos os recursos associados. Não
Modo de Depuração Previne a limpeza automática em caso de falha. Não

Exemplo de script do PowerShell de atualização

Para atualizar o fornecedor de recursos SQL para a versão 1.1.33.0 ou anterior, instale versões específicas dos AzureRm.BootStrapper módulos and Azure Stack Hub nos módulos PowerShell.

Se estiver a atualizar o fornecedor de recursos SQL para a versão 1.1.47.0 ou posterior, pode saltar este passo. O script de implementação descarrega e instala automaticamente os módulos PowerShell necessários para que faça o path C:\Program Files\SqlMySqlPsh.

Observação

Se a pasta C:\Program Files\SqlMySqlPsh já existir com os módulos PowerShell descarregados, limpe essa pasta antes de executar o script de atualização. Este passo garante que a versão correta dos módulos PowerShell é descarregada e utilizada.

# Run the following scripts when updating to version 1.1.33.0 only.
# Install the AzureRM.Bootstrapper module, set the profile, and install the AzureStack module.
# Note that this might not be the most currently available version of Azure Stack Hub PowerShell.
Install-Module -Name AzureRm.BootStrapper -Force
Use-AzureRmProfile -Profile 2018-03-01-hybrid -Force
Install-Module -Name AzureStack -RequiredVersion 1.6.0

Observação

Num cenário desconectado, é necessário descarregar os módulos PowerShell necessários e registar o repositório manualmente como pré-requisito. Para mais informações, consulte Deploy SQL resource provider.

O exemplo seguinte mostra como usar o UpdateSQLProvider.ps1 script. Executa o script a partir de uma consola PowerShell elevada. Certifique-se de alterar as informações variáveis e senhas conforme necessário:

# Use the NetBIOS name for the Azure Stack Hub domain. On the Azure Stack Hub SDK, the default is AzureStack but this might have been changed at installation.
$domain = "AzureStack"

# For integrated systems, use the IP address of one of the ERCS VMs.
$privilegedEndpoint = "AzS-ERCS01"

# Provide the Azure environment used for deploying Azure Stack Hub. Required only for Azure AD deployments. Supported values for the <environment name> parameter are AzureCloud, AzureChinaCloud, or AzureUSGovernment depending which Azure subscription you're using.
$AzureEnvironment = "<EnvironmentName>"

# Point to the directory where the resource provider installation files were extracted.
$tempDir = 'C:\TEMP\SQLRP'

# The service admin account (this can be Azure AD or AD FS).
$serviceAdmin = "admin@mydomain.onmicrosoft.com"
$AdminPass = ConvertTo-SecureString 'P@ssw0rd1' -AsPlainText -Force
$AdminCreds = New-Object System.Management.Automation.PSCredential ($serviceAdmin, $AdminPass)

# Set the credentials for the new resource provider VM.
$vmLocalAdminPass = ConvertTo-SecureString 'P@ssw0rd1' -AsPlainText -Force
$vmLocalAdminCreds = New-Object System.Management.Automation.PSCredential ("sqlrpadmin", $vmLocalAdminPass)

# Add the cloudadmin credential required for privileged endpoint access.
$CloudAdminPass = ConvertTo-SecureString 'P@ssw0rd1' -AsPlainText -Force
$CloudAdminCreds = New-Object System.Management.Automation.PSCredential ("$domain\cloudadmin", $CloudAdminPass)

# Change the following as appropriate.
$PfxPass = ConvertTo-SecureString 'P@ssw0rd1' -AsPlainText -Force

# For version 1.1.47.0 or later, the PowerShell modules used by the RP deployment are placed in C:\Program Files\SqlMySqlPsh
# The deployment script adds this path to the system $env:PSModulePath to ensure correct modules are used.
$rpModulePath = Join-Path -Path $env:ProgramFiles -ChildPath 'SqlMySqlPsh'
$env:PSModulePath = $env:PSModulePath + ";" + $rpModulePath

# Change directory to the folder where you extracted the installation files.
# Then adjust the endpoints.
. $tempDir\UpdateSQLProvider.ps1 -AzCredential $AdminCreds -VMLocalCredential $vmLocalAdminCreds -CloudAdminCredential $cloudAdminCreds -PrivilegedEndpoint $privilegedEndpoint -AzureEnvironment $AzureEnvironment -DefaultSSLCertificatePassword $PfxPass -DependencyFilesLocalPath $tempDir\cert

Quando o script de atualização do provedor de recursos terminar, feche a sessão atual do PowerShell.

Próximos passos

Manter o provedor de recursos SQL