Bases de datos, topologías de implementación y copia de seguridad

Azure DevOps Server 2022 | Azure DevOps Server 2020 | Azure DevOps Server 2019

Puede ayudar a proteger la implementación frente a la pérdida de datos mediante la creación de una programación periódica de copias de seguridad para las bases de datos de las que depende Azure DevOps Server. Para restaurar completamente la implementación de Azure DevOps Server, primero realice una copia de seguridad de todas las bases de datos de Azure DevOps Server.

Si la implementación incluye SQL Server Reporting Services, también debe realizar una copia de seguridad de las bases de datos que Azure DevOps usa en esos componentes. Para evitar errores de sincronización o de no coincidencia de datos, tiene que sincronizar todas las copias de seguridad en la misma marca de tiempo. La manera más sencilla de garantizar la sincronización correcta es usar transacciones marcadas. Al marcar periódicamente las transacciones relacionadas en cada base de datos, se establece una serie de puntos de recuperación comunes en las bases de datos. Para obtener instrucciones paso a paso para realizar copias de seguridad de una implementación de servidor único que usa informes, consulte Creación de una programación y un plan de copia de seguridad.

Copias de seguridad de bases de datos

Proteja la implementación de Azure DevOps frente a la pérdida de datos mediante la creación de copias de seguridad de base de datos. En la tabla siguiente y las ilustraciones complementarias se muestran las bases de datos de las que se va a realizar una copia de seguridad y se proporcionan ejemplos de cómo esas bases de datos se pueden distribuir físicamente en una implementación.

Tipo de base de datos Producto ¿Componente necesario?
Base de datos de configuración Azure DevOps Server
Base de datos de almacén Azure DevOps Server
Bases de datos de colecciones de proyectos Azure DevOps Server
Bases de datos de informes SQL Server Reporting Services No
Bases de datos de análisis SQL Server Analysis Services No

Topologías de implementación

En función de la configuración de su implementación, todas las bases de datos que necesiten copia de seguridad podrían estar en el mismo servidor físico, como en esta topología de ejemplo.

Nota

En este ejemplo no se incluyen Reporting Services ni productos de SharePoint, por lo que no es necesario realizar copias de seguridad de ninguna base de datos asociada a informes, análisis o productos de SharePoint.

Estructura de base de datos Azure DevOps Server simple

Como alternativa, las bases de datos podrían estar distribuidas en varios servidores y granjas de servidores. En esta topología de ejemplo, debe hacer copia de seguridad de las siguientes bases de datos, escaladas en seis servidores o granjas de servidores:

  • la base de datos de configuración

  • la base de datos de almacén

  • las bases de datos de colección de proyectos que se encuentran en el clúster de SQL Server

  • la base de datos de recopilación que se encuentra en el servidor independiente que ejecuta SQL Server

  • las bases de datos que se encuentran en el servidor que está ejecutando Reporting Services

  • la base de datos que se encuentra en el servidor que está ejecutando Analysis Services

  • las bases de datos administrativas productos de SharePoint y las bases de datos de colección de sitios para las aplicaciones web de SharePoint

    Si las bases de datos de SharePoint se escalan entre varios servidores, no puede usar la característica Copias de seguridad programadas para realizar copias de seguridad. Debe configurar manualmente las copias de seguridad de esas bases de datos y asegurarse de que esas copias de seguridad se sincronizan con las copias de seguridad de base de datos Azure DevOps Server. Para más información, consulte Realización de una copia de seguridad manual en Azure DevOps Server.

Estructura compleja de la base de datos de Azure DevOps Server

En ambos ejemplos, no es necesario que haga copia de seguridad de los clientes que conectan al servidor. Sin embargo, es posible que tenga que borrar manualmente las memorias caché de Azure DevOps Server en los equipos cliente para poder volver a conectarse a la implementación restaurada.

Bases de datos cuya copia de seguridad se va a realizar

En la lista siguiente se proporcionan detalles adicionales sobre lo que debe realizar una copia de seguridad, en función de los recursos de implementación.

Importante

Todas las bases de datos de la lista siguiente son SQL Server bases de datos. Aunque puede usar SQL Server Management Studio para realizar copias de seguridad de bases de datos individuales en cualquier momento, debe evitar el uso de estas copias de seguridad individuales siempre que sea posible. Es posible que experimente resultados inesperados si restaura desde copias de seguridad individuales porque todas las bases de datos que usa Azure DevOps están relacionadas. Si realiza una copia de seguridad de solo una base de datos, es posible que los datos de esa base de datos no se sincronicen con los datos de las otras bases de datos.

  • Bases de datos para Azure DevOps Server: el nivel de datos lógico para Azure DevOps Server incluye varias bases de datos de SQL Server, incluida la base de datos de configuración, la base de datos de almacenamiento y una base de datos para cada colección de proyectos de la implementación. Estas bases de datos pueden estar en el mismo servidor, distribuidas entre varias instancias de la misma implementación SQL Server o distribuidas entre varios servidores. Independientemente de su distribución física, debe hacer copias de seguridad de todas las bases de datos en la misma marca de tiempo a fin de contar con garantías frente a la pérdida de datos. Puede realizar las copias de seguridad manual o automáticamente mediante planes de mantenimiento que se ejecuten en momentos o a intervalos específicos.

    Importante

    La lista de bases de datos de Azure DevOps no es estática. Se crea una nueva base de datos cada vez que crea una colección. Al crear una colección, asegúrese de agregar la base de datos de dicha colección al plan de mantenimiento.

  • Bases de datos para Reporting Services y Analysis Services: si la implementación usa SQL Server Reporting Services o SQL Server Analysis Services para generar informes para Azure DevOps Server, debe realizar una copia de seguridad de las bases de datos de informes y análisis. Sin embargo, tendrá que volver a generar ciertas bases de datos tras la restauración, como el almacén.
  • Clave de cifrado para el servidor de informes : el servidor de informes tiene una clave de cifrado de la que debe realizar una copia de seguridad. Esta clave protege información confidencial almacenada en la base de datos del servidor de informes. Puede realizar una copia de seguridad manual de esta clave mediante la herramienta de configuración de Reporting Services o una herramienta de la línea de comandos.

Preparación preliminar de las copias de seguridad

Al implementar Azure DevOps, debe mantener un registro de las cuentas que cree y los nombres de equipo, las contraseñas y las opciones de configuración que especifique. También debería conservar una copia de todos los materiales, documentos y bases de datos de recuperación, así como de las copias de seguridad del registro de transacciones, en una ubicación segura. Para protegerse frente a un desastre, como un incendio o un terremoto, debería conservar duplicados de las copias de seguridad del servidor en una ubicación distinta a la de los servidores. Esta estrategia le ayudará a protegerse frente a la pérdida de datos críticos. Como procedimiento recomendado, debería conservar tres copias de los soportes de copias de seguridad y al menos una copia fuera de las instalaciones en un entorno controlado.

Importante

Realice periódicamente una restauración de prueba de los datos para comprobar que la copia de seguridad de los archivos es correcta. Una restauración de prueba puede revelar problemas de hardware que no aparecen con una comprobación solo de software.

Cuando realiza una copia de seguridad y restaura una base de datos, debe hacer la copia de seguridad de los datos en soportes con una dirección de red (por ejemplo, cintas y discos compartidos como unidades de red). El plan de copia de seguridad debe incluir disposiciones para administrar soportes, como las siguientes tácticas:

  • Un plan de seguimiento y administración para almacenar y reciclar los conjuntos de copias de seguridad.
  • Un programa para sobrescribir los soportes de copias de seguridad.
  • En un entorno multiservidor, la decisión de utilizar copias de seguridad centralizadas o distribuidas.
  • Una manera de realizar el seguimiento de la vida útil de los soportes.
  • Un procedimiento para minimizar los efectos de la pérdida de un conjunto de copias de seguridad o de soportes de copias de seguridad (por ejemplo, una cinta).
  • La decisión de almacenar conjuntos de copias de seguridad en las instalaciones o fuera de ellas, y un análisis de cómo puede afectar esta decisión al tiempo de recuperación.

Dado que los datos de Azure DevOps se almacenan en bases de datos de SQL Server, no es necesario realizar copias de seguridad de los equipos en los que están instalados los clientes de Azure DevOps. Si se produjo un error multimedia o un desastre que implicaban esos equipos, puede volver a instalar el software cliente y volver a conectarse al servidor. Al volver a instalar el software cliente, los usuarios tendrán una alternativa más limpia y confiable para restaurar un equipo cliente a partir de una copia de seguridad.

Puede realizar una copia de seguridad de un servidor mediante las características de Copias de seguridad programadas disponibles o mediante la creación manual de planes de mantenimiento en SQL Server para realizar copias de seguridad de las bases de datos relacionadas con la implementación de Azure DevOps. Las bases de datos de Azure DevOps funcionan en relación entre sí y, si crea un plan manual, debe realizar una copia de seguridad de ellas y restaurarlas al mismo tiempo. Para obtener más información sobre las estrategias para realizar copias de seguridad de bases de datos, consulte Copia de seguridad y restauración de bases de datos SQL Server.

Tipos de copias de seguridad

Comprender los tipos de copias de seguridad disponibles le ayuda a determinar las mejores opciones para realizar copias de seguridad de la implementación. Por ejemplo, si trabaja con una implementación de gran tamaño y desea protegerse frente a la pérdida de datos a la vez que usar eficazmente los recursos de almacenamiento limitado, puede configurar copias de seguridad diferenciales y copias de seguridad de todos los datos. Si usa SQL Server Always On, puede realizar copias de seguridad de la base de datos secundaria. También puede probar a usar la comprensión de copias de seguridad o la división de estas en varios archivos. A continuación se incluye una breve descripción de cada una de las opciones de copia de seguridad:

