Actualización del proveedor de recursos de SQL

Importante

A partir de la compilación 2108 de Azure Stack Hub, los proveedores de recursos SQL y MySQL se ofrecen a las suscripciones a las que se ha concedido acceso. Si desea empezar a usar esta característica o si necesita actualizar desde una versión anterior, abra un caso de soporte técnico y nuestros ingenieros le guiarán a través del proceso de implementación o actualización.

Importante

Antes de actualizar el proveedor de recursos, revise las notas de la versión para obtener información sobre las nuevas funciones, correcciones y problemas conocidos que podrían afectar a la implementación. Las notas de la versión también especifican la versión mínima de Azure Stack Hub requerida para el proveedor de recursos.

Importante

La actualización del proveedor de recursos NO actualizará el servidor de SQL Server.

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

Versión de Azure Stack Hub compatible Versión de SQL RP Windows Server en el que se está ejecutando el servicio RP
2206, 2301, 2306, 2311 SQL RP versión 2.0.13.x Microsoft AzureStack Add-on RP Windows Server 1.2009.0
2108, 2206 Proveedor de recursos de SQL versión 2.0.6.x Microsoft AzureStack Add-on RP Windows Server 1.2009.0

Actualización de un proveedor de recursos SQL Server V2

Si ya ha implementado SQL RP V2 y desea buscar actualizaciones, consulte Cómo aplicar actualizaciones al proveedor de recursos.

Si desea actualizar de SQL RP V1 a SQL RP V2, asegúrese de que primero ha actualizado a SQL RP V1.1.93.x y, 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 que ha actualizado SQL RP V1 a la versión 1.1.93.x más reciente. En Default Provider Subscription (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 la máquina virtual del proveedor de recursos SQL 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 el marketplace.

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

Requisito previo Referencia
El reenvío condicional de DNS se ha establecido correctamente. Integración de Azure Stack Hub en el centro de datos: DNS
Los puertos de entrada para los proveedores de recursos están abiertos. Integración de Azure Stack Hub en el centro de datos: puertos y protocolos entrantes
Se han establecido correctamente el SAN y el asunto del certificado. Requisitos de certificados de infraestructura de clave pública de Azure Stack Hub: certificados obligatorios
Requisitos de certificados de infraestructura de clave pública de Azure Stack Hub: certificados de PaaS opcionales
  1. (para el entorno desconectado) Instale los módulos de PowerShell necesarios, de forma similar al proceso de actualización usado para implementar el proveedor de recursos.

Desencadenador MajorVersionUpgrade

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

Nota

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

Importante

Se recomienda encarecidamente usar los comandos Clear-AzureRmContext -Scope CurrentUser y Clear-AzureRmContext -Scope Process para borrar la memoria caché antes de ejecutar el script de implementación o de 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 del proveedor de recursos de SQL 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. Para averiguar la dirección IP pública, también puede ejecutar "nslookup sqlrp.dbadapter.<fqdn>" desde una máquina cliente que ya haya superado la prueba de punto de conexión.

Validación de 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 script no eliminará automáticamente el grupo de recursos system.location>.sqladapter y el grupo de recursos > anteriores de la suscripción del proveedor predeterminado.
  • Se recomienda mantener 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 del inquilino observa metadatos incoherentes de inicio de sesión o de la base de datos, se puede solicitar soporte técnico para restaurar los metadatos desde el grupo de recursos.
  • Después de comprobar que la zona DNS del grupo de recursos dbadapter.dns está vacía sin ningún 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. Una vez completada la actualización y confirmado 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 del proveedor de recursos SQL V1 a SQL V1.1.93.x

La actualización del proveedor de recursos 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 script UpdateSQLProvider.ps1. Use la cuenta de servicio con derechos de administrador local y de 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 DeploySqlProvider.ps1, y se deberá proporcionar información del certificado.

Procesos de script de actualización

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

Nota:

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

Cuando el script UpdateSQLProvider.ps1 crea una nueva máquina virtual, también migra la siguiente configuración desde la máquina virtual del proveedor antiguo:

  • La información de base de datos
  • La información del servidor de hospedaje
  • El registro DNS necesario

Importante

Se recomienda encarecidamente usar los comandos Clear-AzureRmContext -Scope CurrentUser y Clear-AzureRmContext -Scope Process para borrar la memoria caché antes de ejecutar el script de implementación o de actualización.

Actualización de los parámetros de script

Puede especificar los siguientes parámetros desde la línea de comandos al ejecutar el script UpdateSQLProvider.ps1 de PowerShell. Si no lo hace, o se produce un error en la validación de algún parámetro, se le pedirá que proporcione los parámetros necesarios.

Nombre de parámetro Descripción Comentario o valor predeterminado
CloudAdminCredential Credencial del administrador de la nube necesaria para el acceso al punto de conexión con privilegios. Obligatorio
AzCredential Credenciales de la cuenta de administrador de servicios de Azure Stack Hub. Use las mismas credenciales que para la implementación de Azure Stack Hub. Se producirá un error en el script si la cuenta que usa con AzCredential requiere autenticación multifactor (MFA). Obligatorio
VMLocalCredential Credenciales de la cuenta de administrador local de la VM del proveedor de recursos SQL. Obligatorio
PrivilegedEndpoint Dirección IP o nombre DNS del punto de conexión con privilegios. Obligatorio
AzureEnvironment El entorno de Azure de la cuenta de administrador de servicios que ha usado para la implementación de 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 Microsoft Entra ID de China, AzureChinaCloud. AzureCloud
DependencyFilesLocalPath También debe incluir el archivo .pfx del certificado en este directorio. Opcional para un único nodo, pero obligatorio para varios nodos
DefaultSSLCertificatePassword Contraseña para el certificado .pfx. Obligatorio
MaxRetryCount El número de veces que quiere volver a intentar cada operación si se produce un error. 2
RetryDuration Intervalo de tiempo de expiración entre reintentos, en segundos. 120
Desinstalación Quita el proveedor de recursos y todos los recursos asociados. No
DebugMode Impide la limpieza automática en caso de error. No

Ejemplo de actualización del script de PowerShell

Si va a actualizar a la versión 1.1.33.0 del proveedor de recursos de SQL o versiones anteriores, debe instalar versiones específicas de los módulos AzureRm.BootStrapper y Azure Stack Hub en PowerShell.

Si va a actualizar el proveedor de recursos de SQL a la versión 1.1.47.0 u otra posterior, este paso se puede omitir. El script de implementación descargará e instalará automáticamente los módulos de PowerShell necesarios en la ruta de acceso C:\Archivos de programa\SqlMySqlPsh.

Nota:

Si la carpeta C:\Archivos de programa\SqlMySqlPsh ya existe con el módulo de PowerShell descargado, se recomienda limpiar esta carpeta antes de ejecutar el script de actualización. Esto se hace para asegurarse de que se descarga y se usa la versión correcta del módulo 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:

Si trabaja en un escenario desconectado, deberá descargar los módulos de PowerShell necesarios y registrar el repositorio manualmente como requisito previo. Puede obtener más información en Implementación del proveedor de recursos de SQL Server en Azure Stack Hub.

El siguiente es un ejemplo del uso del script UpdateSQLProvider.ps1 que puede ejecutar desde una consola elevada de PowerShell. Asegúrese de cambiar la información de la 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 SQL