Actualización del proveedor de recursos de SQL

Importante

Los proveedores de recursos de SQL y MySQL para Azure Stack Hub están en desuso y no están disponibles para incorporar nuevos clientes. En su lugar, implemente SQL o MySQL directamente en máquinas virtuales y los administre mediante herramientas y prácticas estándar. Las implementaciones existentes de los proveedores de recursos siguen siendo compatibles, pero no se planea ningún nuevo desarrollo o incorporación de características.

Importante

Antes de actualizar el proveedor de recursos, revise las notas de la versión para obtener información sobre las nuevas funcionalidades, correcciones y cualquier problema conocido que pueda afectar a la implementación. Las notas de la versión también especifican la versión mínima de Azure Stack Hub necesaria para el proveedor de recursos.

Importante

La actualización del proveedor de recursos no actualiza el SQL Server de hospedaje.

Es posible que se publique un nuevo proveedor de recursos de SQL cuando Azure Stack Hub se actualice a una nueva compilación. Aunque el proveedor de recursos existente sigue funcionando, actualice a la compilación más reciente lo antes posible.

Versión admitida de Azure Stack Hub Versión de SQL RP Windows Server en el que se ejecuta el servicio RP
2206, 2301, 2306, 2311 SQL RP versión 2.0.13.x Microsoft AzureStack RP del complemento de Windows Server 1.2009.0
2108, 2206 SQL RP versión 2.0.6.x Microsoft AzureStack RP del complemento de Windows Server 1.2009.0

Actualización del proveedor de recursos de SQL Server V2

Para comprobar si hay actualizaciones en SQL RP V2, consulte Cómo aplicar actualizaciones al proveedor de recursos.

Para actualizar de SQL RP V1 a SQL RP V2, primero actualice a SQL RP V1.1.93.x. A continuación, aplique el proceso de actualización de la versión principal para actualizar de SQL RP V1 a SQL RP V2.

Actualización de SQL RP V1.1.93.x a SQL RP V2.0.6.0

Prerrequisitos

  1. Asegúrese de actualizar SQL RP V1 a la versión 1.1.93.x más reciente. En Suscripción de proveedor predeterminada, busque el grupo de recursos rp (formato de nomenclatura: system.<region>.sqladapter). Confirme la etiqueta de versión y el nombre de máquina virtual de SQL RP en el grupo de recursos. Si todavía está en una versión anterior y necesita actualizar a 1.1.93.x, abra un caso de soporte técnico para obtener ayuda.

  2. Abra un caso de soporte técnico para obtener el paquete MajorVersionUpgrade y agregue su suscripción a la lista de permitidos del ASH del marketplace para la futura versión V2.

  3. Descargue Microsoft AzureStack Add-On RP Windows Server 1.2009.0 en Marketplace.

  4. Asegúrese de que se cumplen los requisitos previos de integración del centro de datos.

    Prerrequisito Referencia
    El reenvío DNS condicional se ha establecido correctamente. Integración del centro de datos de Azure Stack Hub: DNS
    Los puertos de entrada para los proveedores de recursos están abiertos. Integración del centro de datos de Azure Stack Hub: puertos y protocolos entrantes
    Se han establecido correctamente el SAN y el asunto del certificado. Requisitos previos de PKI obligatorios de implementación de Azure Stack Hub
    Requisitos previos del certificado PaaS de implementación de Azure Stack Hub
  5. Para un entorno desconectado, instale los módulos de PowerShell necesarios, de forma similar al proceso de actualización que se usa para implementar el proveedor de recursos.

Desencadenador MajorVersionUpgrade

Ejecute el siguiente script desde una consola de PowerShell con privilegios elevados para realizar la actualización de la versión principal.

Nota:

Asegúrese de que la máquina cliente en la que ejecuta el script es de la versión del sistema operativo no anterior a Windows 10 o Windows Server 2016, y la máquina cliente tiene la arquitectura del sistema operativo X64.

Importante

Use Clear-AzureRmContext -Scope CurrentUser y Clear-AzureRmContext -Scope Process para borrar la memoria caché antes de ejecutar el script de implementación o actualización.

# 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:

La dirección DNS y la dirección IP correspondiente de SQL RP V2 son diferentes. Para obtener la nueva dirección IP pública, puede ponerse en contacto con el servicio de soporte técnico para solicitar un plan de emergencia de DRP y encontrar el recurso SQLRPVM1130-PublicIP. También puede ejecutar nslookup sqlrp.dbadapter.<fqdn> desde una máquina cliente que ya haya superado la prueba de punto de conexión para averiguar la dirección IP pública.

Validar que la actualización se ha realizado correctamente

  1. El script MajorVersionUpgrade se ejecutó sin errores.
  2. Compruebe el proveedor de recursos en Marketplace y asegúrese de que SQL RP 2.0 se ha instalado correctamente.
  3. El antiguo sistema.<location.sqladapter> resource group and system.<el script no elimina automáticamente el grupo de recursos location.dbadapter.dns> de la suscripción de proveedor predeterminada.

Mantenga la cuenta de almacenamiento y el Key Vault en el grupo de recursos sqladapter durante algún tiempo. Si después de la actualización, cualquier usuario de inquilino observa metadatos de inicio de sesión o base de datos incoherentes, es posible obtener soporte técnico para restaurar los metadatos del grupo de recursos.

