Cómo automatizar la codificación y envío por lotes de objetos SQL al control de versiones

Muchos equipos de desarrollo tienen la necesidad de una solución rápida pero efectiva para enviar objetos de bases de datos SQL Server al control de versiones, pero no están listos para moverse a una integración total.

Para que los objetos estén bajo el control de versiones en un enfoque “económico”, scripts de creación necesitan ser producidos para cada tabla, procedimiento almacenado, o cualquier otro objeto en la base de datos. Después, los scripts necesitan ser enviados a un sistema de control de versiones.

julio 22, 2017

Cómo sincronizar automáticamente los datos en dos bases de datos SQL Server en un programa

Desafío

Es a menudo necesario tener una manera de sincronizar datos entre bases de datos SQL en tiempo real, por ejemplo, cuando un cierto dato es cambiado/añadido en un lugar (base de datos) a ser sincronizado con otra base de datos. Los cambios necesitan ser detectados automáticamente en un programa, y sincronizados automáticamente con otra base de datos. Este proceso debería ser completamente automatizado y correr sin supervisión.

julio 22, 2017

Viendo las dependencias de un objeto en SQL Server

Eliminar o cambiar objetos puede afectar otros objetos de la base de datos como vistas o procedimientos que dependen de ellos y, en ciertas instancias, pueden “romper” el objeto dependiente. Un ejemplo puede ser si una Vista consulta a una tabla y el nombre de esa tabla cambia. La Vista no funcionará más.

julio 7, 2017

Técnicas para identificar consultas bloqueadoras y causas de bloqueos de SQL Server

Los procesos bloqueados causados por bloqueos en los objetos de la base de datos son un problema común. El bloqueo asegura la integridad de los datos almacenados dentro de las bases de datos forzando cada transacción SQL Server ejecutada a pasar la prueba ACID que considera que cada transacción debe cumplir con los siguientes requerimientos:

julio 7, 2017

Recuperar una base de datos SQL Server usando sólo un archivo de registro de transacciones y archivos antiguos de respaldo

Tener un buen plan de recuperación que asegure que los respaldos de la base de datos están siendo tomados en cuenta de manera regular y almacenados de forma segura en dispositivos de almacenamiento específicos o múltiples, incrementa grandemente la seguridad de la base de datos y las opciones de recuperación cuando un desastre o un accidente ocurren. Sin embargo, crear respaldos completos de la base de datos regularmente no provee una recuperación completa a un punto de tiempo, ya que restaurar el último respaldo completo restaurará la base de datos a un estado apropiado en el tiempo en que el respaldo fue creado, pero todos los cambios, tanto de esquema como de datos, que han ocurrido después del último respaldo completo estarán prácticamente perdidos.

julio 7, 2017

Administrar y monitorear copias de seguridad de SQL Server desde una localización central

Introducción

Correr y mantener múltiples instancias de SQL Server puede ser a menudo un desafío formidable, especialmente si estas instancias corren e múltiples servidores. Es suficientemente fácil configurar un trabajo de SQL Server Agent para cada servidor para automatizar las copias de seguridad, pero ¿qué pasa si hay 20, 30 o 100 servidores que necesitan mantenimiento? En este escenario, configurar agentes en cada servidor tomaría demasiado tiempo, y monitorear la configuración entera sería una pesadilla para cualquier administrador. Por supuesto, Hay muchas soluciones para este escenario:

julio 7, 2017

Cómo modificar de forma segura procedimientos almacenados SQL y parámetros de funciones SQL

Modificar los parámetros de una función SQL o un procedimiento almacenado no es una tarea simple si deseamos mantener las dependencias y la integridad de la base de datos. ApexSQL Refactor es un complemento para SQL Server Management Studio y Visual Studio para formato SQL con una colección de refactorizaciones útiles de código. En este artículo, describiremos una refactorización particular para la modificación segura de parámetros.

julio 7, 2017

Cómo mantener funcionando los cambios de bases de datos SQL con ramas Git

En el caso del desarrollo de bases de datos, de la misma manera que para el desarrollo de aplicaciones, siempre hay tareas como desarrollar una nueva característica, arreglar un error del lanzamiento actual, experimentar con código para mejorar el desempeño, la usabilidad en cualquier forma y más. Por todo esto, es esencial que cualquier cambio que haya sido enviado, pero no inmediatamente, sea segregado a un ambiente aislado, de modo que no afecte al resto del equipo o el código principal. Por ejemplo, cuando se está desarrollando una nueva característica, puede que requiera que muchos cambios se envíen antes de la característica, o incluso una parte funcional de la característica se vuelve útil, de modo que el resto del equipo pueda aplicarla en sus copias locales de la base de datos. Sin tener el aislamiento mientras se desarrolla, el equipo no tendrá la libertad de codificar sin tener que preocuparse acerca de romper el código base existente.

julio 7, 2017