Поделиться через


Базы данных, топологии развертывания и резервное копирование

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

Вы можете защитить развертывание от потери данных, создав регулярное расписание резервных копий для баз данных, от которой зависит Azure DevOps Server. Чтобы полностью восстановить развертывание Azure DevOps Server, сначала создайте резервную копию всех баз данных Azure DevOps Server.

Если развертывание включает службы SQL Server Reporting Services, необходимо также создать резервную копию баз данных, которые Azure DevOps использует в этих компонентах. Чтобы предотвратить ошибки синхронизации или ошибки несоответствия данных, необходимо синхронизировать все резервные копии с одной меткой времени. Самый простой способ обеспечить успешную синхронизацию — использовать помеченные транзакции. Помечая связанные транзакции в каждой базе данных, вы устанавливаете ряд общих точек восстановления в базах данных. Пошаговые инструкции по резервному копированию односерверного развертывания, использующего отчеты, см. в статье "Создание расписания резервного копирования и плана".

Резервное копирование баз данных

Защита развертывания Azure DevOps от потери данных путем создания резервных копий базы данных. В следующей таблице и сопроводительных иллюстрациях показаны резервные копии баз данных и приведены примеры физического распределения этих баз данных в развертывании.

Тип базы данных Продукт Обязательный компонент?
База данных конфигурации Azure DevOps Server Да
База данных хранилища Azure DevOps Server Да
Базы данных коллекции проектов Azure DevOps Server Да
Базы данных отчетов службы SQL Server Reporting Services No
Базы данных анализа SQL Server Analysis Services No

Технологии развертывания

На основе конфигурации развертывания все базы данных, требующие резервного копирования, могут находиться на одном физическом сервере, как в этом примере топологии.

Примечание.

Этот пример не включает службы Reporting Services или продукты SharePoint, поэтому вам не нужно создавать резервные копии баз данных, связанных с отчетами, анализом или продуктами SharePoint.

Простая структура базы данных Azure DevOps Server

В качестве альтернативы базы данных могут быть распределены по нескольким серверам и фермам серверов. В этом примере топологии необходимо создать резервную копию следующих баз данных, которые масштабируются на шести серверах или фермах серверов:

  • база данных конфигурации

  • база данных хранилища

  • базы данных коллекции проектов, расположенные в кластере SQL Server

  • база данных коллекции, расположенная на автономном сервере, на котором выполняется SQL Server

  • базы данных, расположенные на сервере, на котором запущены службы Reporting Services

  • база данных, расположенная на сервере, на котором запущены службы Analysis Services

  • Административные базы данных продуктов SharePoint и базы данных семейства веб-сайтов для веб-приложений SharePoint

    Если базы данных SharePoint масштабируются на нескольких серверах, вы не можете использовать функцию запланированных резервных копий для их резервного копирования. Необходимо вручную настроить резервные копии для этих баз данных и убедиться, что эти резервные копии синхронизированы с резервными копиями базы данных Azure DevOps Server. Дополнительные сведения см. в статье Резервное копирование Azure DevOps Server вручную.

Сложная структура базы данных Azure DevOps Server

В обоих из этих примеров вам не нужно создавать резервные копии клиентов, которые подключаются к серверу. Однако может потребоваться вручную очистить кэши для Azure DevOps Server на клиентских компьютерах, прежде чем они смогут повторно подключиться к восстановленном развертыванию.

Базы данных для резервного копирования

В следующем списке приведены дополнительные сведения о том, что необходимо создать резервную копию в зависимости от ресурсов развертывания.

Внимание

Все базы данных в следующем списке — это базы данных SQL Server. Хотя sql Server Management Studio можно использовать для резервного копирования отдельных баз данных в любое время, следует избегать использования таких отдельных резервных копий, когда это возможно. При восстановлении из отдельных резервных копий могут возникнуть непредвиденные результаты, так как используемые azure DevOps базы данных связаны. При резервном копировании только одной базы данных данные в этой базе данных могут не синхронизироваться с данными в других базах данных.

  • Базы данных для Azure DevOps Server — уровень логических данных для Azure DevOps Server включает несколько баз данных SQL Server , включая базу данных конфигурации, базу данных хранилища и базу данных для каждой коллекции проектов в развертывании. Эти базы данных могут находиться на одном сервере, распределены между несколькими экземплярами в одном развертывании SQL Server или распределены по нескольким серверам. Независимо от их физического распределения, необходимо создать резервную копию всех баз данных в одну и ту же метку времени, чтобы обеспечить потерю данных. Резервное копирование базы данных можно выполнять вручную или автоматически с помощью планов обслуживания, которые выполняются в определенное время или интервалы.

    Внимание

    Список баз данных Azure DevOps не является статическим. Новая база данных создается каждый раз при создании коллекции. При создании коллекции убедитесь, что база данных для этой коллекции будет добавлена в план обслуживания.

  • Базы данных для служб Reporting Services и служб Analysis Services. Если развертывание использует SQL Server Reporting Services или СЛУЖБЫ SQL Server Analysis Services для создания отчетов для Azure DevOps Server, необходимо создать резервную копию баз данных отчетов и анализа. Однако после восстановления необходимо повторно создать определенные базы данных, например хранилище.
  • Ключ шифрования для сервера отчетов — сервер отчетов имеет ключ шифрования, который необходимо создать резервную копию. Этот ключ защищает конфиденциальную информацию, хранящуюся в базе данных для сервера отчетов. Вы можете вручную создать резервную копию этого ключа с помощью средства настройки служб Reporting Services или средства командной строки.

Расширенная подготовка к резервному копированию

При развертывании Azure DevOps необходимо сохранить запись создаваемых учетных записей и всех указанных параметров настройки, имен компьютеров, паролей и настроек. Вы также должны хранить копию всех материалов восстановления, документов и баз данных и резервных копий журналов транзакций в безопасном расположении. Чтобы защититься от аварии, например пожара или землетрясения, следует сохранить дубликаты резервных копий сервера в другом расположении от расположения серверов. Эта стратегия поможет защитить вас от потери критически важных данных. Рекомендуется сохранить три копии носителей резервного копирования, и вы должны хранить по крайней мере один оффсайт в управляемой среде.

Внимание

Периодически выполняйте восстановление пробных данных, чтобы убедиться в правильности резервного копирования файлов. Восстановление пробной версии может выявить аппаратные проблемы, которые не отображаются с проверкой только программного обеспечения.

При резервном копировании и восстановлении базы данных необходимо создать резервную копию данных на носитель с сетевым адресом (например, лентами и дисками, которыми был предоставлен общий доступ в качестве сетевых дисков). План резервного копирования должен включать положения для управления носителями, например следующую тактику:

  • План отслеживания и управления для хранения и переработки резервных наборов резервных копий.
  • Расписание перезаписи носителя резервного копирования.
  • В среде с несколькими серверами решение об использовании централизованных или распределенных резервных копий.
  • Способ отслеживания полезной жизни средств массовой информации.
  • Процедура минимизации последствий потери резервного набора или носителя резервного копирования (например, лента).
  • Решение о хранении резервных наборов на сайте или вне сайта и анализ того, как это решение может повлиять на время восстановления.

Так как данные Azure DevOps хранятся в базах данных SQL Server, вам не нужно создавать резервные копии компьютеров, на которых установлены клиенты Azure DevOps. Если произошла ошибка носителя или авария с этими компьютерами, можно повторно установить клиентское программное обеспечение и повторно подключиться к серверу. Повторно установив клиентское программное обеспечение, у пользователей будет более чистая и надежная альтернатива восстановлению клиентского компьютера из резервной копии.

Вы можете создать резервную копию сервера с помощью доступных функций запланированного резервного копирования или вручную создать планы обслуживания в SQL Server для резервного копирования баз данных, связанных с развертыванием Azure DevOps. Базы данных Azure DevOps работают в отношениях друг с другом, и при создании плана вручную их следует создать и восстановить одновременно. Дополнительные сведения о стратегиях резервного копирования баз данных см. в статье "Резервное копирование и восстановление баз данных SQL Server".

Типы резервного копирования

Общие сведения о типах доступных резервных копий помогают определить лучшие варианты резервного копирования развертывания. Например, если вы работаете с большим развертыванием и хотите защититься от потери данных, эффективно используя ограниченные ресурсы хранилища, можно настроить разностные резервные копии, а также полные резервные копии данных. Если вы используете SQL Server AlwaysOn, вы можете создать резервные копии базы данных-получателя. Вы также можете попробовать использовать сжатие резервных копий или разделить резервные копии по нескольким файлам. Ниже приведены краткие описания параметров резервного копирования:

Полные резервные копии данных (базы данных)

Полная резервная копия базы данных необходима для восстановления развертывания. Полная резервная копия включает часть журнала транзакций, чтобы восстановить полную резервную копию. Полные резервные копии являются автономными в том, что они представляют всю базу данных, как она существует при резервном копировании. Дополнительные сведения см. в разделе "Полные резервные копии базы данных".

Разностные резервные копии данных (базы данных)

Разностная резервная копия базы данных записывает только данные, которые изменились с момента последней полной резервной копии базы данных, которая называется разностной базой. Разностные резервные копии базы данных меньше и быстрее, чем полные резервные копии базы данных. Этот параметр экономит время резервного копирования за счет повышения сложности. Для больших баз данных разностные резервные копии могут выполняться с меньшим интервалом, чем резервные копии баз данных, что снижает риск потери работы. Дополнительные сведения см. в разделе "Разностные резервные копии баз данных".

Вы также должны регулярно создавать резервные копии журналов транзакций. Эти резервные копии необходимы для восстановления данных при использовании полной модели резервного копирования базы данных. При резервном копировании журналов транзакций можно восстановить базу данных до точки сбоя или до более ранней точки во времени.

Резервное копирование журналов транзакций

Журнал транзакций представляет собой последовательную запись всех изменений, произошедших в базе данных, в дополнение к транзакции, которая выполнила каждое изменение. Журнал транзакций записывает начало каждой транзакции, изменения данных и, при необходимости, достаточно информации, чтобы отменить изменения, внесенные во время этой транзакции. Журнал постоянно растет по мере того, как операции с журналом происходят в базе данных.

Резервное копирование журналов транзакций позволяет восстановить базу данных до более ранней точки во времени. Например, можно восстановить базу данных до точки перед вводом нежелательных данных или сбоем. Помимо резервных копий базы данных резервные копии журналов транзакций должны быть частью стратегии восстановления. Дополнительные сведения см. в разделе Резервные копии журналов транзакций (SQL Server).

Резервные копии журналов транзакций обычно используют меньше ресурсов, чем полные резервные копии. Поэтому можно создавать резервные копии журналов транзакций чаще, чем полные резервные копии, что снижает риск потери данных. Однако иногда резервная копия журнала транзакций превышает полную резервную копию. Например, база данных с высокой скоростью транзакций приводит к быстрому росту журнала транзакций. В этой ситуации следует чаще создавать резервные копии журналов транзакций. Дополнительные сведения см. в разделе "Устранение неполадок с полным журналом транзакций( ошибка SQL Server 9002)".

Можно выполнить следующие типы резервных копий журналов транзакций:

  • Чистая резервная копия журнала содержит только записи журнала транзакций для интервала без массовых изменений.
  • Резервная копия массового журнала содержит страницы журналов и данных, которые были изменены массовыми операциями. Восстановление до заданной точки не допускается.
  • Резервная копия tail-log берется из, возможно, поврежденной базы данных для записи записей журнала, которые еще не были созданы. Резервное копирование tail-log выполняется после сбоя, чтобы предотвратить потерю работы и может содержать чистые журналы или данные массового журнала.

Так как синхронизация данных важна для успешного восстановления Azure DevOps Server, при настройке резервных копий следует использовать помеченные транзакции в рамках стратегии резервного копирования. Дополнительные сведения см. в статье "Создание расписания резервного копирования и планирование " и резервное копирование Azure DevOps Server вручную.

Резервные копии служб уровня приложений

Единственное резервное копирование, необходимое для уровня логического приложения, — это ключ шифрования для служб Reporting Services. Если вы используете функцию запланированных резервных копий для резервного копирования развертывания, этот ключ будет резервирован для вас в рамках плана. Можно предположить, что необходимо создать резервную копию веб-сайтов, используемых в качестве порталов проектов.

Хотя резервное копирование уровня приложений проще, чем уровень данных, по-прежнему выполняется несколько шагов по восстановлению уровня приложений. Необходимо установить другой уровень приложений для Azure DevOps Server, перенаправить коллекции проектов для использования нового уровня приложений и перенаправить сайты портала для проектов.

Имена баз данных по умолчанию

Если имена баз данных не заданы, можно использовать следующую таблицу для идентификации баз данных, используемых в развертывании Azure DevOps Server. Как упоминалось ранее, не все развертывания имеют все эти базы данных. Например, если вы не настроили сервер Azure DevOps с помощью служб Reporting Services, у вас не будет баз данных ReportServer или ReportServerTempDB. Аналогичным образом база данных для System Center диспетчер виртуальных машин (SCVMM), VirtualManagerDB, если вы не настроите Azure DevOps Server для поддержки управления лабораториями. Кроме того, базы данных, используемые Azure DevOps Server, могут распространяться между несколькими экземплярами SQL Server или несколькими серверами.

Примечание.

По умолчанию префикс TFS_ добавляется в имена всех баз данных, созданных автоматически при установке Azure DevOps Server или во время его работы.

База данных Description
TFS_Configuration База данных конфигурации для Azure DevOps Server содержит каталог, имена серверов и данные конфигурации для развертывания. Имя этой базы данных может включать дополнительные символы между TFS_ и конфигурацией, например имя пользователя, который установил Azure DevOps Server. Например, имя базы данных может быть TFS_UserNameConfiguration
TFS_Warehouse База данных хранилища содержит данные для создания хранилища, который использует службы Reporting Services. Имя этой базы данных может содержать дополнительные символы между TFS_ и хранилищем, например имя пользователя, который установил Azure DevOps Server. Например, имя базы данных может быть TFS_UserNameWarehouse.
TFS_CollectionName База данных для коллекции проектов содержит все данные для проектов в этой коллекции. Эти данные включают исходный код, конфигурации сборки и конфигурации управления лабораториями. Количество баз данных коллекции равно количеству коллекций. Например, если в развертывании есть три коллекции, необходимо создать резервную копию этих трех баз данных коллекции. Имя каждой базы данных может содержать дополнительные символы между TFS_ и CollectionName, например именем пользователя, создавшего коллекцию. Например, имя базы данных коллекции может быть TFS_UserNameCollectionName.
TFS_Analysis База данных для служб SQL Server Analysis Services содержит источники данных и кубы для развертывания Azure DevOps Server. Имя этой базы данных может содержать дополнительные символы между TFS_ и анализом, например имя пользователя, который установил службы Analysis Services. Например, имя базы данных может быть TFS_UserNameAnalysis.
Примечание. Вы можете создать резервную копию этой базы данных, но необходимо перестроить хранилище из восстановленной базы данных TFS_Warehouse.
ReportServer База данных для служб Reporting Services содержит параметры отчетов и отчетов для развертывания Azure DevOps Server.
Примечание. Если службы Reporting Services установлены на отдельном сервере от Azure DevOps Server, эта база данных может не присутствовать на сервере уровня данных для Azure DevOps Server. В этом случае необходимо настроить, создать резервную копию и восстановить его отдельно от Azure DevOps Server. Необходимо синхронизировать обслуживание баз данных, чтобы избежать ошибок синхронизации.
ReportServerTempDB Временная база данных для служб Reporting Services временно сохраняет сведения при выполнении определенных отчетов.
Примечание. Если службы Reporting Services установлены на отдельном сервере, отличном от Azure DevOps Server, эта база данных может не присутствовать на сервере уровня данных для Azure DevOps Server. В этом случае необходимо настроить, создать резервную копию и восстановить его отдельно от Azure DevOps Server. Однако следует синхронизировать обслуживание баз данных, чтобы избежать ошибок синхронизации.
VirtualManagerDB База данных администрирования для SCVMM содержит сведения, которые вы просматриваете в консоли администрирования SCVMM, такие как виртуальные машины, узлы виртуальных машин, серверы библиотек виртуальных машин и их свойства.
Примечание. Если SCVMM установлен на отдельном сервере, отличном от Azure DevOps Server, эта база данных может не присутствовать на сервере уровня данных для Azure DevOps Server. В этом случае необходимо настроить, создать резервную копию и восстановить его отдельно от Azure DevOps Server. Однако следует использовать помеченные транзакции и синхронизировать обслуживание баз данных, чтобы избежать ошибок синхронизации.