Después de comprobar que la zona DNS del grupo de recursos dbadapter.dns está vacía sin registro DNS, es seguro eliminar el grupo de recursos dbadapter.dns.

Importante

No use el script de implementación V1 para desinstalar la versión V1. Después de completar la actualización y confirmar que la actualización se realizó correctamente, puede eliminar manualmente el grupo de recursos de la suscripción del proveedor.

Actualización de la versión anterior de SQL RP V1 a SQL RP V1.1.93.x

La actualización del proveedor de recursos de SQL V1 es acumulativa. Puede actualizar directamente a la versión 1.1.93.x.

Para actualizar el proveedor de recursos a 1.1.93.x, use el UpdateSQLProvider.ps1 script . Use su cuenta de servicio con derechos administrativos locales y sea propietario de la suscripción. Este script de actualización se incluye con la descarga del proveedor de recursos.

El proceso de actualización es similar al proceso usado para implementar el proveedor de recursos. El script de actualización usa los mismos argumentos que el script de DeploySqlProvider.ps1 y deberá proporcionar información de certificado.

Actualizar procesos de script

El UpdateSQLProvider.ps1 script crea una nueva máquina virtual (VM) con la imagen del sistema operativo más reciente, implementa el código de proveedor de recursos más reciente y migra la configuración del proveedor de recursos antiguo al nuevo proveedor de recursos.

Nota:

Se recomienda descargar la imagen Microsoft AzureStack Add-on RP Windows Server 1.2009.0 de la administración del marketplace. Si necesita instalar una actualización, puede colocar un único paquete MSU en la ruta de dependencias local. Se producirá un error en el script si hay más de un archivo MSU en esta ubicación.

Después de que el UpdateSQLProvider.ps1 script cree una nueva máquina virtual, el script migra la siguiente configuración de la máquina virtual del proveedor de recursos anterior:

  • información de base de datos
  • información del servidor de alojamiento
  • registro DNS requerido

Importante

Use Clear-AzureRmContext -Scope CurrentUser y Clear-AzureRmContext -Scope Process para borrar la memoria caché antes de ejecutar el script de implementación o actualización.

Actualizar parámetros de script

Especifique los parámetros siguientes desde la línea de comandos al ejecutar el UpdateSQLProvider.ps1 script de PowerShell. Si no especifica parámetros o si se produce un error en la validación de parámetros, el script le pedirá que proporcione los parámetros necesarios.

Nombre del parámetro Descripción Comentario o valor predeterminado
CloudAdminCredential Credencial para el administrador de la nube, necesaria para acceder al punto de conexión con privilegios. Obligatorio
AzCredential Las credenciales de la cuenta de administrador del servicio azure Stack Hub. Use las mismas credenciales que usó para implementar Azure Stack Hub. El script produce un error si la cuenta que usa con AzCredential requiere autenticación multifactor (MFA). Obligatorio
VMLocalCredential Las credenciales de la cuenta de administrador local de la máquina virtual del proveedor de recursos de SQL. Obligatorio
PrivilegedEndpoint La dirección IP o el nombre DNS del punto de conexión con privilegios. Obligatorio
AzureEnvironment El entorno Azure de la cuenta de administrador de servicios que usó para implementar Azure Stack Hub. Solo es necesario para las implementaciones de Microsoft Entra. Los nombres de entorno admitidos son AzureCloud, AzureUSGovernment o si se usa un identificador de Microsoft Entra de China, AzureChinaCloud. AzureCloud
DependencyFilesLocalPath También debe colocar el archivo .pfx de certificado en este directorio. Opcional para un solo nodo, pero obligatorio para varios nodos
ContraseñaPredeterminadaDelCertificadoSSL Contraseña del certificado .pfx. Obligatorio
MaxRetryCount Número de veces que desea reintentar cada operación si se produce un error. 2
RetryDuration Intervalo de tiempo de espera entre reintentos, en segundos. 120
Desinstalar Quita el proveedor de recursos y todos los recursos asociados. No
DebugMode Evita la limpieza automática en caso de error. No

Ejemplo de Actualización del script de PowerShell

Para actualizar el proveedor de recursos de SQL a la versión 1.1.33.0 o versiones anteriores, instale versiones específicas de los AzureRm.BootStrapper módulos y Azure Stack Hub en los módulos de PowerShell.

Si va a actualizar el proveedor de recursos de SQL a la versión 1.1.47.0 o posterior, puede omitir este paso. El script de implementación descarga e instala automáticamente los módulos de PowerShell necesarios para que realice la ruta de acceso C:\Program Files\SqlMySqlPsh.

Nota:

Si la carpeta C:\Program Files\SqlMySqlPsh ya existe con los módulos de PowerShell descargados, limpie esta carpeta antes de ejecutar el script de actualización. Este paso garantiza que se descargue y use la versión correcta de los módulos de PowerShell.

# 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:

En un escenario desconectado, debe descargar los módulos de PowerShell necesarios y registrar el repositorio manualmente como requisito previo. Para más información, consulte Implementación del proveedor de recursos de SQL.

En el ejemplo siguiente se muestra cómo usar el UpdateSQLProvider.ps1 script. Ejecute el script desde una consola de PowerShell con privilegios elevados. Asegúrese de cambiar la información de variable y las contraseñas según sea necesario:

# 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

Cuando finalice el script de actualización del proveedor de recursos, cierre la sesión actual de PowerShell.

Pasos siguientes

Mantenimiento del proveedor de recursos de SQL