Copias de seguridad de datos completas (bases de datos)

Se necesita una copia de seguridad completa de la base de datos para la capacidad de recuperación de la implementación. Una copia de seguridad completa incluye parte del registro de transacciones para que se pueda recuperar la copia de seguridad completa. Las copias de seguridad completas son autónomas, ya que representan la base de datos completa tal como era al hacer la copia de seguridad. Para más información, consulte Copias de seguridad completas de bases de datos.

Copias de seguridad diferenciales de datos (bases de datos)

Una copia de seguridad diferencial de la base de datos registra solo los datos que han cambiado desde la última copia de seguridad completa de la base de datos, que se denomina base diferencial. Las copias de seguridad diferenciales son más pequeñas y rápidas que las copias de seguridad completas. Esta opción ahorra tiempo a costa de una mayor complejidad. En las bases de datos grandes, las copias de seguridad diferenciales se pueden realizar a intervalos más cortos que las copias de seguridad completas, lo que reduce el riesgo de pérdidas de trabajo. Para más información, consulte Copias de seguridad diferenciales de bases de datos.

También debería hacer copias de seguridad de sus registros de transacciones con regularidad. Estas copias de seguridad son necesarias para recuperar los datos al utilizar el modelo de copias de seguridad completas de bases de datos. Si realiza una copia de seguridad de los registros de transacciones, puede recuperar la base de datos al punto de error o a un momento dado anterior.

Copias de seguridad del registro de transacciones

El registro de transacciones es un registro serie de todas las modificaciones que se han producido en una base de datos, además de la transacción que realizó cada modificación. El registro de transacciones registra el inicio de cada transacción, los cambios efectuados en los datos y, si fuera necesario, información suficiente para deshacer las modificaciones realizadas durante esa transacción. El registro crece continuamente al ir registrándose operaciones en la base de datos.

Al realizar copias de seguridad de los registro de transacciones, puede recuperar la base de datos en un momento anterior en el tiempo. Por ejemplo, puede restaurar la base de datos a un punto antes de que se especificaran datos no deseados o se produjera un error. Además de las copias de seguridad de la base de datos, las copias de seguridad del registro de transacciones deben formar parte de su estrategia de recuperación. Para obtener más información, consulte Copias de seguridad del registro de transacciones (SQL Server).

Las copias de seguridad del registro de transacciones utilizan generalmente menos recursos que las copias de seguridad completas. Por consiguiente, puede crear copias de seguridad del registro de transacciones con más frecuencia que copias de seguridad completas, lo que reduce el riesgo de pérdida de datos. Sin embargo, a veces una copia de seguridad del registro de transacciones es mayor que una copia de seguridad completa. Por ejemplo, una base de datos con una tasa de transacciones alta hace que el registro de transacciones crezca rápidamente. En este caso, debería crear copias de seguridad del registro de transacciones más a menudo. Para obtener más información, consulte Solución de problemas de un registro de transacciones completo (SQL Server error 9002).

Puede realizar los siguientes tipos de copias de seguridad del registro de transacciones:

  • Una copia de seguridad pura del registro sólo contiene registros del registro de transacciones para un intervalo, sin ningún cambio masivo.
  • Una copia de seguridad masiva del registro incluye el registro y las páginas de datos cambiadas por operaciones masivas. No es posible la recuperación a un momento dado en el tiempo.
  • Se toma una copia de seguridad del registro de cola de una base de datos posiblemente dañada para capturar los registros del registro de los que no se ha hecho aún una copia de seguridad. Una copia de seguridad del registro de cola se toma después de un error para evitar la pérdida de trabajo; esta copia puede contener datos de un registro puro o de un registro masivo.

Dado que la sincronización de datos es fundamental para la restauración correcta de Azure DevOps Server, debe usar transacciones marcadas como parte de la estrategia de copia de seguridad si va a configurar las copias de seguridad manualmente. Para obtener más información, consulte Creación de una programación y un plan de copia de seguridad yCopia de seguridad manual de Azure DevOps Server.

Copias de seguridad de servicio de nivel de aplicación

La única copia de seguridad necesaria para el nivel de aplicación lógica es para la clave de cifrado para Reporting Services. Si usa la característica Copias de seguridad programadas para hacer copias de seguridad de la implementación, se creará una copia de seguridad de dicha clave como parte del plan. Puede suponer que debe realizar copias de seguridad de sitios web usados como portales de proyecto.

