Skip to content

Tareas automáticas en Azure SQL Database

Una de las labores más comunes en una base de datos es el programar la ejecución de tareas. Diferentes herramientas, y con diferentes alcances, pueden ser utilizadas cuando hablamos de la nube. Ahora veremos cómo programar tareas automáticas en Azure SQL Database.

Si quieres ver cómo crear una base de datos en la nube puedes ver la publicación y video en el artículo Configurar Azure SQL Database.

Antes de empezar

Si has pensado hacer lo mismo que haces en tu ambiente on premises, puedes encontrarte con una barrera. Azure SQL Database no cuenta con un SQL Server Agent, entonces no podrás programar un Job tradicional de SQL Server. Mira las características de Azure SQL.

¿Qué opciones tengo?

Automatizar tareas con un Runbook en Azure.

Necesitas crear un Automation Account

Ingresa a tu portal de Azure y busca el recurso llamado Automation Accounts. Primero vas a crear una.

1. Crea el Automation Account

tareas-automaticas-en-azure-sql-database

Para crear este Automation Account, simplemente debes llenar los datos correspondientes al nombre de la cuenta que vas a crear, seleccionar la suscripción a la que pertenece el recurso, seleccionar (o crear un nuevo) Resource Group y finalmente seleccionar la locación del recurso.

tareas-automaticas

Esta creación puede demorarse cerca a un minuto. Cuando el recurso ya está creado, el segundo paso es crear una Credential. Esto lo encuentras en el menú correspondiente a Shared Resources como puedes verlo en la imagen.

2. Adiciona una Credencial

Las credenciales deben ser de un usuario con acceso a la base de Azure SQL Database.

3. Importa el Módulo correspondiente a SQL

Ingresa al apartado correspondiente a Modules como se ve a continuación.

Verifica que tengas el Módulo SqlServer. Si no lo tienes en esa lista, ingresa a la siguiente opción en el Menú correspondiente a Modules gallery y busca SqlServer.

Selecciona el que se ve en la imagen anterior e impórtalo. Este proceso podría tomarse algunos minutos.

4. Crea un Runbook

La ejecución automática será a través de un Runbook. Búscalo en el menú como se ve en la imagen y créalo.

Ahora procederás a crear la tarea

tareas-automaticas-runbook
(El Invoke-Sqlcmd no debe tener retornos de carro)

Puedes usar este código para el PS.

$AzureSQLServerName = "azuredbdatoptim"
$AzureSQLDatabaseName = "SQLDB911"

$AzureSQLServerName = $AzureSQLServerName + ".database.windows.net"
$Cred = Get-AutomationPSCredential -Name "AzureSQL_Cred"
$SQLOutput = $(Invoke.sqlcmd -ServerInstance $AzureSQLServerName -Username $Cred.UserName -Password $Cred.GetNetworkCredential().Password -Database $AzureSQLDatabaseName -Query "SELECT getdate()")

Write-Output $SQLOutput

Dale click al botón de Save y luego al botón de Publish.

5. Programa la tarea

tareas-automaticas-runbook-schedule
tareas-automaticas-runbook-schedule-2

En la primera opción Schedule podrás crear una nueva agenda para la ejecución automática de tu tarea. No hay mucho que explicar aquí pues las opciones son claras.

Consideraciones a las tareas automáticas en Azure SQL Database

Ya tienes listas tus tareas y ya están programadas. Verifica siempre su correcto funcionamiento. Como siempre, el testing no está demás.

Si vas a hacer tareas muy fuertes, valida que tus recursos se encuentren en los parámetros que esperas.

Piensa en todas las tareas de mantenimiento que haces en un SQL Server on premises y cuestiona si son necesarias hacerlas también en tu nueva base en la nube.

www.datoptim.com
I love working on SQL Server Performance Tuning and finding the origin of the problems. Music and SQL Server passionate.

Esta entrada tiene 6 comentarios

  1. Hola, necesito hacer un job scheduler de un procedimiento almacenado cuyo resultado sea guardado en un archivo txt, ¿esto puedo hacerlo también? Si es asi, ¿cómo indicaría en qué lugar de Azure queda el archivo?
    Saludos

  2. Tengo que ejecutar mantenimientos mensuales, para desfragmentar 600 Bases de datos. Ya realice pruebas de la forma en la mencionas, ejecutando un procedimiento almacenado en la BD. La prueba se realizó sobre una base de datos y funciono correctamente. ¿Debido a la cantidad de BD, esta es la mejor opción o existe alguna otra alternativa, más viable?
    De antemano. Gracias.

    1. Hola José Luis. Tal como dice el artículo, lo más importante de las tareas de mantenimiento es ver que ellas sean necesarias de hacer. Automatizaciones existen muchas maneras, encontrar prioridades es algo que depende 100% de nuestros entornos.

Los comentarios están cerrados.

Carrito
Volver arriba