Update the SQL resource provider (Atualizar o fornecedor de recursos do SQL)

Importante

A partir da compilação 2108 do Azure Stack Hub, os fornecedores de recursos SQL e MySQL são oferecidos às subscrições a quem foi concedido acesso. Se quiser começar a utilizar esta funcionalidade ou se precisar de atualizar a partir de uma versão anterior, abra um caso de suporte e os nossos engenheiros de suporte irão orientá-lo ao longo do processo de implementação ou atualização.

Importante

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

Importante

Atualizar o fornecedor de recursos NÃO atualizará o SQL Server de alojamento.

Poderá ser lançado um novo fornecedor de recursos SQL quando o Azure Stack Hub for atualizado para uma nova compilação. Embora o fornecedor de recursos existente continue a funcionar, recomendamos que atualize para a compilação mais recente o mais rapidamente possível.

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

Atualizar SQL Server fornecedor de recursos V2

Se já implementou o SQL RP V2 e pretender verificar a existência de atualizações, verifique Como aplicar atualizações ao fornecedor de recursos.

Se quiser atualizar do SQL RP V1 para o SQL RP V2, certifique-se de que atualizou primeiro para o SQL RP V1.1.93.x e, em seguida, aplique o processo de atualização da versão principal para atualizar do SQL RP V1 para o SQL RP V2.

Atualizar do SQL RP V1.1.93.x para o SQL RP V2.0.6.0

Pré-requisitos

  1. Certifique-se de que atualizou o SQL RP V1 para o 1.1.93.x mais recente. Em Subscrição de Fornecedor Predefinida, localize o grupo de recursos RP (formato de nomenclatura: system.<region>). sqladapter). Confirme a etiqueta de versão e o nome da VM do RP do SQL no grupo de recursos. Se ainda estiver numa versão antiga e precisar de atualizar para a versão 1.1.93.x, abra um pedido de suporte para obter ajuda.

  2. abra um pedido de suporte para obter o pacote MajorVersionUpgrade e adicione a sua subscrição à lista de permissões ash marketplace para a futura versão V2.

  3. Transfira o Microsoft AzureStack Add-On RP Windows Server 1.2009.0 para o marketplace.

  4. Certifique-se de que os pré-requisitos de integração do datacenter são cumpridos.

Pré-requisito Referência
O reencaminhamento DNS condicional está definido corretamente. Integração do datacenter do Azure Stack Hub - DNS
As portas de entrada para fornecedores de recursos estão abertas. Integração do datacenter do Azure Stack Hub – Portas e protocolos de entrada
O requerente do certificado PKI e SAN estão definidos corretamente. Pré-requisitos de PKI obrigatórios da implementação do Azure Stack Hub
Pré-requisitos do certificado PaaS de implementação do Azure Stack Hub
  1. (para ambiente desligado) Instale os módulos do PowerShell necessários, semelhantes ao processo de atualização utilizado para Implementar o fornecedor de recursos.

Acionar MajorVersionUpgrade

Execute o seguinte script a partir de uma consola elevada do PowerShell para realizar a atualização de versão principal.

Nota

Certifique-se de que o computador cliente no qual executa o script é da versão do SO não mais antiga do que Windows 10 ou Windows Server 2016 e que o computador cliente tem a Arquitetura do Sistema Operativo X64.

Importante

Recomendamos vivamente que utilize 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

Nota

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 exigir um vidro de quebra DRP e encontrar o recurso SQLRPVM1130-PublicIP. Também pode executar "nslookup sqlrp.dbadapter.<fqdn>" de um computador cliente que já passou no teste de ponto final para descobrir o IP público.

Validar que a atualização foi efetuada com êxito

  1. O script MajorVersionUpgrade foi executado sem erros.
  2. Verifique o fornecedor de recursos no marketplace e certifique-se de que o SQL RP 2.0 foi instalado com êxito.
  3. O sistema antigo.<location.sqladapter> resource group and system.<O grupo de recursos location.dbadapter.dns> na subscrição do fornecedor predefinido não será eliminado automaticamente pelo script.
  • Recomendamos que mantenha a Conta de Armazenamento e o Key Vault no grupo de recursos sqladapter durante algum tempo. Se após a atualização, qualquer utilizador inquilino observar metadados de base de dados ou de início de sessão inconsistentes, é possível obter suporte para restaurar os metadados a partir do grupo de recursos.
  • Depois de verificar se a Zona DNS no grupo de recursos dbadapter.dns está vazia sem registo DNS, é seguro eliminar o grupo de recursos dbadapter.dns.
  • [IMPORTANTE] Não utilize o script de implementação V1 para desinstalar a versão V1. Após a conclusão da atualização e a confirmação de que a atualização foi efetuada com êxito, pode eliminar manualmente o grupo de recursos da subscrição do fornecedor.

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

