Registro de varias máquinas virtuales con SQL en Azure con la extensión Agente de IaaS de SQL
Se aplica a: SQL Server en máquina virtual de Azure
En este artículo se describe cómo registrar de forma masiva máquinas virtuales con SQL Server en Azure con la extensión Agente de IaaS de SQL mediante el cmdlet Register-SqlVMs
de Azure PowerShell.
Como alternativa, puede registrar todas las VM con SQL Server automáticamente o VM con SQL Server individuales manualmente.
Nota:
Las VM con SQL Server implementadas a través de Azure Marketplace después de octubre de 2022 tienen habilitado el modelo con privilegios mínimos de manera predeterminada. Los modos de administración de la extensión Agente de IaaS de SQL se quitaron en marzo de 2023.
Introducción
El cmdlet Register-SqlVMs
se puede usar para registrar todas las máquinas virtuales en una lista determinada de suscripciones, grupos de recursos o una lista de máquinas virtuales específicas. El cmdlet registrará las máquinas virtuales y, luego, generará tanto uninforme como un archivo de registro.
El proceso de registro no conlleva ningún riesgo, no tiene ningún tiempo de inactividad y no reiniciará el servicio SQL Server ni la máquina virtual.
De manera predeterminada, las máquinas virtuales de Azure con SQL Server 2016 o versiones posteriores se registran automáticamente con la extensión Agente de IaaS de SQL cuando el servicio CEIP las detecta. Puede usar el registro masivo para registrar las VM con SQL Server que no detecte el servicio CEIP.
Para información sobre la privacidad, consulte las declaraciones de privacidad de la extensión Agente de IaaS de SQL.
Requisitos previos
Para registrar una máquina virtual con SQL Server con la extensión, necesita lo siguiente:
- Una suscripción de Azure que se ha registrado con el proveedor de recursosproveedor Microsoft.SqlVirtualMachiney que contiene máquinas virtuales con SQL Server no registradas.
- Asegúrese que la VM de Azure esté ejecutándose.
- Las credenciales de cliente que se usan para registrar las máquinas virtuales existen en cualquiera de los siguientes roles de Azure: colaborador de la máquina virtual, colaborador o propietario.
- Az PowerShell 5.0: las versiones posteriores a 5.0 actualmente solo admiten MFA y no son compatibles con el script para registrar varias máquinas virtuales.
Introducción
Antes de continuar, primero debe crear una copia local del script, importarlo como un módulo de PowerShell y conectarse a Azure.
Cree el script
Para crear el script, copie el script completo del final de este artículo y guárdelo localmente como RegisterSqlVMs.psm1
.
Importación del script
Una vez creado el script, puede importarlo como un módulo en el terminal de PowerShell.
Abra un terminal de PowerShell administrativo y navegue hasta la ubicación en la que guardó el archivo RegisterSqlVMs.psm1
. Después, ejecute el siguiente cmdlet de PowerShell para importar el script como un módulo:
Import-Module .\RegisterSqlVMs.psm1
Conexión con Azure
Use el siguiente cmdlet de PowerShell para conectarse a Azure:
Connect-AzAccount
Todas las máquinas virtuales en una lista de suscripciones
Use el siguiente cmdlet para registrar todas las máquinas virtuales con SQL Server en una lista de suscripciones:
Register-SqlVMs -SubscriptionList SubscriptionId1,SubscriptionId2
Salida de ejemplo:
Number of subscriptions registration failed for
because you do not have access or credentials are wrong: 1
Total VMs Found: 10
VMs Already registered: 1
Number of VMs registered successfully: 4
Number of VMs failed to register due to error: 1
Number of VMs skipped as VM or the guest agent on VM is not running: 3
Number of VMs skipped as they are not running SQL Server On Windows: 1
Please find the detailed report in file RegisterSqlVMScriptReport1571314821.txt
Please find the error details in file VMsNotRegisteredDueToError1571314821.log
Todas las máquinas virtuales en una sola suscripción
Use el siguiente cmdlet para registrar todas las máquinas virtuales con SQL Server en una sola suscripción:
Register-SqlVMs -Subscription SubscriptionId1
Salida de ejemplo:
Total VMs Found: 10
VMs Already registered: 1
Number of VMs registered successfully: 5
Number of VMs failed to register due to error: 1
Number of VMs skipped as VM or the guest agent on VM is not running: 2
Number of VMs skipped as they are not running SQL Server On Windows: 1
Please find the detailed report in file RegisterSqlVMScriptReport1571314821.txt
Please find the error details in file VMsNotRegisteredDueToError1571314821.log
Todas las máquinas virtuales en varios grupos de recursos
Use el siguiente cmdlet para registrar todas máquinas virtuales con SQL Server en varios grupos de recursos dentro de una sola suscripción:
Register-SqlVMs -Subscription SubscriptionId1 -ResourceGroupList ResourceGroup1,ResourceGroup2
Salida de ejemplo:
Total VMs Found: 4
VMs Already registered: 1
Number of VMs registered successfully: 1
Number of VMs failed to register due to error: 1
Number of VMs skipped as they are not running SQL Server On Windows: 1
Please find the detailed report in file RegisterSqlVMScriptReport1571314821.txt
Please find the error details in file VMsNotRegisteredDueToError1571314821.log
Todas las máquinas virtuales en un grupo de recursos
Use el siguiente cmdlet para registrar todas las máquinas virtuales con SQL Server en un solo grupo de recursos:
Register-SqlVMs -Subscription SubscriptionId1 -ResourceGroupName ResourceGroup1
Salida de ejemplo:
Total VMs Found: 4
VMs Already registered: 1
Number of VMs registered successfully: 1
Number of VMs failed to register due to error: 1
Number of VMs skipped as VM or the guest agent on VM is not running: 1
Please find the detailed report in file RegisterSqlVMScriptReport1571314821.txt
Please find the error details in file VMsNotRegisteredDueToError1571314821.log
Máquinas virtuales específicas en un solo grupo de recursos
Use el siguiente cmdlet para registrar máquinas virtuales con SQL Server específicas dentro de un solo grupo de recursos:
Register-SqlVMs -Subscription SubscriptionId1 -ResourceGroupName ResourceGroup1 -VmList VM1,VM2,VM3
Salida de ejemplo:
Total VMs Found: 3
VMs Already registered: 0
Number of VMs registered successfully: 1
Number of VMs skipped as VM or the guest agent on VM is not running: 1
Number of VMs skipped as they are not running SQL Server On Windows: 1
Please find the detailed report in file RegisterSqlVMScriptReport1571314821.txt
Please find the error details in file VMsNotRegisteredDueToError1571314821.log
Una máquina virtual específica
Use el siguiente cmdlet para registrar una máquina virtual con SQL Server específica:
Register-SqlVMs -Subscription SubscriptionId1 -ResourceGroupName ResourceGroup1 -Name VM1
Salida de ejemplo:
Total VMs Found: 1
VMs Already registered: 0
Number of VMs registered successfully: 1
Please find the detailed report in file RegisterSqlVMScriptReport1571314821.txt
Descripción de la salida
Se genera un informe y un archivo de registro cada vez que se usa el cmdlet Register-SqlVMs
.
Informe
El informe se genera como un archivo .txt
denominado RegisterSqlVMScriptReport<Timestamp>.txt
en el que la marca de tiempo es la hora en la que se inició el cmdlet. El informe enumera los detalles siguientes:
Valor de salida | Descripción |
---|---|
No se pudo registrar el número de suscripciones porque no tiene acceso o las credenciales son incorrectas | Esto proporciona el número y la lista de suscripciones que tenían problemas con la autenticación proporcionada. El error detallado se puede encontrar en el registro buscando el identificador de la suscripción. |
Número de suscripciones que no se pudieron intentar porque no están registradas en el proveedor de recursos | Esta sección contiene el recuento y la lista de suscripciones que no se han registrado en la extensión Agente de IaaS de SQL. |
Máquinas virtuales totales encontradas | Recuento de máquinas virtuales que se encontraron en el ámbito de los parámetros pasados al cmdlet. |
Máquinas virtuales ya registradas | Recuento de máquinas virtuales que se omitieron porque ya estaban registradas con la extensión. |
Número de máquinas virtuales registradas correctamente | Recuento de máquinas virtuales que se registraron correctamente después de ejecutar el cmdlet. Enumera las máquinas virtuales registradas en el formato SubscriptionID, Resource Group, Virtual Machine . |
Número de máquinas virtuales que no se pudieron registrar debido a un error | Recuento de máquinas virtuales que no se pudieron registrar debido a algún error. Los detalles del error se pueden encontrar en el archivo de registro. |
Número de máquinas virtuales omitidas porque la máquina virtual o el agente invitado de la máquina virtual no se está ejecutando | Recuento y la lista de máquinas virtuales que no se pudieron registrar porque la máquina virtual o el agente invitado de la máquina virtual no se estaba ejecutando. Se pueden reintentar una vez que se haya iniciado la máquina virtual o el agente invitado. Se puede encontrar más información en el archivo de registro. |
Número de máquinas virtuales omitidas porque no están ejecutando SQL Server en Windows | Recuento de máquinas virtuales que se omitieron porque no están ejecutando SQL Server o no son una máquina virtual de Windows. Las máquinas virtuales se enumeran en el formato SubscriptionID, Resource Group, Virtual Machine . |
Log
Los errores se registran en el archivo de registro denominado VMsNotRegisteredDueToError<Timestamp>.log
, donde la marca de tiempo es la hora a la que se inició el script. Si el error se encuentra en el nivel de suscripción, el registro contiene el identificador de suscripción separado por comas y el mensaje de error. Si el error está en el registro de la máquina virtual, el registro contiene el identificador de la suscripción, el nombre del grupo de recursos, el nombre de la máquina virtual, el código de error y el mensaje, separados por comas.
Observaciones
Al registrar máquinas virtuales con SQL Server con la extensión mediante el script proporcionado, tenga en cuenta lo siguiente:
- El registro con la extensión requiere un agente invitado que se ejecute en la máquina virtual con SQL Server. Las imágenes de Windows Server 2008 no tienen un agente invitado, por lo que se producirá un error en estas máquinas virtuales y se deberán registrar manualmente con funcionalidad limitada.
- Hay una lógica de reintento integrada para solucionar errores transparentes. Si la máquina virtual se ha registrado correctamente, es una operación rápida. Sin embargo, si se produce un error en el registro, se reintentará cada máquina virtual. Como tal, debe permitir un tiempo considerable para completar el proceso de registro (aunque el requisito de tiempo real depende del tipo y número de errores).
Script completo
Para el script completo en GitHub, consulte Registro de forma masiva de máquinas virtuales con SQL Server con Az PowerShell.
Copie el script completo y guárdelo como RegisterSqLVMs.psm1
.
Pasos siguientes
- Revise las ventajas que proporciona la extensión Agente de IaaS de SQL.
- Registre manualmente una VM única.
- Registre automáticamente todas las VM en una suscripción.
- Solución de problemas conocidos con la extensión
- Revise las declaraciones de privacidad de la extensión Agente de IaaS de SQL.
- Revise la lista de comprobación de procedimientos recomendados para optimizar el rendimiento y la seguridad.
Para obtener más información, consulte los artículos siguientes: