Planeación, implementación y comprobación de Azure SQL

Completado

Después de seleccionar una carga de trabajo para migrar o crear en Azure SQL, debe planear la implementación, implementar en consecuencia y comprobar que la implementación se haya realizado correctamente. En esta unidad, aprenderá varios métodos para cada paso del proceso.

Planeamiento previo a la implementación

Antes de empezar a implementar cosas en Azure, es importante saber cuáles son sus requisitos y cómo se corresponden con las ofertas de Azure SQL. Con lo que aprendió en el módulo de introducción a Azure SQL, cree un plan. Debe responder a las preguntas siguientes:

  • Método de implementación: ¿Azure Portal o la interfaz de la línea de comandos?
  • Opción de implementación: ¿máquina virtual, base de datos, grupo elástico, instancia administrada o grupo de instancias?
  • Modelo de compra (solamente Azure SQL Database): ¿DTU o núcleo virtual?
  • Nivel de servicio: ¿De uso general, Crítico para la empresa o Hiperescala?
  • Hardware: ¿Gen5 o algo nuevo?
  • Tamaño: ¿número de núcleos virtuales y Tamaño máximo de datos?

Posiblemente antes de responder a las preguntas anteriores, también tendrá que elegir una carga de trabajo para migrarla a Azure SQL o para que nazca en la nube. Si va a realizar la migración, hay muchas herramientas y recursos disponibles para ayudarle a planear, evaluar, migrar y optimizar las bases de datos y la aplicación. Los recursos se proporcionan al final de este módulo.

Límites de recursos

En el módulo de introducción a Azure SQL se han descrito los límites, las tasas y las funciones, como IOPS o OLTP en memoria. Hay otros límites de recursos que se ven afectados por la elección de Azure SQL Managed Instance, Azure SQL Database o las opciones de estas decisiones:

  • Memoria
  • Tamaño máximo del registro
  • Tasa de registro de transacciones
  • IOPS de datos
  • Tamaño de tempdb
  • Número máximo de trabajos simultáneos
  • Retención de copia de seguridad

Los límites de Azure SQL Managed Instance y Azure SQL Database dependen de la elección del modelo de compra, el nivel de servicio y el número de núcleos virtuales o DTU solo en Azure SQL Database.

Azure SQL Managed Instance y SQL Database son ofertas de plataforma como servicio (PaaS). La restricción de estas opciones no debe impedirle usar de forma completa un servicio administrado de SQL Server.

Dentro de una instancia de Azure SQL Database de uso general, la opción de proceso aprovisionado o sin servidor también afecta a estos límites. Antes de la implementación, revise qué incluye lo que piensa implementar para asegurarse de que comienza con lo que necesita.

Los recursos de Azure SQL tienen límites generales de recursos por suscripción y por región. Si tiene que aumentar los límites, puede solicitar un aumento de la cuota en Azure Portal.

Implementación

Una vez que haya completado la planeación anterior a la implementación, es el momento de poner el plan en acción. En esta fase, implemente Azure SQL (mediante Azure Portal o la línea de comandos), determine la configuración de red y realice una conexión inicial.

En el caso de Azure SQL Database y Azure SQL Managed Instance, esencialmente hay seis paneles en Azure Portal que se rellenan durante una implementación.

Diagram of the deployment panes for Azure SQL.

Servidor

Al crear una instancia administrada de Azure SQL, el nombre del servidor es el mismo que en SQL Server. En el caso de las bases de datos y los grupos elásticos, se requiere un servidor de Azure SQL Database. Un servidor de Azure SQL Database es un servidor lógico que actúa como punto administrativo central para una base de datos única o agrupada. Incluye inicios de sesión, reglas de firewall y de auditoría, directivas de detección de amenazas y grupos de conmutación por error. Más adelante obtendrá más información sobre estos elementos.

Este servidor lógico no expone ninguna característica o acceso de nivel de instancia como con Azure SQL Managed Instance. En el caso de los servidores de Azure SQL Database, el nombre del servidor debe ser único en todo Azure.

Proceso y almacenamiento

En el módulo anterior de esta ruta de aprendizaje, ha obtenido información sobre las opciones y recomendaciones para el proceso y el almacenamiento, incluidos los niveles de servicio, los modelos de compra y las generaciones de hardware. Debe seleccionar la configuración deseada durante la implementación. También debe determinar el número de núcleos virtuales y el tamaño máximo de datos.

Por lo general, si va a migrar, use un tamaño similar al que utiliza en el entorno local. También puede usar herramientas, como el recomendador de SKU de Data Migration Assistant, para calcular el número de núcleos virtuales y el Tamaño máximo de datos en función de la carga de trabajo actual.

El valor Tamaño máximo de datos no es necesariamente el tamaño de los datos actuales. Es la cantidad máxima de espacio de datos que se puede asignar a la base de datos. También le ayuda a comprender la asignación del espacio de registro, que se escala con el Tamaño máximo de datos.

Configuración de red

Las opciones de red para Azure SQL Database y Azure SQL Managed Instance son diferentes. Cuando se implementa Azure SQL Database, el valor predeterminado actual es Sin acceso.

Puede seleccionar un punto de conexión público o un punto de conexión privado. En el ejercicio siguiente a esta unidad, use el punto de conexión público y establezca la opción Permitir que los servicios y recursos de Azure accedan a este servidor en . Otros servicios de Azure, por ejemplo, Azure Data Factory o Azure Virtual Machines, pueden acceder a la base de datos si la configura. También puede seleccionar Agregar dirección IP del cliente actual si quiere poder conectarse desde la dirección IP del equipo cliente que ha usado para implementar Azure SQL Database.

Con Azure SQL Managed Instance, la implementación se realiza en una red virtual de Azure y una subred dedicada a las instancias administradas, lo que permite tener una dirección IP privada y segura. Azure SQL Managed Instance puede conectar una red local a una instancia administrada, conectar una instancia administrada a un servidor vinculado u otro almacén de datos local, y conectar una instancia administrada a otros recursos.

También puede habilitar un punto de conexión público para que pueda conectarse a una instancia administrada desde Internet sin una red privada virtual (VPN). Este acceso está deshabilitado de forma predeterminada.

Origen de datos

En Azure SQL Database, puede seleccionar la base de datos AdventureWorksLT como ejemplo cuando lleve a cabo la implementación en Azure Portal. En Azure SQL Managed Instance, primero se implementa la instancia y, después, las bases de datos de en su interior. No puede tener la base de datos de ejemplo tras la implementación, similar a SQL Server. Puede consultar más información sobre la base de datos de ejemplo AdventureWorks en GitHub.

También puede implementar una base de datos en blanco o crear una base de datos basada en la restauración de una copia de seguridad a partir de una copia de seguridad con replicación geográfica.

Intercalaciones de base de datos

En SQL Server y Azure SQL, las intercalaciones indican al motor de base de datos cómo tratar ciertos caracteres e idiomas. Una intercalación proporciona propiedades de distinción de mayúsculas y minúsculas, acentos y reglas de ordenación para los datos.

Al crear una nueva base de datos SQL o una instancia administrada, tenga en cuenta los requisitos de configuración regional de los datos con los que está trabajando. El conjunto de intercalación afecta a las características de muchas operaciones de la base de datos. En el producto SQL Server, la configuración regional del sistema operativo normalmente determina la intercalación predeterminada.

En Azure SQL Managed Instance, establezca la intercalación del servidor tras la creación de la instancia. Después no se puede cambiar. La intercalación del servidor establece el valor predeterminado para todas las bases de datos en esa instancia de Azure SQL Managed Instance, pero puede modificar las intercalaciones en un nivel de base de datos y de columna.

En Azure SQL Database, no se puede establecer la intercalación del servidor. Se establece en la intercalación predeterminada y más común de SQL_Latin1_General_CP1_CI_AS, pero puede establecer la intercalación de la base de datos. Para dividir ese valor en fragmentos:

  • SQL significa que se trata de una intercalación de SQL Server, en lugar de una intercalación binaria o de Windows.
  • Latin1_General especifica el alfabeto o idioma que se va a usar al ordenar.
  • CP1 hace referencia a la página de códigos que usa la intercalación.
  • CI significa que no distingue mayúsculas de minúsculas. CS distingue mayúsculas de minúsculas.
  • AS significa que distingue acentos. AI significa que no distingue acentos.

Hay otras opciones disponibles. Algunos ejemplos son los anchos de caracteres y la codificación UTF-8. En la documentación encontrará información más detallada sobre lo que puede y no puede hacer con Azure SQL.

Participación en Microsoft Defender for Cloud

Al implementar Azure SQL Database en Azure Portal, se le pregunta si quiere habilitar Microsoft Defender for Cloud como evaluación gratuita. Seleccione Comenzar prueba gratuita. Después de la evaluación gratuita, Defender for Cloud se factura según los precios del nivel estándar de Microsoft Defender for Cloud.

Después de habilitarlo, obtendrá funcionalidad relacionada con la identificación y mitigación de posibles vulnerabilidades de la base de datos, así como la detección de amenazas. Obtenga más información sobre estas funcionalidades en el siguiente módulo sobre seguridad de esta ruta de aprendizaje.

En Azure SQL Managed Instance, puede habilitar Microsoft Defender for Cloud en la instancia después de la implementación.

Revisión de selecciones

En el panel Revisar y crear, revise las selecciones de implementación y los términos de Azure Marketplace.

Sugerencia

También tiene la opción Descargar una plantilla para la automatización. Esta unidad no se describe ese método. Si está interesado, hay otros módulos disponibles en Microsoft Learn relacionados con las plantillas de Azure Resource Manager (plantillas de ARM).

Detalles clave de la implementación

Mientras Azure se encarga de la implementación, hay algunos detalles sobre la implementación que debe tener en cuenta. Todos los servicios se basan en la red troncal de Azure conocida como Azure Service Fabric. Comprender los fundamentos de cómo se implementan y escalan algunos de estos servicios en Azure Service Fabric le ayuda a entender los distintos comportamientos que podría ver.

Instancia administrada de Azure SQL

En segundo plano, para Azure SQL Managed Instance, Azure implementa un anillo dedicado, a veces denominado clúster virtual, para el servicio. Esta arquitectura ayuda a proporcionar compatibilidad con la seguridad y la red virtual nativa.

Debido a esta arquitectura, las operaciones de implementación y escalado pueden tardar más tiempo. Por ejemplo, al escalar o reducir verticalmente, Azure implementa un nuevo clúster virtual automáticamente y, a continuación, lo inicializa con los datos. Puede considerar que cada instancia se ejecuta en una sola máquina virtual.

Los grupos de instancias de Azure SQL se han introducido para ayudar con el tiempo de implementación prolongado. Puede realizar una implementación previa de un grupo de recursos dedicados. Las operaciones de implementación en un grupo y escalado dentro de un grupo son más rápidas que las implementaciones tradicionales. También obtiene una densidad de empaquetado superior, ya que puede implementar varias instancias en una sola máquina virtual.

Azure SQL Database

Azure SQL Database está incluido en un servidor de base de datos lógico. En la mayoría de los casos, una instancia de SQL Server dedicada hospeda una base de datos SQL, pero no tiene que preocuparse por la administración de la instancia.

El servidor de bases de datos lógico le proporciona algo a lo que conectarse. También le permite agrupar y administrar ciertos permisos y configuraciones. Dentro de cada servidor de bases de datos lógica hay una base de datos principal lógica, que puede proporcionar diagnósticos de nivel de instancia.

Azure SQL Database: Hiperescala

El nivel Hiperescala de Azure SQL Database, que no está disponible en Azure SQL Managed Instance, tiene una arquitectura única para Azure SQL. El equipo de Azure SQL rediseñó el nivel Hiperescala para la nube. Esta arquitectura incluye un sistema de almacenamiento en caché multicapa que puede ayudar con la velocidad y la escala. El escalado y otras operaciones ya no están relacionadas con el tamaño de los datos y se pueden completar en tiempo constante, en cuestión de minutos. El uso de almacenamiento remoto también permite copias de seguridad de instantáneas.

En un módulo siguiente de la ruta de aprendizaje sobre los aspectos básicos de Azure SQL, obtendrá más información relacionada con la arquitectura y cómo afecta al rendimiento y la disponibilidad. Una consideración que debe tener en cuenta durante la fase de implementación es que, después de mover una base de datos al nivel Hiperescala, no es posible retroceder a los niveles De uso general o Crítico para la empresa.

Gobernanza de recursos

A medida que aumenta o disminuye los recursos en un nivel de servicio, los límites de dimensiones como la CPU, el almacenamiento y la memoria podrían cambiar hasta un umbral determinado. Aunque en Azure SQL existe un enfoque de gobernanza con varias facetas, las tres tecnologías siguientes se utilizan principalmente para controlar el uso de los recursos en Azure SQL:

  • Los objetos de trabajo de Windows permiten administrar y gobernar un grupo de procesos como una unidad. Los objetos de trabajo se usan para controlar la confirmación de la memoria virtual del archivo, los límites del espacio de trabajo, la afinidad de la CPU y los límites de velocidad. Puede usar la vista de administración dinámica sys.dm_os_job_object para ver los límites en vigor.
  • Resource Governor es una característica de SQL Server que ayuda a los usuarios (y, en este caso, a Azure) a controlar recursos como la CPU, la E/S física y la memoria. Azure SQL Managed Instance también permite grupos de cargas de trabajo y agrupaciones definidos por el usuario para Resource Governor.
  • El Administrador de recursos del servidor de archivos está disponible en Windows Server. Controla las cuotas del directorio de archivos, que se usan para administrar el Tamaño máximo de los datos.