A atualização V1 do fornecedor de recursos SQL é cumulativa. Pode atualizar diretamente para a versão 1.1.93.x.

Para atualizar o fornecedor de recursos para 1.1.93.x, utilize o script UpdateSQLProvider.ps1 . Utilize a sua conta de serviço com direitos administrativos locais e é proprietário da subscrição. Este script de atualização está incluído na transferência do fornecedor de recursos.

O processo de atualização é semelhante ao processo utilizado para Implementar o fornecedor de recursos. O script de atualização utiliza os mesmos argumentos que o script DeploySqlProvider.ps1 e terá de fornecer informações de certificado.

Atualizar processos de script

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

Nota

Recomendamos que transfira a imagem do Suplemento Microsoft AzureStack RP Windows Server 1.2009.0 a partir da Gestão do Marketplace. Se precisar de instalar uma atualização, pode colocar um único pacote MSU no caminho de dependência local. O script falhará se existir mais do que um ficheiro MSU nesta localização.

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

  • informações da base de dados
  • informações do servidor de alojamento
  • registo DNS necessário

Importante

Recomendamos vivamente que utilize 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

Pode especificar os seguintes parâmetros a partir da linha de comandos quando executar o UpdateSQLProvider.ps1 script do PowerShell. Se não o fizer, ou se alguma validação de parâmetro falhar, ser-lhe-á pedido que forneça os parâmetros necessários.

Nome do parâmetro Descrição Comentário ou valor predefinido
CloudAdminCredential A credencial do administrador da cloud, necessária para aceder ao ponto final privilegiado. Obrigatório
AzCredential As credenciais da conta de administrador do serviço Azure Stack Hub. Utilize as mesmas credenciais que utilizou para implementar o Azure Stack Hub. O script falhará se a conta que utiliza com o AzCredential exigir autenticação multifator (MFA). Obrigatório
VMLocalCredential As credenciais da conta de administrador local da VM do fornecedor de recursos SQL. Obrigatório
PrivilegedEndpoint O endereço IP ou o nome DNS do ponto final privilegiado. Obrigatório
AzureEnvironment O ambiente do Azure da conta de administrador de serviço que utilizou para implementar o Azure Stack Hub. Necessário apenas para implementações Microsoft Entra. Os nomes de ambiente suportados são AzureCloud, AzureUSGovernment ou se utilizar um ID de Microsoft Entra da China, o AzureChinaCloud. AzureCloud
DependencyFilesLocalPath Também tem de colocar o seu ficheiro .pfx de certificado neste diretório. Opcional para nó único, mas obrigatório para vários nós
DefaultSSLCertificatePassword A palavra-passe do certificado .pfx. Obrigatório
MaxRetryCount O número de vezes que pretende repetir cada operação se ocorrer uma falha. 2
RepetirDuração O intervalo de tempo limite entre repetições, em segundos. 120
Desinstalar Remove o fornecedor de recursos e todos os recursos associados. No
DebugMode Impede a limpeza automática de falhas. No

Exemplo do PowerShell do script de atualização

Se estiver a atualizar a versão do fornecedor de recursos SQL para 1.1.33.0 ou versões anteriores, terá de instalar versões específicas dos módulos AzureRm.BootStrapper e Azure Stack Hub no PowerShell.

Se estiver a atualizar o fornecedor de recursos SQL para a versão 1.1.47.0 ou posterior, pode ignorar este passo. O script de implementação irá transferir e instalar automaticamente os módulos do PowerShell necessários para que possa encaminhar C:\Programas\SqlMySqlPsh.

Nota

Se a pasta C:\Program Files\SqlMySqlPsh já existir com o módulo do PowerShell transferido, é recomendado limpar esta pasta antes de executar o script de atualização. Isto é para garantir que a versão certa do módulo do PowerShell é transferida 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

Nota

No cenário desligado, tem de transferir os módulos do PowerShell necessários e registar o repositório manualmente como um pré-requisito. Pode obter mais informações em Implementar o fornecedor de recursos SQL

Segue-se um exemplo de utilização do script UpdateSQLProvider.ps1 que pode executar a partir de uma consola elevada do PowerShell. Certifique-se de que altera as informações e palavras-passe da variável 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 fornecedor de recursos terminar, feche a sessão atual do PowerShell.

Passos seguintes

Manter o fornecedor de recursos SQL