Aunque puede realizar una copia de seguridad de un nivel de aplicación más fácilmente que un nivel de datos, todavía hay varios pasos para restaurar un nivel de aplicación. Debe instalar otro nivel de aplicación para Azure DevOps Server, redirigir colecciones de proyectos para usar el nuevo nivel de aplicación y redirigir los sitios del portal para proyectos.

Nombres de bases de datos predeterminadas

Si no personaliza los nombres de las bases de datos, puede usar la tabla siguiente para identificar las bases de datos usadas en la implementación de Azure DevOps Server. Como se mencionó anteriormente, no todas las implementaciones tienen todas estas bases de datos. Por ejemplo, si no configuró Azure DevOps Server con Reporting Services, no tendrá las bases de datos ReportServer o ReportServerTempDB. Del mismo modo, no tendrá la base de datos para System Center Virtual Machine Manager (SCVMM), VirtualManagerDB, a menos que configure Azure DevOps Server para admitir Lab Management. Además, las bases de datos que Azure DevOps Server usan pueden distribuirse en más de una instancia de SQL Server o en más de un servidor.

Nota

De forma predeterminada, el prefijo TFS_ se agrega a los nombres de las bases de datos que se crean automáticamente al instalar Azure DevOps Server o mientras funciona.

Base de datos Descripción
TFS_Configuration La base de datos de configuración para Azure DevOps Server contiene el catálogo, los nombres de servidor y los datos de configuración de la implementación. El nombre de esta base de datos puede incluir caracteres adicionales entre TFS_ y Configuración, como el nombre de usuario de la persona que instaló Azure DevOps Server. Por ejemplo, el nombre de la base de datos podría ser TFS_UserNameConfiguration
TFS_Warehouse La base de datos de configuración contiene los datos para compilar el almacén que emplea Reporting Services. El nombre de esta base de datos puede incluir caracteres adicionales entre TFS_ y Warehouse, como el nombre de usuario de la persona que instaló Azure DevOps Server. Por ejemplo, el nombre de la base de datos podría ser TFS_UserNameWarehouse.
TFS_CollectionName La base de datos de una colección de proyectos contiene todos los datos de los proyectos de esa colección. Estos datos incluyen código fuente, configuraciones de compilación y configuraciones de Lab Management. El número de bases de datos de colección será igual que el número de colecciones. Por ejemplo, si tiene tres colecciones en la implementación, debe realizar una copia de seguridad de estas tres bases de datos de recopilación. El nombre de cada base de datos puede incluir caracteres adicionales entre TFS_ y CollectionName, como el nombre de usuario de la persona que creó la colección. Por ejemplo, el nombre de una base de datos de colección podría ser TFS_UserNameCollectionName.
TFS_Analysis La base de datos de SQL Server Analysis Services contiene los orígenes de datos y los cubos para la implementación de Azure DevOps Server. El nombre de esta base de datos puede incluir caracteres adicionales entre TFS_ y Analysis, como el nombre de usuario de la persona que instaló Analysis Services. Por ejemplo, el nombre de la base de datos podría ser TFS_UserNameAnalysis.
Nota: Puede realizar una copia de seguridad de esta base de datos, pero debe recompilar el almacén a partir de la base de datos de TFS_Warehouse restaurada.
ReportServer La base de datos para Reporting Services contiene los informes y la configuración del informe para la implementación de Azure DevOps Server.
Nota: Si Reporting Services está instalado en un servidor independiente de Azure DevOps Server, es posible que esta base de datos no esté presente en el servidor de capa de datos para Azure DevOps Server. En ese caso, debe configurar, realizar una copia de seguridad y restaurarla por separado de Azure DevOps Server. Debe sincronizar el mantenimiento de las bases de datos para evitar errores de sincronización.
ReportServerTempDB La base de datos temporal de Reporting Services almacena información de forma temporal cuando se ejecutan informes concretos.
Nota: Si Reporting Services está instalado en un servidor independiente que Azure DevOps Server, es posible que esta base de datos no esté presente en el servidor de capa de datos para Azure DevOps Server. En este caso, debe configurarlo, realizar una copia de seguridad y restaurarlo por separado de Azure DevOps Server. Sin embargo, debe sincronizar el mantenimiento de las bases de datos para evitar errores de sincronización.
VirtualManagerDB La base de datos de administración de SCVMM contiene la información que ve en la Consola de administrador de SCVMM, como máquinas virtuales, hosts de máquina virtual, servidores de biblioteca de máquinas virtuales y sus propiedades.
Nota: Si SCVMM está instalado en un servidor independiente que Azure DevOps Server, es posible que esta base de datos no esté presente en el servidor de capa de datos para Azure DevOps Server. En ese caso, debe configurar, realizar una copia de seguridad y restaurarla por separado de Azure DevOps Server. Sin embargo, debe utilizar transacciones marcadas y sincronizar el mantenimiento de las bases de datos para evitar errores de sincronización.