Mediante la gobernanza de la velocidad del registro de transacciones se integran otras implementaciones para controlar la velocidad del registro de transacciones en el motor de base de datos de Azure. Este proceso limita las tasas de ingesta elevadas para cargas de trabajo como BULK INSERT, SELECT INTOy compilaciones de índice. Se realiza su seguimiento y se aplican en el nivel de subsegundos. Actualmente se escalan dentro de un nivel de servicio de forma lineal.

Comprobación

Una vez que haya completado la implementación, es el momento de comprobarla. En esta fase, normalmente se comprueban los resultados en Azure Portal o la CLI de Azure, se ejecutan algunas consultas que comprueban la configuración de implementación y se retocan según sea necesario.

En el caso de Azure SQL Managed Instance y Azure SQL Database, lo primero que podría hacer es comprobar el estado de la base de datos o la instancia con Azure Portal o la CLI de Azure. A continuación, puede revisar los detalles de la implementación y el registro de actividad para asegurarse de que no haya errores ni problemas activos.

En el caso de Azure SQL Managed Instance, puede comprobar el registro de errores, que es algo habitual en SQL Server local o en una máquina virtual de Azure. Esta funcionalidad no está disponible en Azure SQL Database.

Por último, probablemente confirme que la red está configurada de forma correcta, que obtenga el nombre del servidor y se conecte en una herramienta como SQL Server Management Studio o Azure Data Studio. Puede ejecutar varias consultas para comprender mejor lo que ha implementado y comprobar que se ha implementado correctamente:

SELECT @@VERSION
SELECT * FROM sys.databases
SELECT * FROM sys.objects
SELECT * FROM sys.dm_os_schedulers
SELECT * FROM sys.dm_os_sys_info
SELECT * FROM sys.dm_os_process_memory --Not supported in Azure SQL Database
SELECT * FROM sys.dm_exec_requests
SELECT SERVERPROPERTY('EngineEdition')
SELECT * FROM sys.dm_user_db_resource_governance -- Available only in Azure SQL Database and SQL Managed Instance
SELECT * FROM sys.dm_instance_resource_governance -- Available only in Azure SQL Managed Instance
SELECT * FROM sys.dm_os_job_object -- Available only in Azure SQL Database and SQL Managed Instance

Una consulta relacionada con la memoria de proceso del sistema operativo no se admite en Azure SQL Database, aunque pueda parecer que funciona. Esta consulta no se admite porque, con Azure SQL Database, algunos aspectos relacionados con el sistema operativo se abstraen para que se pueda centrar en la base de datos.

Las tres últimas consultas solo están disponibles en Azure SQL Database y Azure SQL Managed Instance. La primera, sys.dm_user_db_resource_governance, devuelve la configuración y la capacidad que usan los mecanismos de gobernanza de recursos en la base de datos o el grupo elástico actual. Puede obtener información similar para una instancia Azure SQL Managed Instance con el segundo sys.dm_instance_resource_governance. La tercera, sys.dm_os_job_object, devuelve una sola fila en la que se describe la configuración del objeto de trabajo que administra el proceso de SQL Server y las estadísticas de consumo de recursos.

En los dos ejercicios siguientes se describen todos los detalles implicados en la implementación de Azure SQL Database o Azure SQL Managed Instance. Use su suscripción de Azure para implementar Azure SQL Database. Después de la implementación, use varias consultas de comprobación y ejecute previamente cuadernos de SQL en Azure Data Studio para comparar SQL Database, SQL Managed Instance y SQL Server 2019.

Prueba de conocimientos

1.

¿Cuál de las opciones siguientes tiene límites en función de la opción de implementación y el nivel de servicio?

2.

Para comprobar las implementaciones, hay nuevas consultas específicas de Azure SQL Database y Azure SQL Managed Instance. ¿Cuál de las consultas siguientes solo están disponibles para la plataforma como servicio (PaaS) de Azure SQL?